Clickhouse : premier contact

Clickhouse : premier contact jpp

J'ai lu quelques doc, mais ce qui m'a intéressé c'est la compatibilité avec la syntaxe Mysql. 
Pour l'utiliser pleinement il suffit de connecter son client mysql favori (a installer si besoin) sur le port 9004. Je me suis alors retrouvé dans un environnement "connu" qui m'a permis de faire les premières manips. 
Créer une nouvelle base de données : "CREATE DATABASE toto;" 
Aller voir dans cette base : "use toto;" 
Créer un utilisateur avec les droits d'administration :

create user administrateur identified by 'le_mot_de_passe_qui_tue'; 
grant all on *.* to administrateur;

Par contre pour créer une table il faut se plier à la syntaxe "locale", les types ne sont pas tout à fait les mêmes et il faut un peu "ruser". 
Le "CREATE TABLE" n'offre aucun mystère. 
Pour le "ENGINE" à utiliser il y en a plusieurs j'ai utilisé le plus "simple" : "MergeTree" avec les majuscules pour lequel il faut préciser un "order by xxx" et éventuellement un partitionnement. 
Je n'ai pas testé le partitionnement, pas encore ... 
Pour les champs numériques : int16,int32,int64; UInt16, UInt32 ... 
Pour les champs date : Datetime fonctionne bien 
Pour les champs alphanumériques : String. 
Ne pas oublier de préciser "Nullable(type)" pour les champs qui peuvent prendre la valeur NULL.

En ce qui concerne les fonctions (par exemple celles sur les dates) la syntaxe est, malheureusement, différente de celle proposée par Mysql/MariaDB.

Une fonction particulièrement intéressante pour communiquer avec des bases Mysql/MariaDB est la possibilité de création de bases "distantes". Cette possibilité est analogue aux fonctionnalités accessibles à l'aide du module "federated" de MariaDB. 
Il devient ainsi possible de récupérer directement dans Clickhouse des données d'une base extérieure. C'est cette fonctionnalité que j'ai utilisée pour importer la grosse table destinée aux essais. 
La syntaxe est très simple (connexion sur le port "Mysql" : 
CREATE TABLE toto as select * from base_distante.table.