Passer au contenu principal
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

ArgumentDescription
cluster_nameNom d’un cluster servant à construire un ensemble d’adresses et de paramètres de connexion pour les serveurs distants et locaux.
URIURI 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.
formatLe format du fichier.
structureStructure 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')
Si votre liste de fichiers contient des plages de nombres avec des zéros en tête, utilisez la syntaxe avec des accolades pour chaque chiffre séparément, ou utilisez ?.
Dernière modification le 25 juin 2026