mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-03 21:12:28 +00:00
4.3 KiB
4.3 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
36 | HDFS |
HDFS
このエンジンは、 Apache Hadoop 生態系および管理データ HDFSクリックハウス経由。 このエンジンは同様です に ファイル と URL エンジンが、Hadoop固有の機能を提供します。
使用法
ENGINE = HDFS(URI, format)
その URI
パラメータは、HDFS内のファイルURI全体です。
その format
パラメータを指定するか、ファイルのファイルフォーマット 実行するには
SELECT
この形式は、入力と実行のためにサポートされている必要があります
INSERT
queries – for output. The available formats are listed in the
形式 セクション
のパス部分 URI
globsを含むことができます。 この場合、テーブルはreadonlyになります。
例:
1. セットアップ hdfs_engine_table
テーブル:
CREATE TABLE hdfs_engine_table (name String, value UInt32) ENGINE=HDFS('hdfs://hdfs1:9000/other_storage', 'TSV')
2. Fillファイル:
INSERT INTO hdfs_engine_table VALUES ('one', 1), ('two', 2), ('three', 3)
3. データの照会:
SELECT * FROM hdfs_engine_table LIMIT 2
┌─name─┬─value─┐
│ one │ 1 │
│ two │ 2 │
└──────┴───────┘
実装の詳細
- 読み書きできる並列
- 対応していません:
ALTER
とSELECT...SAMPLE
作戦だ- インデックス。
- 複製。
パス内のグロブ
複数のパスコンポーネ のための処理中のファイルが存在するマッチのパスのパターンです。 ファイルのリストは SELECT
(ではない CREATE
瞬間)。
*
— 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を持つTSV形式のファイルがいくつかあるとします:
- ‘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’
- あはいくつかの方法が考えられているテーブルの構成は、すべてのファイル:
CREATE TABLE table_with_range (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV')
別の方法:
CREATE TABLE table_with_question_mark (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/some_file_?', 'TSV')
テーブルはすべてのファイルの両方のディレクトリ(すべてのファイルが満たすべき書式は、スキーマに記載のクエリ):
CREATE TABLE table_with_asterisk (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV')
!!! warning "警告"
ファイ ?
.
例
このように作成されたテーブルとファイル名 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')
仮想列
_path
— Path to the file._file
— Name of the file.
も参照。