ClickHouse/docs/ja/sql-reference/table-functions/s3Cluster.md
2024-11-18 11:58:58 +09:00

5.3 KiB
Raw Blame History

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関数のパフォーマンスを最適化する詳細については、詳細ガイド を参照してください。

参考