ClickHouse/docs/fr/engines/table-engines/special/external-data.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.0 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 34 De données externes

Données Externes Pour Le Traitement Des requêtes

ClickHouse permet dEnvoyer à un serveur les données nécessaires au traitement dune requête, ainsi quune requête SELECT. Ces données sont placées dans une table temporaire (voir la section “Temporary tables”) et peut être utilisé dans la requête (par exemple, dans les DANS les opérateurs).

Par exemple, si vous disposez dun fichier texte avec important des identifiants dutilisateur, vous pouvez le télécharger sur le serveur avec une requête qui utilise la filtration par cette liste.

Si vous devez exécuter plusieurs requêtes avec un volume important de données externes, nutilisez pas cette fonctionnalité. Il est préférable de télécharger les données sur la base de données à lavance.

Les données externes peuvent être téléchargées à laide du client de ligne de commande (en mode non interactif) ou à laide de Linterface HTTP.

Dans le client de ligne de commande, vous pouvez spécifier une section paramètres du format

--external --file=... [--name=...] [--format=...] [--types=...|--structure=...]

Vous pouvez avoir plusieurs sections comme ça, pour le nombre de tables étant transmis.

external Marks the beginning of a clause. file Path to the file with the table dump, or -, which refers to stdin. Une seule table peut être récupérée à partir de stdin.

Les paramètres suivants sont facultatifs: name Name of the table. If omitted, _data is used. format Data format in the file. If omitted, TabSeparated is used.

Lun des paramètres suivants est requis:types A list of comma-separated column types. For example: UInt64,String. The columns will be named _1, _2, … structure The table structure in the formatUserID UInt64, URL String. Définit les noms et les types de colonnes.

Les fichiers spécifiés dans file sera analysé par le format spécifié dans format, en utilisant les types de données spécifié dans types ou structure. La table sera téléchargée sur le serveur et accessible en tant que table temporaire avec le nom dans name.

Exemple:

$ echo -ne "1\n2\n3\n" | clickhouse-client --query="SELECT count() FROM test.visits WHERE TraficSourceID IN _data" --external --file=- --types=Int8
849897
$ cat /etc/passwd | sed 's/:/\t/g' | clickhouse-client --query="SELECT shell, count() AS c FROM passwd GROUP BY shell ORDER BY c DESC" --external --file=- --name=passwd --structure='login String, unused String, uid UInt16, gid UInt16, comment String, home String, shell String'
/bin/sh 20
/bin/false      5
/bin/bash       4
/usr/sbin/nologin       1
/bin/sync       1

Lors de lutilisation de Linterface HTTP, les données externes sont transmises au format multipart/form-data. Chaque tableau est transmis en tant que fichier séparé. Le nom de la table est tiré du nom du fichier. Le query_string est passé les paramètres name_format, name_types, et name_structure, où name est le nom de la table que ces paramètres correspondent. La signification des paramètres est la même que lors de lutilisation du client de ligne de commande.

Exemple:

$ cat /etc/passwd | sed 's/:/\t/g' > passwd.tsv

$ curl -F 'passwd=@passwd.tsv;' 'http://localhost:8123/?query=SELECT+shell,+count()+AS+c+FROM+passwd+GROUP+BY+shell+ORDER+BY+c+DESC&passwd_structure=login+String,+unused+String,+uid+UInt16,+gid+UInt16,+comment+String,+home+String,+shell+String'
/bin/sh 20
/bin/false      5
/bin/bash       4
/usr/sbin/nologin       1
/bin/sync       1

Pour le traitement des requêtes distribuées, les tables temporaires sont envoyées à tous les serveurs distants.

Article Original