ClickHouse/docs/fr/engines/table-engines/special/file.md

91 lines
3.6 KiB
Markdown
Raw Normal View History

2020-03-30 12:48:55 +00:00
---
machine_translated: true
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
2020-04-04 09:15:31 +00:00
toc_priority: 37
toc_title: Fichier
2020-03-30 12:48:55 +00:00
---
# Fichier {#table_engines-file}
Le moteur de table de fichiers conserve les données dans un fichier dans l'un des [fichier
2020-04-04 09:15:31 +00:00
format](../../../interfaces/formats.md#formats) (TabSeparated, Native, etc.).
2020-03-30 12:48:55 +00:00
Exemples d'utilisation:
2020-03-30 12:48:55 +00:00
- Exportation de données de ClickHouse vers un fichier.
- Convertir des données d'un format à un autre.
- Mise à jour des données dans ClickHouse via l'édition d'un fichier sur un disque.
2020-03-30 12:48:55 +00:00
## Utilisation dans le serveur ClickHouse {#usage-in-clickhouse-server}
2020-03-30 12:48:55 +00:00
``` sql
File(Format)
```
Le `Format` paramètre spécifie l'un des formats de fichier disponibles. Effectuer
`SELECT` requêtes, le format doit être pris en charge pour l'entrée, et à effectuer
2020-03-30 12:48:55 +00:00
`INSERT` queries for output. The available formats are listed in the
2020-04-04 09:15:31 +00:00
[Format](../../../interfaces/formats.md#formats) section.
2020-03-30 12:48:55 +00:00
ClickHouse ne permet pas de spécifier le chemin du système de fichiers pour`File`. Il utilisera le dossier défini par [chemin](../../../operations/server-configuration-parameters/settings.md) réglage dans la configuration du serveur.
2020-03-30 12:48:55 +00:00
Lors de la création de la table en utilisant `File(Format)` il crée sous-répertoire vide dans ce dossier. Lorsque les données sont écrites dans cette table, elles sont mises dans `data.Format` fichier dans ce répertoire.
Vous pouvez créer manuellement ce sous dossier et ce fichier dans le système de fichiers [ATTACH](../../../sql-reference/statements/misc.md) il à la table des informations avec le nom correspondant, de sorte que vous pouvez interroger les données de ce fichier.
2020-03-30 12:48:55 +00:00
!!! warning "Avertissement"
Soyez prudent avec cette fonctionnalité, car ClickHouse ne garde pas trace des modifications externes apportées à ces fichiers. Le résultat des Écritures simultanées via ClickHouse et en dehors de ClickHouse n'est pas défini.
2020-03-30 12:48:55 +00:00
**Exemple:**
**1.** Configurer le `file_engine_table` table:
``` sql
CREATE TABLE file_engine_table (name String, value UInt32) ENGINE=File(TabSeparated)
```
Par défaut ClickHouse va créer un dossier `/var/lib/clickhouse/data/default/file_engine_table`.
**2.** Créer manuellement `/var/lib/clickhouse/data/default/file_engine_table/data.TabSeparated` contenant:
``` bash
$ cat data.TabSeparated
one 1
two 2
```
**3.** Interroger les données:
``` sql
SELECT * FROM file_engine_table
```
``` text
┌─name─┬─value─┐
│ one │ 1 │
│ two │ 2 │
└──────┴───────┘
```
## Utilisation dans ClickHouse-local {#usage-in-clickhouse-local}
2020-03-30 12:48:55 +00:00
Dans [clickhouse-local](../../../operations/utilities/clickhouse-local.md) Fichier moteur accepte chemin d'accès au fichier en plus `Format`. Les flux d'entrée / sortie par défaut peuvent être spécifiés en utilisant des noms numériques ou lisibles par l'homme comme `0` ou `stdin`, `1` ou `stdout`.
2020-03-30 12:48:55 +00:00
**Exemple:**
``` bash
$ echo -e "1,2\n3,4" | clickhouse-local -q "CREATE TABLE table (a Int64, b Int64) ENGINE = File(CSV, stdin); SELECT a, b FROM table; DROP TABLE table"
```
## Les détails de mise en Œuvre {#details-of-implementation}
2020-03-30 12:48:55 +00:00
- Plusieurs `SELECT` les requêtes peuvent être effectuées simultanément, mais `INSERT` requêtes s'attendre les uns les autres.
- Prise en charge de la création d'un nouveau fichier par `INSERT` requête.
2020-03-30 12:48:55 +00:00
- Si le fichier existe, `INSERT` ajouterait de nouvelles valeurs dedans.
- Pas pris en charge:
- `ALTER`
- `SELECT ... SAMPLE`
- Index
- Réplication
[Article Original](https://clickhouse.tech/docs/en/operations/table_engines/file/) <!--hide-->