使用从数据中推断出的模式创建 table

create table with schema inferenced from data

在 clickhouse 版本 22.1 中,可以 inference schema。 例如:DESC file('nonexist', 'Protobuf') SETTINGS format_schema='file.proto:LogEntry'

但是是否可以使用从 DESCRIBE 获得的列创建 table?

cat /var/lib/clickhouse/user_files/aa.csv
a, b, 4

create table t1 Engine=Log  as select * from file('aa.csv');

DESCRIBE TABLE  t1
┌─name─┬─type──────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ c1   │ Nullable(String)  │              │                    │         │                  │                │
│ c2   │ Nullable(String)  │              │                    │         │                  │                │
│ c3   │ Nullable(Float64) │              │                    │         │                  │                │
└──────┴───────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘


create table t1 Engine=Log  as select * from file('aa.csv') where 0;
DESCRIBE TABLE  t1
┌─name─┬─type──────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ c1   │ Nullable(String)  │              │                    │         │                  │                │
│ c2   │ Nullable(String)  │              │                    │         │                  │                │
│ c3   │ Nullable(Float64) │              │                    │         │                  │                │
└──────┴───────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘