format_schema
format_schema_message_name
format_schema で定義されたスキーマ内で必要なメッセージ名を指定します。
従来の format_schema 形式 (file_name:message_name) との互換性を維持するため、次のように動作します。
format_schema_message_nameが指定されていない場合、メッセージ名は従来のformat_schema値のmessage_name部分から推論されます。- 従来形式の使用時に
format_schema_message_nameを指定すると、エラーになります。
format_schema_source
format_schema のソースを定義します。
設定可能な値:
- ‘file’ (デフォルト) :
format_schemaは、format_schemasディレクトリに配置されたスキーマファイルの名前です。 - ‘string’:
format_schemaは、スキーマの内容そのものをリテラルとして指定します。 - ‘query’:
format_schemaは、スキーマを取得するためのクエリです。format_schema_sourceを ‘query’ に設定した場合、次の条件が適用されます: - クエリは必ず 1 つの値、つまり単一の文字列カラムを持つ 1 行だけを返さなければなりません。
- クエリの結果は、スキーマの内容として扱われます。
- この結果は、
format_schemasディレクトリにローカルにキャッシュされます。 - 次のコマンドを使用してローカル cache をクリアできます:
SYSTEM DROP FORMAT SCHEMA CACHE FOR Files。 - 一度キャッシュされると、cache が明示的にクリアされるまで、同一のクエリがスキーマ取得のために再実行されることはありません
- ローカルの cache ファイルに加えて、Protobuf メッセージもメモリ内にキャッシュされます。ローカルの cache ファイルをクリアした後でも、スキーマを完全に更新するには、
SYSTEM DROP FORMAT SCHEMA CACHE [FOR Protobuf]を使用して in-memory cache をクリアする必要があります。 SYSTEM DROP FORMAT SCHEMA CACHEクエリを実行すると、cache ファイルと Protobuf メッセージのスキーマの両方の cache を一度にクリアできます。