zwy991114 commented on PR #66169:
URL: https://github.com/apache/doris/pull/66169#issuecomment-5190204124

   > 1. 需要调研一下其他的OLAP 系统的SQL语法是怎么指定压缩算法的,尽量避免独创SQL 语法
   > 2. 需要测试升降级,是否支持降级,如果不支持在PR 中说明
   > 3. https://github.com/apache/doris-website 向文档仓库提pr 说明这个功能
   
   
    |系统|   粒度 | SQL 示例 | 压缩等级 |
   |----|----|---|---|
   |ClickHouse     |       列级   |          content String CODEC(ZSTD(9))       
|        支持|
   |Amazon Redshift  |       列级 |            content VARCHAR ENCODE ZSTD       
|          不支持|
   |StarRocks   |     表级       |      PROPERTIES ("compression" = "ZSTD")       
|  不支持|
   |DuckDB   |               文件导出   |      COPY t TO 't.parquet' (COMPRESSION 
zstd)   | 通常不在表 DDL 指定|
   |Snowflake / BigQuery  |  系统自动    |     表存储压缩算法不可通过普通 DDL 指定         |不支持|
   
     ### ClickHouse
   
     当前PR最接近ClickHouse 的设计:压缩配置属于列定义,并且算法参数使用函数式语法。
   ```
     CREATE TABLE events (
         id UInt64 CODEC(Delta, ZSTD(3)),
         content String CODEC(ZSTD(9))
     )
     ENGINE = MergeTree
     ORDER BY id;
   ```
     它还支持组合预处理 Codec,例如 Delta 后接 ZSTD,并支持通过 ADD COLUMN、MODIFY COLUMN 修改 
Codec。(clickhouse.com 
(https://clickhouse.com/docs/get-started/sample-datasets/wikistat))
   
     ### Amazon Redshift
   
     Redshift 使用列级 ENCODE:
   ```
     CREATE TABLE events (
         id BIGINT ENCODE DELTA,
         content VARCHAR(65535) ENCODE ZSTD
     );
   ```
     也可以让系统自动选择:
   ```
     CREATE TABLE events (
         id BIGINT,
         content VARCHAR(65535)
     )
     ENCODE AUTO;
   ```
     Redshift 的 encoding 是算法或数据编码类型,不暴露 ZSTD 数字等级。(docs.aws.amazon.com 
(https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html))
   
     ### StarRocks
   
     StarRocks 目前是表级属性:
   ```
     CREATE TABLE events (
         id BIGINT,
         content STRING
     )
     ENGINE = OLAP
     DUPLICATE KEY(id)
     DISTRIBUTED BY HASH(id)
     PROPERTIES (
         "compression" = "ZSTD"
     );
   ```
     支持 LZ4、ZSTD、zlib 和 Snappy;只能建表时设置,不能按列或通过 ALTER 
修改,也不暴露压缩等级。(docs.starrocks.io 
(https://docs.starrocks.io/docs/table_design/data_compression/))
   
     ### DuckDB
   
     DuckDB 的原生表通常不在列定义中指定压缩算法,显式算法主要用于 Parquet 输出:
   ```
     COPY events TO 'events.parquet'
     (FORMAT parquet, COMPRESSION zstd);
   ```
     这是文件级配置,不属于表的持久化 Schema。(duckdb.org 
(https://duckdb.org/docs/current/data/parquet/overview))


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to