format_schema
format_schema_message_name
format_schema.
Pour préserver la compatibilité avec le format format_schema legacy (file_name:message_name) :
- Si
format_schema_message_namen’est pas spécifié, le nom du message est déduit de la partiemessage_namede la valeurformat_schemalegacy. - Si
format_schema_message_nameest spécifié lors de l’utilisation du format legacy, une erreur est générée.
format_schema_source
format_schema.
Valeurs possibles :
- ‘file’ (par défaut) :
format_schemacorrespond au nom d’un fichier de schéma situé dans le répertoireformat_schemas. - ‘string’ :
format_schemacorrespond au contenu littéral du schéma. - ‘query’ :
format_schemaest une requête permettant de récupérer le schéma. Lorsqueformat_schema_sourceest défini sur ‘query’, les conditions suivantes s’appliquent : - La requête doit renvoyer exactement une valeur : une seule ligne avec une seule colonne de type chaîne.
- Le résultat de la requête est traité comme le contenu du schéma.
- Ce résultat est mis en cache localement dans le répertoire
format_schemas. - Vous pouvez vider le cache local à l’aide de la commande :
SYSTEM DROP FORMAT SCHEMA CACHE FOR Files. - Une fois mis en cache, les requêtes identiques ne sont plus exécutées pour récupérer de nouveau le schéma tant que le cache n’est pas explicitement vidé.
- En plus des fichiers du cache local, les messages Protobuf sont également mis en cache en mémoire. Même après avoir vidé les fichiers du cache local, le cache en mémoire doit être vidé à l’aide de
SYSTEM DROP FORMAT SCHEMA CACHE [FOR Protobuf]pour actualiser complètement le schéma. - Exécutez la requête
SYSTEM DROP FORMAT SCHEMA CACHEpour vider en une seule fois le cache des fichiers locaux et celui des schémas des messages Protobuf.