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

S3バケット内のデータをクエリする方法

世界中の多くのデータはAmazon S3バケット内に存在しています。 このガイドでは、chDBを使用してそのデータをクエリする方法を学びます。

セットアップ

まずは仮想環境を作成しましょう:

次に、chDBをインストールします。 バージョン2.0.2以上であることを確認してください:

次に、IPythonをインストールします:

ガイドの残りの部分ではコマンドを実行するためにipythonを使用します。次のように実行して起動できます:

Pythonスクリプトやお気に入りのノートブックでコードを使うこともできます。

S3バケット内のファイルのリストを取得する

まずは、Amazonレビューを含むS3バケット内のすべてのファイルをリストアップします。 これを行うために、s3テーブル関数を使用し、ファイルのパスまたはファイルセットのワイルドカードを渡すことができます。

ヒント

バケット名だけを渡すと例外が発生します。

また、Oneという入力フォーマットを使用して、ファイルを解析せず、ファイルごとに単一の行を返し、_file仮想カラムを通じてファイルにアクセスし、_path仮想カラムを通じてパスにアクセスできるようにします。

このバケットにはParquetファイルのみが含まれています。

S3バケット内のファイルをクエリする

次に、これらのファイルをクエリする方法を学びましょう。 各ファイルの行数をカウントする場合、以下のクエリを実行します:

HTTP URIをS3バケットに渡すと、同じ結果が得られます:

DESCRIBE句を使ってこれらのParquetファイルのスキーマを確認してみましょう:

レビュー数に基づいて主要な製品カテゴリを計算し、平均星評価を計算してみましょう:

プライベートS3バケット内のファイルをクエリする

プライベートS3バケット内のファイルをクエリする場合、アクセスキーとシークレットを渡す必要があります。 これらの認証情報をs3テーブル関数に渡すことができます:

注記

このクエリは、パブリックバケットなので動作しません!

別の方法として、名前付きコレクションを使用することができますが、このアプローチはchDBではまだサポートされていません。