You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by al...@apache.org on 2026/10/11 20:08:40 UTC

(parquet-site) branch production updated: Add ClickHouse to the implementation status page (#211)

This is an automated email from the ASF dual-hosted git repository.

alamb pushed a commit to branch production
in repository https://gitbox.apache.org/repos/asf/parquet-site.git


The following commit(s) were added to refs/heads/production by this push:
     new 1f9d76a6 Add ClickHouse to the implementation status page (#211)
1f9d76a6 is described below

commit 1f9d76a6f1fad3fa68ded942bf7f921add809ad2
Author: Alexey Milovidov <mi...@clickhouse.com>
AuthorDate: Sun Oct 11 22:08:35 2026 +0200

    Add ClickHouse to the implementation status page (#211)
    
    Document Parquet feature support of the native ClickHouse reader and
    writer as of version 26.9, and list ClickHouse among the open source
    Parquet implementations.
---
 .../en/docs/File Format/implementationstatus.md    |   1 +
 content/en/docs/Overview/_index.md                 |   1 +
 data/implementations/engines.yaml                  |  19 +++
 data/implementations/support/clickhouse.yaml       | 148 +++++++++++++++++++++
 4 files changed, 169 insertions(+)

diff --git a/content/en/docs/File Format/implementationstatus.md b/content/en/docs/File Format/implementationstatus.md
index 09f24fe9..14c8a29c 100644
--- a/content/en/docs/File Format/implementationstatus.md	
+++ b/content/en/docs/File Format/implementationstatus.md	
@@ -23,6 +23,7 @@ The value in each box means:
 * [parquet-java](https://github.com/apache/parquet-java) (Java)
 * [arrow-go](https://github.com/apache/arrow-go/tree/main/parquet) (Go)
 * [arrow-rs](https://github.com/apache/arrow-rs/blob/main/parquet/README.md) (Rust)
+* [ClickHouse](https://github.com/ClickHouse/ClickHouse/tree/master/src/Processors/Formats/Impl/Parquet) (C++)
 * [cudf](https://github.com/rapidsai/cudf) (cuDF C++)
 * [hyparquet](https://github.com/hyparam/hyparquet) (JavaScript)
 * [duckdb](https://github.com/duckdb/duckdb) (C++)
diff --git a/content/en/docs/Overview/_index.md b/content/en/docs/Overview/_index.md
index ac9d2806..491a8adb 100644
--- a/content/en/docs/Overview/_index.md
+++ b/content/en/docs/Overview/_index.md
@@ -43,6 +43,7 @@ Here is a non-exhaustive list of open source Parquet implementations:
 * [Parquet C++, a subproject of Arrow C++](https://github.com/apache/arrow/tree/main/cpp/src/parquet) ([documentation](https://arrow.apache.org/docs/cpp/parquet.html))
 * [Parquet Go, a subproject of Arrow Go](https://github.com/apache/arrow-go/tree/main/parquet) ([documentation](https://github.com/apache/arrow-go/tree/main/parquet))
 * [Parquet Rust, a subproject of Arrow Rust](https://github.com/apache/arrow-rs/blob/main/parquet/README.md)
+* [ClickHouse](https://github.com/ClickHouse/ClickHouse) ([documentation](https://clickhouse.com/docs/interfaces/formats/Parquet))
 * [cuDF](https://github.com/rapidsai/cudf)
 * [Apache Impala](https://github.com/apache/impala)
 * [DuckDB](https://github.com/duckdb/duckdb)
diff --git a/data/implementations/engines.yaml b/data/implementations/engines.yaml
index 636e23d9..af8a51d7 100644
--- a/data/implementations/engines.yaml
+++ b/data/implementations/engines.yaml
@@ -110,6 +110,25 @@
         release_date: "2026-09-15"
         release_notes_url: "https://github.com/apache/arrow-rs/releases/tag/60.0.0"
 
+- id: clickhouse
+  name: ClickHouse
+  display_name: ClickHouse
+  language: C++
+  repo_url: https://github.com/ClickHouse/ClickHouse/tree/master/src/Processors/Formats/Impl/Parquet
+  docs_url: https://clickhouse.com/docs/interfaces/formats/Parquet
+  versions:
+    default: "26.9"
+    releases:
+      "26.5":
+        release_date: "2026-05-21"
+        release_notes_url: "https://github.com/ClickHouse/ClickHouse/releases/tag/v26.5.1.882-stable"
+      "26.8":
+        release_date: "2026-08-30"
+        release_notes_url: "https://github.com/ClickHouse/ClickHouse/releases/tag/v26.8.1.2041-lts"
+      "26.9":
+        release_date: "2026-09-21"
+        release_notes_url: "https://github.com/ClickHouse/ClickHouse/releases/tag/v26.9.1.1629-stable"
+
 - id: cudf
   name: cudf
   display_name: cuDF
diff --git a/data/implementations/support/clickhouse.yaml b/data/implementations/support/clickhouse.yaml
new file mode 100644
index 00000000..eb6272eb
--- /dev/null
+++ b/data/implementations/support/clickhouse.yaml
@@ -0,0 +1,148 @@
+engine_id: clickhouse
+last_updated: "2026-10-11"
+support:
+  physical-boolean:
+    status: full
+  physical-int32:
+    status: full
+  physical-int64:
+    status: full
+  physical-int96:
+    status: read
+    note: Read as DateTime64(9); INT96 is never written.
+  physical-float:
+    status: full
+  physical-double:
+    status: full
+  physical-byte-array:
+    status: full
+  physical-fixed-len-byte-array:
+    status: full
+  logical-string:
+    status: full
+  logical-enum:
+    status: full
+    note: Read as String; ClickHouse Enum8/Enum16 are written as ENUM.
+  logical-uuid:
+    status: full
+  logical-int-types:
+    status: full
+  logical-decimal-int32:
+    status: read
+    note: Decimals are always written as FIXED_LEN_BYTE_ARRAY.
+  logical-decimal-int64:
+    status: read
+    note: Decimals are always written as FIXED_LEN_BYTE_ARRAY.
+  logical-decimal-byte-array:
+    status: read
+    note: Decimals are always written as FIXED_LEN_BYTE_ARRAY.
+  logical-decimal-fixed-len-byte-array:
+    status: full
+    note: Precision up to 76 digits.
+  logical-float16:
+    status: read
+    note: Read as Float32.
+  logical-date:
+    status: full
+  logical-time-int32:
+    status: read
+    note: Read as DateTime64, or as Time64 when requested explicitly; ClickHouse Time/Time64 cannot be written.
+  logical-time-int64:
+    status: read
+    note: Read as DateTime64, or as Time64 when requested explicitly; ClickHouse Time/Time64 cannot be written.
+  logical-timestamp-int64:
+    status: full
+    note: Milliseconds, microseconds and nanoseconds.
+  logical-interval:
+    status: none
+    note: Read as raw FixedString(12) bytes.
+  logical-json:
+    status: full
+    note: Read as the JSON data type by default, or as String.
+  logical-bson:
+    status: read
+    note: Read as raw bytes in a String column.
+  logical-variant:
+    status: none
+  logical-geometry:
+    status: none
+    note: GeoParquet ("geo" key-value metadata) is supported instead; WKB and WKT are read, WKB is written.
+  logical-geography:
+    status: none
+    note: GeoParquet ("geo" key-value metadata) is supported instead; WKB and WKT are read, WKB is written.
+  logical-file:
+    status: none
+  logical-list:
+    status: full
+  logical-map:
+    status: full
+  logical-unknown:
+    status: read
+  encoding-plain:
+    status: full
+  encoding-plain-dictionary:
+    status: read
+  encoding-rle-dictionary:
+    status: full
+  encoding-rle:
+    status: full
+    note: Written only for repetition and definition levels; RLE-encoded BOOLEAN values are read.
+  encoding-bit-packed:
+    status: none
+  encoding-delta-binary-packed:
+    status: read
+  encoding-delta-length-byte-array:
+    status: read
+  encoding-delta-byte-array:
+    status: read
+  encoding-byte-stream-split:
+    status: read
+  encoding-alp:
+    status: none
+  encoding-byte-stream-split-extended:
+    status: read
+  compression-uncompressed:
+    status: full
+  compression-brotli:
+    status: full
+  compression-gzip:
+    status: full
+  compression-lz4-deprecated:
+    status: read
+    note: Both Hadoop-framed and raw LZ4 blocks are read; LZ4_RAW is written instead.
+  compression-lz4-raw:
+    status: full
+  compression-lzo:
+    status: none
+  compression-snappy:
+    status: full
+  compression-zstd:
+    status: full
+  format-bloom-filters:
+    status: full
+  format-bloom-filter-length:
+    status: full
+  format-stats-min-max:
+    status: full
+  format-page-index:
+    status: full
+  format-page-crc32:
+    status: full
+  format-modular-encryption:
+    status: none
+  format-size-statistics:
+    status: full
+  format-data-page-v2:
+    status: read
+  api-parquet-summary-file:
+    status: none
+  api-sorting-columns:
+    status: none
+  api-rowgroup-pruning-stats:
+    status: full
+  api-rowgroup-pruning-bloom:
+    status: full
+  api-column-projection:
+    status: full
+  api-page-pruning-stats:
+    status: full