format_schema
format_schema_message_name
format_schema.
Для сохранения совместимости с устаревшим форматом format_schema (file_name:message_name):
- Если
format_schema_message_nameне указано, имя сообщения определяется по частиmessage_nameв устаревшем значенииformat_schema. - Если
format_schema_message_nameуказано при использовании устаревшего формата, будет возвращена ошибка.
format_schema_source
format_schema.
Возможные значения:
- ‘file’ (по умолчанию):
format_schema— это имя файла схемы, расположенного в каталогеformat_schemas. - ‘string’:
format_schema— это непосредственное содержимое схемы. - ‘query’:
format_schema— это запрос для получения схемы. Еслиformat_schema_sourceимеет значение ‘query’, действуют следующие условия: - Запрос должен возвращать ровно одно значение: одну строку с одним строковым столбцом.
- Результат запроса интерпретируется как содержимое схемы.
- Этот результат локально кэшируется в каталоге
format_schemas. - Локальный кэш можно очистить с помощью команды:
SYSTEM DROP FORMAT SCHEMA CACHE FOR Files. - После кэширования одинаковые запросы не выполняются повторно для получения схемы, пока кэш не будет явно очищен
- Помимо локальных файлов кэша, сообщения Protobuf также кэшируются в памяти. Даже после очистки локальных файлов кэша необходимо очистить кэш в памяти с помощью
SYSTEM DROP FORMAT SCHEMA CACHE [FOR Protobuf], чтобы полностью обновить схему. - Выполните запрос
SYSTEM DROP FORMAT SCHEMA CACHE, чтобы сразу очистить кэш и файлов кэша, и схем сообщений Protobuf.