Перейти к основному содержанию
Перейти к основному содержанию

system.schema_inference_cache

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 for further details.

Содержит информацию обо всех схемах файлов, находящихся в кэше.

Столбцы:

  • storage (String) — Имя хранилища: File, URL, S3 или HDFS.
  • source (String) — Источник файла.
  • format (String) — Имя формата.
  • additional_format_info (String) — Дополнительная информация, необходимая для идентификации схемы. Например, настройки, специфичные для формата.
  • registration_time (DateTime) — Время, когда схема была добавлена в кэш.
  • schema (Nullable(String)) — Схема в кэше.
  • number_of_rows (Nullable(UInt64)) — Количество строк в файле в заданном формате. Используется для кэширования простого count() по данным файлов и для кэширования количества строк из метаданных при выводе схемы.
  • schema_inference_mode (Nullable(String)) — Режим вывода схемы.

Пример

Предположим, у нас есть файл 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:
──────
storage:                File
source:                 /home/droscigno/user_files/data.jsonl
format:                 JSONEachRow
additional_format_info: 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
registration_time:      2022-12-29 17:49:52
schema:                 id Nullable(Float64), age Nullable(Float64), name Nullable(String), hobbies Array(Nullable(String))

См. также