Dans ClickHouse Cloud, si votre service a été créé avec une version antérieure à 25.4, vous devrez définir la compatibilité sur 25.4 minimum à l’aide de
SET compatibility=25.4.Créer une table
Paramètres du moteur
join_strictness
join_strictness – strictesse de JOIN.
join_type
join_type – type de JOIN.
Colonnes clés
k1[, k2, ...] – Colonnes clés de la clause USING utilisées par l’opération JOIN.
Saisissez les paramètres join_strictness et join_type sans guillemets, par exemple Join(ANY, LEFT, col1). Ils doivent correspondre à l’opération JOIN pour laquelle la table sera utilisée. Si les paramètres ne correspondent pas, ClickHouse ne lève pas d’exception et peut renvoyer des données incorrectes.
Spécificités et recommandations
Stockage des données
Join se trouvent toujours en RAM. Lors de l’insertion de lignes dans une table, ClickHouse écrit des blocs de données dans le répertoire situé sur le disque afin de pouvoir les restaurer au redémarrage du serveur.
Si le serveur redémarre incorrectement, le bloc de données sur le disque peut être perdu ou endommagé. Dans ce cas, vous devrez peut-être supprimer manuellement le fichier contenant les données endommagées.
Sélection et insertion de données
INSERT pour ajouter des données aux tables du moteur Join. Si la table a été créée avec la strictesse ANY, les données associées à des clés dupliquées sont ignorées. Avec la strictesse ALL, toutes les lignes sont ajoutées.
Les principaux cas d’utilisation des tables du moteur Join sont les suivants :
- Placer la table du côté droit dans une clause
JOIN. - Appeler la fonction joinGet, qui permet d’extraire des données de la table de la même manière que depuis un dictionnaire.
Suppression des données
ALTER DELETE pour les tables utilisant le moteur Join sont implémentées sous forme de mutations. La mutation DELETE lit les données filtrées et réécrit les données en mémoire et sur disque.
Limitations et paramètres
join_use_nulls
max_rows_in_join
max_bytes_in_join
join_overflow_mode
join_any_take_last_row
join_use_nulls
Persistant
- 1 — Activé.
- 0 — Désactivé.
1.
Les tables du moteur Join ne peuvent pas être utilisées dans des opérations GLOBAL JOIN.
Le moteur Join permet de définir le paramètre join_use_nulls dans l’instruction CREATE TABLE. La requête SELECT doit utiliser la même valeur pour join_use_nulls.
Exemples d’utilisation
Join de droite :
Join en spécifiant la valeur de la clé de jointure :
Join :