ClickHouse/docs/fr/engines/table-engines/log-family/stripelog.md
Ivan Blinkov d91c97d15d
[docs] replace underscores with hyphens (#10606)
* Replace underscores with hyphens

* remove temporary code

* fix style check

* fix collapse
2020-04-30 21:19:18 +03:00

4.4 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 32 StripeLog

Stripelog

Ce moteur appartient à la famille des moteurs en rondins. Voir les propriétés communes des moteurs de journal et leurs différences dans le Famille De Moteurs En Rondins article.

Utilisez ce moteur dans des scénarios lorsque vous devez écrire de nombreuses tables avec une petite quantité de données (moins de 1 million de lignes).

Création dune Table

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    column1_name [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    column2_name [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
) ENGINE = StripeLog

Voir la description détaillée de la CREATE TABLE requête.

Lécriture Des Données

Le StripeLog moteur stocke toutes les colonnes dans un fichier. Pour chaque INSERT requête, ClickHouse ajoute le bloc de données à la fin dun fichier de table, en écrivant des colonnes une par une.

Pour chaque table ClickHouse écrit les fichiers:

  • data.bin — Data file.
  • index.mrk — File with marks. Marks contain offsets for each column of each data block inserted.

Le StripeLog moteur ne prend pas en charge la ALTER UPDATE et ALTER DELETE opérations.

La Lecture Des Données

Le fichier avec des marques permet à ClickHouse de paralléliser la lecture des données. Cela signifie quune SELECT la requête renvoie des lignes dans un ordre imprévisible. Lutilisation de la ORDER BY clause pour trier les lignes.

Exemple DUtilisation

Création dune table:

CREATE TABLE stripe_log_table
(
    timestamp DateTime,
    message_type String,
    message String
)
ENGINE = StripeLog

Insertion de données:

INSERT INTO stripe_log_table VALUES (now(),'REGULAR','The first regular message')
INSERT INTO stripe_log_table VALUES (now(),'REGULAR','The second regular message'),(now(),'WARNING','The first warning message')

Nous avons utilisé deux INSERT requêtes pour créer deux blocs de données data.bin fichier.

ClickHouse utilise plusieurs threads lors de la sélection des données. Chaque thread lit un bloc de données séparé et renvoie les lignes résultantes indépendamment à la fin. En conséquence, lordre des blocs de lignes dans le résultat ne correspond pas à lordre des mêmes blocs dans lentrée, dans la plupart des cas. Exemple:

SELECT * FROM stripe_log_table
┌───────────timestamp─┬─message_type─┬─message────────────────────┐
│ 2019-01-18 14:27:32 │ REGULAR      │ The second regular message │
│ 2019-01-18 14:34:53 │ WARNING      │ The first warning message  │
└─────────────────────┴──────────────┴────────────────────────────┘
┌───────────timestamp─┬─message_type─┬─message───────────────────┐
│ 2019-01-18 14:23:43 │ REGULAR      │ The first regular message │
└─────────────────────┴──────────────┴───────────────────────────┘

Trier les résultats (ordre croissant par défaut):

SELECT * FROM stripe_log_table ORDER BY timestamp
┌───────────timestamp─┬─message_type─┬─message────────────────────┐
│ 2019-01-18 14:23:43 │ REGULAR      │ The first regular message  │
│ 2019-01-18 14:27:32 │ REGULAR      │ The second regular message │
│ 2019-01-18 14:34:53 │ WARNING      │ The first warning message  │
└─────────────────────┴──────────────┴────────────────────────────┘

Article Original