跳到主要内容
跳到主要内容

system.schema_inference_cache

在 ClickHouse Cloud 中进行查询

该系统表中的数据保存在 ClickHouse Cloud 中每个节点的本地。因此,如需获得所有数据的完整视图,需要使用 clusterAllReplicas 函数。更多详情请参阅此处

包含所有已缓存文件 schema 的信息。

列:

  • storage (String) — 存储名称:File、URL、S3 或 HDFS。
  • source (String) — 文件来源。
  • format (String) — 格式名称。
  • additional_format_info (String) — 标识 schema 所需的附加信息,例如特定于格式的设置。
  • registration_time (DateTime) — 将 schema 添加到缓存时的时间戳。
  • schema (Nullable(String)) — 已缓存的 schema。
  • number_of_rows (Nullable(UInt64)) — 文件在给定格式下的行数。用于缓存来自数据文件的简单 count() 结果,以及在 schema 推断期间缓存从元数据获得的行数。
  • schema_inference_mode (Nullable(String)) — schema 推断方式。

示例

假设我们有一个名为 data.jsonl 的文件,其内容如下:

{"id" :  1, "age" :  25, "name" :  "Josh", "hobbies" :  ["足球", "烹饪", "音乐"]}
{"id" :  2, "age" :  19, "name" :  "Alan", "hobbies" :  ["网球", "艺术"]}
{"id" :  3, "age" :  32, "name" :  "Lana", "hobbies" :  ["健身", "阅读", "购物"]}
{"id" :  4, "age" :  47, "name" :  "Brayan", "hobbies" :  ["电影", "跳伞"]}
提示

请将 data.jsonl 放置在 user_files_path 目录中。可通过查看 ClickHouse 配置文件来找到该目录。默认值为:

<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>

打开 clickhouse-client,运行 DESCRIBE 查询:

DESCRIBE file('data.jsonl') SETTINGS input_format_try_infer_integers=0;
┌─name────┬─type────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ id      │ Nullable(Float64)       │              │                    │         │                  │                │
│ age     │ Nullable(Float64)       │              │                    │         │                  │                │
│ name    │ Nullable(String)        │              │                    │         │                  │                │
│ hobbies │ Array(Nullable(String)) │              │                    │         │                  │                │
└─────────┴─────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘

我们来看一下 system.schema_inference_cache 表的内容:

SELECT *
FROM system.schema_inference_cache
FORMAT Vertical
行 1:
──────
存储:                   File
来源:                   /home/droscigno/user_files/data.jsonl
格式:                   JSONEachRow
附加格式信息:           schema_inference_hints=, max_rows_to_read_for_schema_inference=25000, schema_inference_make_columns_nullable=true, try_infer_integers=false, try_infer_dates=true, try_infer_datetimes=true, try_infer_numbers_from_strings=true, read_bools_as_numbers=true, try_infer_objects=false
注册时间:               2022-12-29 17:49:52
模式:                   id Nullable(Float64), age Nullable(Float64), name Nullable(String), hobbies Array(Nullable(String))

另请参阅