ClickHouse/docs/fr/engines/table-engines/integrations/hdfs.md
2020-10-13 20:23:29 +03:00

4.4 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 36 HDFS

HDFS

Ce moteur fournit l'intégration avec Apache Hadoop l'écosystème en permettant de gérer les données sur HDFSvia ClickHouse. Ce moteur est similaire à l' Fichier et URL moteurs, mais fournit des fonctionnalités spécifiques Hadoop.

Utilisation

ENGINE = HDFS(URI, format)

Le URI paramètre est L'URI du fichier entier dans HDFS. 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 INSERT queries for output. The available formats are listed in the Format section. Le chemin le cadre de URI peut contenir des globules. Dans ce cas, le tableau serait en lecture seule.

Exemple:

1. Configurer le hdfs_engine_table table:

CREATE TABLE hdfs_engine_table (name String, value UInt32) ENGINE=HDFS('hdfs://hdfs1:9000/other_storage', 'TSV')

2. Remplir le fichier:

INSERT INTO hdfs_engine_table VALUES ('one', 1), ('two', 2), ('three', 3)

3. Interroger les données:

SELECT * FROM hdfs_engine_table LIMIT 2
┌─name─┬─value─┐
│ one  │     1 │
│ two  │     2 │
└──────┴───────┘

Détails De Mise En Œuvre

  • Les lectures et les écritures peuvent être parallèles
  • Pas pris en charge:
    • ALTER et SELECT...SAMPLE opérations.
    • Index.
    • Réplication.

Globs dans le chemin

Plusieurs composants de chemin peuvent avoir des globs. Pour être traité, le fichier devrait exister et correspondre au modèle de chemin entier. Liste des fichiers détermine pendant SELECT (pas à l' CREATE moment).

  • * — Substitutes any number of any characters except / y compris la chaîne vide.
  • ? — Substitutes any single character.
  • {some_string,another_string,yet_another_one} — Substitutes any of strings 'some_string', 'another_string', 'yet_another_one'.
  • {N..M} — Substitutes any number in range from N to M including both borders.

Les Constructions avec {} sont similaires à l' distant table de fonction.

Exemple

  1. Supposons que nous ayons plusieurs fichiers au format TSV avec les URI suivants sur HDFS:
  • hdfs://hdfs1:9000/some_dir/some_file_1
  • hdfs://hdfs1:9000/some_dir/some_file_2
  • hdfs://hdfs1:9000/some_dir/some_file_3
  • hdfs://hdfs1:9000/another_dir/some_file_1
  • hdfs://hdfs1:9000/another_dir/some_file_2
  • hdfs://hdfs1:9000/another_dir/some_file_3
  1. Il y a plusieurs façons de faire une table composée des six fichiers:
CREATE TABLE table_with_range (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV')

Une autre façon:

CREATE TABLE table_with_question_mark (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/some_file_?', 'TSV')

Table se compose de tous les fichiers dans les deux répertoires (tous les fichiers doivent satisfaire le format et le schéma décrits dans la requête):

CREATE TABLE table_with_asterisk (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV')

!!! warning "Avertissement" Si la liste des fichiers contient des plages de nombres avec des zéros en tête, utilisez la construction avec des accolades pour chaque chiffre séparément ou utilisez ?.

Exemple

Créer une table avec des fichiers nommés file000, file001, … , file999:

CREARE TABLE big_table (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/big_dir/file{0..9}{0..9}{0..9}', 'CSV')

Les Colonnes Virtuelles

  • _path — Path to the file.
  • _file — Name of the file.

Voir Aussi

Article Original