Clickhouse : charger table test

Clickhouse : charger table test jpp

Le chargement de la table va être possible en utilisant des ordres SQL (syntaxe Mysql) avec :

  • Création d'une base distante
  • Création d'une table locale
  • Insertion dans la table locale des rangs de la table distante.

La création d'une base distante possède une syntaxe proche de celle utilisée par les tables "federated" :

CREATE DATABASE base_distante 
  ENGINE = MySQL('IP:3306', 
  'nom_base_distante', 
  'user distant', 'mot_de_passe_distant') 
  SETTINGS read_write_timeout=10000, connect_timeout=10;

Il est alors possible de faire un "SELECT" sur la base distante. 
La recopie d'une table devient :

insert into base_locale.nom_table 
    select * from base_distante.nom_table 
    where idx > 0 ;

Pour une table volumineuse le temps peut être assez important. Dans mon cas le transfert entre la MV et la machine physique atteignait 130Mo/seconde et le temps total de chargement de plus de 500 millions de rangs a duré un peu moins d'une heure. 
Dans la base MariaDB cette table utilise environ 300GO, Dans la base Clickhouse le volume est d'un peu plus de 140GO. Visiblement la compression semble bien fonctionner.