メインコンテンツへスキップ
これは、s3 テーブル関数の拡張です。 指定したクラスター内の多数のノードで、Amazon S3 および Google Cloud Storage Google Cloud Storage のファイルを並列に処理できます。イニシエーターでは、クラスター内のすべてのノードとの接続を確立し、S3 ファイルパス内のアスタリスクを展開して、各ファイルを動的に振り分けます。worker ノードでは、次に処理するタスクをイニシエーターに問い合わせて処理します。これを、すべてのタスクが完了するまで繰り返します。

構文

s3Cluster(cluster_name, url[, NOSIGN | access_key_id, secret_access_key,[session_token]][, format][, structure][, compression_method][, headers][, extra_credentials])
s3Cluster(cluster_name, named_collection[, option=value [,..]])

引数

引数説明
cluster_nameリモートおよびローカルのserverへのアドレスのセットとconnection parameterの構築に使用されるクラスター名。
urlfile または複数の file への path。readonly モードでは、次の wildcards をサポートします: *, **, ?, {'abc','def'} および {N..M}。ここで N, M は数値、abc, def は文字列です。詳細は Wildcards In Path を参照してください。
NOSIGNcredentials の代わりにこのキーワードを指定すると、すべての request が署名されなくなります。
access_key_id and secret_access_key指定した endpoint で使用する credentials を指定するオプションの parameter です。
session_token指定したオプションと併せて使用する session token。オプションを渡す場合は省略可能です。
formatfile の フォーマット
structuretable の構造。フォーマットは 'column1_name column1_type, column2_name column2_type, ...' です。
compression_methodparameter は省略可能です。サポートされる値: none, gzip または gz, brotli または br, xz または LZMA, zstd または zst。デフォルトでは、file 拡張子から圧縮方式を自動判別します。
headersparameter は省略可能です。S3 request に headers を渡せます。headers(key=value) のフォーマットで指定します。例: headers('x-amz-request-payer' = 'requester')。使用例は こちら を参照してください。
extra_credentials省略可能です。roleARN はこの parameter で渡せます。例は こちら を参照してください。
引数は named collections を使って渡すこともできます。この場合、urlaccess_key_idsecret_access_keyformatstructurecompression_method は同じように機能し、さらに追加の parameter がいくつかサポートされます。
引数説明
filename指定した場合は url に追加されます。
use_environment_credentialsデフォルトで有効です。環境変数 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI, AWS_CONTAINER_CREDENTIALS_FULL_URI, AWS_CONTAINER_AUTHORIZATION_TOKEN, AWS_EC2_METADATA_DISABLED を使って追加の parameter を渡せます。
no_sign_requestデフォルトでは無効です。
expiration_window_secondsデフォルト値は 120 です。

戻り値

指定したファイル内のデータを読み書きするための、指定した構造のテーブル。

cluster_simple クラスター内のすべてのノードを使用して、/root/data/clickhouse/root/data/database/ フォルダー内のすべてのファイルからデータを取得します。
SELECT * FROM s3Cluster(
    'cluster_simple',
    'http://minio1:9001/root/data/{clickhouse,database}/*',
    'minio',
    'ClickHouse_Minio_P@ssw0rd',
    'CSV',
    'name String, value UInt32, polygon Array(Array(Tuple(Float64, Float64)))'
) ORDER BY (name, value, polygon);
cluster_simple クラスター内のすべてのファイルに含まれる行の総数を数えます。
ファイル一覧に先頭の 0 を含む数値範囲がある場合は、各桁ごとに波かっこを使った構文を使用するか、? を使用してください。
本番環境で使用する場合は、named collections を使用することを推奨します。以下はその例です。

CREATE NAMED COLLECTION creds AS
        access_key_id = 'minio',
        secret_access_key = 'ClickHouse_Minio_P@ssw0rd';
SELECT count(*) FROM s3Cluster(
    'cluster_simple', creds, url='https://s3-object-url.csv',
    format='CSV', structure='name String, value UInt32, polygon Array(Array(Tuple(Float64, Float64)))'
)

非公開バケットと公開バケットへのアクセス

ユーザーは、こちらs3 関数のドキュメントにあるものと同じ方法を使用できます。

パフォーマンスの最適化

s3 関数のパフォーマンス最適化について詳しくは、詳細ガイドをご覧ください。
最終更新日 2026年6月10日