Help wanted!
The following content of this documentation page has been machine-translated. But unlike other websites, it is not done on the fly. This translated text lives on GitHub repository alongside main ClickHouse codebase and waits for fellow native speakers to make it more human-readable. You can also use the original English version as a reference.
hdfs
HDFS内のファイルからテーブルを作成します。 この表関数は次のようになります url と ファイル ワンズ
hdfs(URI, format, structure)
入力パラメータ
URI
— The relative URI to the file in HDFS. Path to file support following globs in readonly mode:*
,?
,{abc,def}
と{N..M}
どこにN
,M
— numbers, `'abc', 'def'
— strings.format
— The 形式 ファイルの。structure
— Structure of the table. Format'column1_name column1_type, column2_name column2_type, ...'
.
戻り値
テーブルの指定された構造を読み取りまたは書き込みデータを、指定されたファイルです。
例
テーブルから hdfs://hdfs1:9000/test
そして、それから最初の二つの行の選択:
SELECT *
FROM hdfs('hdfs://hdfs1:9000/test', 'TSV', 'column1 UInt32, column2 UInt32, column3 UInt32')
LIMIT 2
┌─column1─┬─column2─┬─column3─┐
│ 1 │ 2 │ 3 │
│ 3 │ 2 │ 1 │
└─────────┴─────────┴─────────┘
パス内のグロブ
複数のパスコンポーネ のための処理中のファイルが存在するマッチのパスのパターンのみならず接尾辞または接頭).
*
— Substitutes any number of any characters except/
空の文字列を含む。?
— 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.
構造との {}
に類似しています 遠隔テーブル機能).
例
- HDFSに次のUriを持つ複数のファイルがあるとします:
- ‘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’
- これらのファイル内の行の量を照会します:
SELECT count(*)
FROM hdfs('hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV', 'name String, value UInt32')
- クエリの量の行のすべてのファイルのディレクトリ:
SELECT count(*)
FROM hdfs('hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV', 'name String, value UInt32')
警告
ファイ ?
.
例
クエリからのデータファイル名 file000
, file001
, … , file999
:
SELECT count(*)
FROM hdfs('hdfs://hdfs1:9000/big_dir/file{0..9}{0..9}{0..9}', 'CSV', 'name String, value UInt32')
仮想列
_path
— Path to the file._file
— Name of the file.
も参照。