メインコンテンツまでスキップ
メインコンテンツまでスキップ

s3Cluster テーブル関数

これはs3テーブル関数の拡張です。

Amazon S3とGoogle Cloud Storageからのファイルを指定したクラスター内の多くのノードで並列に処理することを可能にします。イニシエーターでは、クラスター内のすべてのノードへの接続を作成し、S3ファイルパス内のアスタリスクを開示し、各ファイルを動的にディスパッチします。ワーカーノードでは、イニシエーターに処理する次のタスクを尋ね、それを処理します。これはすべてのタスクが完了するまで繰り返されます。

構文

引数

  • 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。デフォルトでは、ファイル拡張子によって圧縮メソッドを自動検出します。
  • headers - パラメータは任意。S3リクエストにヘッダーを渡すことを許可します。フォーマットは headers(key=value) で、例として headers('x-amz-request-payer' = 'requester') があります。使用例についてはこちらを参照してください。

引数はnamed collectionsを使用して渡すこともできます。この場合、urlaccess_key_idsecret_access_keyformatstructurecompression_methodは同じように機能し、追加のパラメータがサポートされます:

  • filename — 指定されている場合、urlに追加されます。
  • use_environment_credentials — デフォルトで有効、環境変数 AWS_CONTAINER_CREDENTIALS_RELATIVE_URIAWS_CONTAINER_CREDENTIALS_FULL_URIAWS_CONTAINER_AUTHORIZATION_TOKENAWS_EC2_METADATA_DISABLEDを使用して追加のパラメータを渡すことを許可します。
  • no_sign_request — デフォルトで無効。
  • expiration_window_seconds — デフォルト値は120。

返される値

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

使用例

cluster_simpleクラスター内の/root/data/clickhouseおよび/root/data/database/フォルダー内のすべてのファイルからデータを選択します。

クラスターcluster_simple内のすべてのファイルの行の合計をカウントします。

ヒント

ファイルのリストに先頭ゼロ付きの番号範囲が含まれている場合は、各数字を別々に括弧で囲む構文を使用するか、?を使用してください。

本番環境での使用ケースでは、named collectionsを使用することをお勧めします。以下はその例です:

プライベートおよびパブリックバケットへのアクセス

ユーザーは、s3関数のドキュメントで同じアプローチを使用できますこちら

パフォーマンスの最適化

s3関数のパフォーマンスを最適化する詳細については、詳細ガイドを参照してください。

関連資料