構文
引数
| 引数 | 説明 |
|---|---|
URI | HDFS 内のファイルへの相対 URI。ファイルパスでは、読み取り専用モードで次のグロブを使用できます: *, ?, {abc,def}、{N..M}。ここで、N、M は数値、'abc'、'def' は文字列です。 |
format | ファイルのフォーマット。 |
structure | テーブルの構造。形式は 'column1_name column1_type, column2_name column2_type, ...' です。 |
戻り値
hdfs://hdfs1:9000/test にあるテーブルと、そこから先頭2行を選択する例:
path 内のグロブ
*— 空文字列を含み、/を除く任意の長さの文字列を表します。**— フォルダー内のすべてのファイルを再帰的に表します。?— 任意の 1 文字を表します。{some_string,another_string,yet_another_one}—'some_string'、'another_string'、'yet_another_one'のいずれかの文字列に展開されます。これらの文字列には/記号を含めることができます。{N..M}—>= Nかつ<= Mの任意の数値を表します。
{} を使った構文は、remote および file テーブル関数と似ています。
例
- 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’
- これらのファイルの行数を取得します。
- これら2つのディレクトリ内のすべてのファイルの行数を確認します:
ファイル一覧に先頭がゼロの数値範囲が含まれる場合は、各桁ごとに波括弧を使った構文を使用するか、
? を使用してください。file000、file001、…、file999 という名前のファイルからデータを取得します:
仮想カラム
_path— ファイルのパス。型:LowCardinality(String)。_file— ファイル名。型:LowCardinality(String)。_size— ファイルサイズ (バイト単位) 。型:Nullable(UInt64)。サイズが不明な場合、値はNULLです。_time— ファイルの最終更新時刻。型:Nullable(DateTime)。時刻が不明な場合、値はNULLです。
use_hive_partitioning 設定
use_hive_partitioning を 1 に設定すると、ClickHouse はパス (/name=value/) 内の Hive スタイルのパーティション化を検出し、クエリでパーティションカラムを仮想カラムとして使用できるようになります。これらの仮想カラムには、パーティション化されたパス内と同じ名前が付きます。
例
Hive スタイルのパーティション化で作成された仮想カラムを使用する
ストレージ設定
- hdfs_truncate_on_insert - insert 前にファイルを切り詰めることを許可します。デフォルトでは無効です。
- hdfs_create_new_file_on_insert - フォーマットに接尾辞がある場合、insert のたびに新しいファイルを作成することを許可します。デフォルトでは無効です。
- hdfs_skip_empty_files - 読み取り時に空のファイルをスキップすることを許可します。デフォルトでは無効です。