- Débit d’insertion plus élevé
- Débit amélioré des fusions en arrière-plan
- Débit amélioré des mutations
- Opérations de scale-up et de scale-down plus rapides
- Cohérence forte allégée pour les requêtes SELECT
Introspection
system.replication_queue et system.replicated_fetches, puisqu’aucune réplication des données ni des métadonnées n’a lieu. SharedMergeTree propose toutefois des alternatives correspondantes pour ces deux tables.
system.virtual_parts
Cette table sert d’alternative à system.replication_queue pour SharedMergeTree. Elle stocke des informations sur l’ensemble le plus récent des parts actuelles, ainsi que sur les futures parts en cours de traitement, comme les fusions, les mutations et les partitions supprimées.
system.shared_merge_tree_fetches
Cette table est l’alternative à system.replicated_fetches pour SharedMergeTree. Elle contient des informations sur les opérations en cours qui chargent en mémoire les clés primaires et les checksums.
SharedMergeTree est activé par défaut.
Pour les services compatibles avec le moteur de table SharedMergeTree, vous n’avez rien à activer manuellement. Vous pouvez créer des tables comme auparavant, et le moteur de table basé sur SharedMergeTree correspondant au moteur spécifié dans votre requête CREATE TABLE sera utilisé automatiquement.
my_table à l’aide du moteur de table SharedMergeTree.
Vous n’avez pas besoin de spécifier ENGINE=MergeTree, car default_table_engine=MergeTree dans ClickHouse Cloud. La requête suivante est identique à celle ci-dessus.
CREATE TABLE à l’aide de SHOW CREATE TABLE :
Paramètres
insert_quorum— toutes les insertions dans SharedMergeTree sont des insertions avec quorum (écrites dans le stockage partagé), ce paramètre n’est donc pas nécessaire lors de l’utilisation du moteur de table SharedMergeTree.insert_quorum_parallel— toutes les insertions dans SharedMergeTree sont des insertions avec quorum (écrites dans le stockage partagé), ce paramètre n’est donc pas nécessaire lors de l’utilisation du moteur de table SharedMergeTree.select_sequential_consistency— ne nécessite pas d’insertions avec quorum, mais entraînera une charge supplémentaire sur ClickHouse Keeper pour les requêtesSELECT
Cohérence
insert_quorum ou insert_quorum_parallel. Les insertions sont des insertions avec quorum, ce qui signifie que les métadonnées sont stockées dans ClickHouse-Keeper et répliquées sur au moins un quorum de nœuds ClickHouse Keeper. Chaque réplique de votre cluster récupérera de manière asynchrone les nouvelles informations depuis ClickHouse-Keeper.
La plupart du temps, vous ne devriez pas utiliser select_sequential_consistency ni SYSTEM SYNC REPLICA LIGHTWEIGHT. La réplication asynchrone devrait couvrir la plupart des scénarios et présente une très faible latence. Dans les rares cas où vous devez absolument éviter des lectures obsolètes, suivez ces recommandations par ordre de préférence :
-
Si vous exécutez vos requêtes dans la même session ou sur le même nœud pour les lectures et les écritures, il n’est pas nécessaire d’utiliser
select_sequential_consistency, car votre réplique disposera déjà des métadonnées les plus récentes. -
Si vous écrivez sur une réplique et lisez depuis une autre, vous pouvez utiliser
SYSTEM SYNC REPLICA LIGHTWEIGHTpour forcer la réplique à récupérer les métadonnées depuis ClickHouse-Keeper. -
Utilisez
select_sequential_consistencycomme paramètre dans votre requête.