Créer une table
db_path— Chemin vers le fichier SQLite contenant une base de données.table— Nom d’une table de la base de données SQLite, ou requête transmise telle quelle à SQLite (voir Passer une requête au lieu d’un nom de table).
Passer une requête au lieu d’un nom de table
table peut être une requête SELECT transmise telle quelle à SQLite. La structure de la table est inférée à partir du résultat de la requête. La requête peut être écrite soit sous forme de sous-requête, soit encapsulée dans la fonction query :
INSERT n’y sont pas autorisées. La même syntaxe est prise en charge par la fonction de table sqlite.
La forme de sous-requête
(SELECT ...) est analysée par ClickHouse puis re-sérialisée avant d’être envoyée à SQLite. Elle doit donc être valide en SQL ClickHouse. Pour transmettre une syntaxe spécifique à SQLite que ClickHouse n’analyse pas, utilisez la forme query('...'), dont le texte est envoyé tel quel à SQLite.Tout WHERE, LIMIT, toute agrégation, etc. externe de la requête ClickHouse englobante n’est pas répercuté dans la requête transmise : ils sont appliqués dans ClickHouse après récupération du résultat complet de la requête. Pour restreindre les données lues depuis SQLite, placez le filtre dans la requête transmise. Avec external_table_strict_query = 1, un filtre externe qui ne peut pas être répercuté est rejeté avec une exception au lieu d’être appliqué localement.Prise en charge des types de données
- Date, Date32
- DateTime, DateTime64
- UUID
- Enum8, Enum16
- Decimal32, Decimal64, Decimal128, Decimal256
- FixedString
- Tous les types entiers (UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64)
- Float32, Float64