Les moteurs de table de la famille
Log peuvent stocker des données sur les systèmes de fichiers distribués HDFS ou S3.
Propriétés communes
- Stockent les données sur un disque.
- Ajoutent les données en fin de fichier lors de l’écriture.
-
Prennent en charge les verrous pour l’accès concurrent aux données.
Lors des requêtes
INSERT, la table est verrouillée, et les autres requêtes de lecture et d’écriture doivent attendre son déverrouillage. En l’absence de requêtes d’écriture, un nombre quelconque de requêtes de lecture peut être exécuté de manière concurrente. - Ne prennent pas en charge les mutations.
-
Ne prennent pas en charge les index.
Cela signifie que les requêtes
SELECTsur des plages de données ne sont pas efficaces. - N’écrivent pas les données de manière atomique. Vous pouvez vous retrouver avec une table contenant des données corrompues si quelque chose interrompt l’opération d’écriture, par exemple en cas d’arrêt anormal du serveur.
Différences
TinyLog est le plus simple de la famille et offre les fonctionnalités les plus limitées ainsi que les performances les plus faibles. Le moteur TinyLog ne prend pas en charge la lecture parallèle des données par plusieurs threads dans une même requête. Il lit les données plus lentement que les autres moteurs de la famille qui prennent en charge la lecture parallèle dans le cadre d’une même requête, et il utilise presque autant de descripteurs de fichier que le moteur Log, car il stocke chaque colonne dans un fichier distinct. Utilisez-le uniquement dans des scénarios simples.
Les moteurs Log et StripeLog prennent en charge la lecture parallèle des données. Lors de la lecture des données, ClickHouse utilise plusieurs threads. Chaque thread traite un bloc de données distinct. Le moteur Log utilise un fichier distinct pour chaque colonne de la table. StripeLog stocke toutes les données dans un seul fichier. Par conséquent, le moteur StripeLog utilise moins de descripteurs de fichier, mais le moteur Log offre de meilleures performances lors de la lecture des données.