> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentation sur le moteur de table StripeLog

# Moteur de table StripeLog

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            Non pris en charge par ClickHouse Cloud
        </div>;
};

<CloudNotSupportedBadge />

Ce moteur appartient à la famille des moteurs de journalisation. Consultez les propriétés communes des moteurs de journalisation ainsi que leurs différences dans l’article [Famille de moteurs Log](/docs/fr/reference/engines/table-engines/log-family/index).

Utilisez ce moteur lorsque vous devez écrire dans un grand nombre de tables contenant peu de données (moins de 1 million de lignes). Par exemple, cette table peut servir à stocker des lots de données entrants à transformer lorsqu’un traitement atomique est nécessaire. 100 000 instances de ce type de table sont prises en charge sur un serveur ClickHouse. Ce moteur de table est à privilégier par rapport à [Log](/docs/fr/reference/engines/table-engines/log-family/log) lorsqu’un grand nombre de tables est requis. Cela se fait au détriment des performances de lecture.

<div id="table_engines-stripelog-creating-a-table">
  ## Créer une table
</div>

```sql theme={null}
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
```

Consultez la description détaillée de la requête [CREATE TABLE](/docs/fr/reference/statements/create/table).

<div id="table_engines-stripelog-writing-the-data">
  ## Écriture des données
</div>

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

Pour chaque table, ClickHouse écrit les fichiers suivants :

* `data.bin` — Fichier de données.
* `index.mrk` — Fichier contenant les marques. Les marques contiennent les offsets de chaque colonne de chaque bloc de données inséré.

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

<div id="table_engines-stripelog-reading-the-data">
  ## Lecture des données
</div>

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

<div id="table_engines-stripelog-example-of-use">
  ## Exemple d’utilisation
</div>

Création d’une table :

```sql theme={null}
CREATE TABLE stripe_log_table
(
    timestamp DateTime,
    message_type String,
    message String
)
ENGINE = StripeLog
```

Insérer des données :

```sql theme={null}
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 requêtes `INSERT` pour créer deux blocs de données dans le fichier `data.bin`.

ClickHouse utilise plusieurs threads lors de la lecture des données. Chaque thread lit un bloc de données distinct et renvoie les lignes obtenues indépendamment, dès qu’il a terminé. Par conséquent, dans la plupart des cas, l’ordre des blocs de lignes dans la sortie ne correspond pas à l’ordre de ces mêmes blocs dans les données d’entrée. Par exemple :

```sql theme={null}
SELECT * FROM stripe_log_table
```

```text theme={null}
┌───────────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 │
└─────────────────────┴──────────────┴───────────────────────────┘
```

Tri des résultats (par ordre croissant par défaut) :

```sql theme={null}
SELECT * FROM stripe_log_table ORDER BY timestamp
```

```text theme={null}
┌───────────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  │
└─────────────────────┴──────────────┴────────────────────────────┘
```
