> ## 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 du moteur de table TinyLog

# Moteur de table TinyLog

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 Log. Voir [Famille de moteurs Log](/docs/fr/reference/engines/table-engines/log-family/index) pour les propriétés communes des moteurs Log et leurs différences.

Ce moteur de table est généralement utilisé selon une approche d’écriture unique : écrire les données une seule fois, puis les lire autant de fois que nécessaire. Par exemple, vous pouvez utiliser des tables de type `TinyLog` pour des données intermédiaires traitées par petits lots. Notez qu’il est inefficace de stocker des données dans un grand nombre de petites tables.

Les requêtes sont exécutées dans un seul flux. Autrement dit, ce moteur est destiné à des tables relativement petites (jusqu’à environ 1 000 000 de lignes). Il est judicieux d’utiliser ce moteur de table si vous avez de nombreuses petites tables, car il est plus simple que le moteur [Log](/docs/fr/reference/engines/table-engines/log-family/log) (moins de fichiers doivent être ouverts).

<div id="characteristics">
  ## Caractéristiques
</div>

* **Structure plus simple** : contrairement au moteur Log, TinyLog n'utilise pas de fichiers de marks. Cela réduit la complexité, mais limite aussi les optimisations de performances pour les grands jeux de données.
* **Requêtes sur un seul flux** : les requêtes sur les tables TinyLog sont exécutées sur un seul flux, ce qui le rend adapté à des tables relativement petites, généralement jusqu'à 1 000 000 de lignes.
* **Efficace pour les petites tables** : la simplicité du moteur TinyLog en fait un bon choix pour gérer de nombreuses petites tables, car il nécessite moins d'opérations sur les fichiers que le moteur Log.

Contrairement au moteur Log, TinyLog n'utilise pas de fichiers de marks. Cela réduit la complexité, mais limite aussi les optimisations de performances pour les jeux de données plus volumineux.

<div id="table_engines-tinylog-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 = TinyLog
```

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

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

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

Pour chaque table, ClickHouse écrit les fichiers suivants :

* `<column>.bin` : un fichier de données pour chaque colonne, contenant les données sérialisées et compressées.

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

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

Création d’une table :

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

Insertion de données :

```sql theme={null}
INSERT INTO tiny_log_table VALUES (now(),'REGULAR','The first regular message')
INSERT INTO tiny_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 les fichiers `<column>.bin`.

ClickHouse utilise un seul flux pour sélectionner les données. Par conséquent, l’ordre des blocs de lignes en sortie correspond à l’ordre de ces mêmes blocs en entrée. Par exemple :

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

```text theme={null}
┌───────────timestamp─┬─message_type─┬─message────────────────────┐
│ 2024-12-10 13:11:58 │ REGULAR      │ The first regular message  │
│ 2024-12-10 13:12:12 │ REGULAR      │ The second regular message │
│ 2024-12-10 13:12:12 │ WARNING      │ The first warning message  │
└─────────────────────┴──────────────┴────────────────────────────┘
```
