5.3 KiB
slug | sidebar_position | sidebar_label | title |
---|---|---|---|
/ja/sql-reference/table-functions/s3Cluster | 181 | s3Cluster | s3Cluster テーブル関数 |
これは s3 テーブル関数の拡張です。
指定したクラスターの多くのノードから並列で Amazon S3 および Google Cloud Storage のファイルを処理できます。イニシエータでは、クラスター内のすべてのノードに接続を作成し、S3ファイルパス内のアスタリスクを展開し、各ファイルを動的にディスパッチします。ワーカーノードでは、次の処理タスクについてイニシエータに問い合わせ、それを処理します。このプロセスはすべてのタスクが終了するまで繰り返されます。
構文
s3Cluster(cluster_name, url [, NOSIGN | access_key_id, secret_access_key, [session_token]] [,format] [,structure] [,compression_method])
s3Cluster(cluster_name, named_collection[, option=value [,..]])
引数
cluster_name
— リモートおよびローカルサーバーへのアドレスセットと接続パラメータを構築するために使用されるクラスターの名前。url
— ファイルまたは一連のファイルへのパス。読み取り専用モードで次のワイルドカードをサポート:*
,**
,?
,{'abc','def'}
および{N..M}
ここでN
,M
— 数字,abc
,def
— 文字列。詳細については パス内のワイルドカード を参照してください。NOSIGN
— このキーワードが資格情報の代わりに指定された場合、すべてのリクエストは署名されません。access_key_id
およびsecret_access_key
— 指定されたエンドポイントで使用するための資格情報を指定するキー。オプション。session_token
- 指定されたキーと共に使用するセッショントークン。キーを渡す場合はオプション。format
— ファイルの形式。structure
— テーブルの構造。形式'column1_name column1_type, column2_name column2_type, ...'
。compression_method
— パラメータはオプションです。サポートされる値:none
,gzip/gz
,brotli/br
,xz/LZMA
,zstd/zst
。デフォルトでは、ファイル拡張子によって圧縮方法を自動検出します。
引数は named collections を使用して渡すこともできます。この場合、url
, access_key_id
, secret_access_key
, format
, structure
, compression_method
は同じ方法で動作し、いくつかの追加パラメータがサポートされます:
filename
— 指定されている場合、urlに追加されます。use_environment_credentials
— デフォルトで有効で、環境変数AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
,AWS_CONTAINER_CREDENTIALS_FULL_URI
,AWS_CONTAINER_AUTHORIZATION_TOKEN
,AWS_EC2_METADATA_DISABLED
を使用して追加パラメータを渡すことができます。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',
'minio123',
'CSV',
'name String, value UInt32, polygon Array(Array(Tuple(Float64, Float64)))'
) ORDER BY (name, value, polygon);
cluster_simple
クラスター内のすべてのファイルの行の合計をカウント:
:::tip
ファイルリストに先頭にゼロが付いた数字の範囲が含まれる場合は、各桁ごとに波括弧を使用するか ?
を使用してください。
:::
本番ユースケースでは、named collections の使用を推奨します。以下は例です:
CREATE NAMED COLLECTION creds AS
access_key_id = 'minio',
secret_access_key = 'minio123';
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関数のパフォーマンスを最適化する詳細については、詳細ガイド を参照してください。
参考