S3 バケット内のデータのクエリ方法
A lot of the world's data lives in Amazon S3 buckets.
このガイドでは、chDBを使用してそのデータをクエリする方法を学びます。
Setup
まずは仮想環境を作成しましょう:
次にchDBをインストールします。
バージョン2.0.2以上であることを確認してください:
続いてIPythonをインストールします:
ipython
を使って、ガイドの残りのコマンドを実行します。
以下のコマンドでipython
を起動できます:
または、Pythonスクリプトやお好みのノートブックでもこのコードを使用できます。
Listing files in an S3 bucket
最初に、Amazonレビューを含むS3バケットの全ファイルをリストアップしましょう。
これを行うには、s3
テーブル関数を使用し、ファイルへのパスまたはワイルドカードを渡します。
バケット名のみを渡すと、例外が発生します。
また、One
入力フォーマットを使用して、ファイルが解析されず、ファイルごとに1行が返され、_file
仮想カラムと_path
仮想カラム経由でファイルやパスにアクセスできるようにします。
このバケットには、Parquetファイルのみが含まれています。
Querying files in an S3 bucket
次に、これらのファイルをクエリする方法を学びましょう。
これらのファイルの各行数を数えたい場合、以下のクエリを実行できます:
S3バケットのHTTP URIを渡すことでも同じ結果が得られます:
DESCRIBE
句を使用してこれらのParquetファイルのスキーマを確認しましょう:
今、レビュー数に基づいてトップの製品カテゴリを計算し、平均星評価を計算しましょう:
Querying files in a private S3 bucket
プライベートS3バケットのファイルをクエリする場合、アクセスキーとシークレットを渡す必要があります。
これらの認証情報をs3
テーブル関数に渡すことができます:
このクエリは公開バケットのため、動作しません!
別の方法は、名前付きコレクションを使用することですが、このアプローチはまだchDBによってサポートされていません。