Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

hdfsCluster

Permet de traiter en parallèle des fichiers HDFS depuis de nombreux nœuds d’un cluster spécifié. Sur le nœud initiateur, cela crée une connexion à tous les nœuds du cluster, développe les astérisques dans le chemin de fichier HDFS et attribue dynamiquement chaque fichier. Sur le nœud worker, celui-ci demande à l’initiateur la tâche suivante à traiter, puis la traite. Cette opération se répète jusqu’à ce que toutes les tâches soient terminées.

Syntaxe

hdfsCluster(cluster_name, URI, format, structure)

Arguments

Argument Description
cluster_name Nom d'un cluster servant à construire un ensemble d'adresses et de paramètres de connexion pour les serveurs distants et locaux.
URI URI d'un fichier ou d'un ensemble de fichiers. Prend en charge les caractères génériques suivants en mode readonly : *, **, ?, {'abc','def'} et {N..M}, où N et M sont des nombres, abc et def des chaînes. Pour plus d'informations, voir Wildcards In Path.
format Le format du fichier.
structure Structure de la table. Format 'column1_name column1_type, column2_name column2_type, ...'.

Valeur renvoyée

Une table ayant la structure spécifiée pour lire les données du fichier spécifié.

Exemples

  1. Supposons que nous ayons un cluster ClickHouse nommé cluster_simple, ainsi que plusieurs fichiers avec les URI suivantes 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. Exécutez une requête pour obtenir le nombre de lignes dans ces fichiers :
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV', 'name String, value UInt32')
  1. Exécutez une requête pour obtenir le nombre de lignes dans tous les fichiers de ces deux répertoires :
SELECT count(*)
FROM hdfsCluster('cluster_simple', 'hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV', 'name String, value UInt32')
Navigation