アマゾン カスタマー レビュー
このデータセットには、Amazon製品に関する1億5千万件以上の顧客レビューが含まれています。データはAWS S3内のスナッピー圧縮されたParquetファイルにあり、合計サイズは49GB(圧縮後)です。このデータをClickHouseに挿入する手順を見ていきましょう。
注記
以下のクエリはProductionインスタンスのClickHouse Cloudで実行されました。詳細については "Playground specifications"を参照してください。
データセットの読み込み
- データをClickHouseに挿入せずに、その場でクエリを実行できます。いくつかの行を取得して、どのように見えるか確認しましょう:
行は次のようになります:
- このデータをClickHouseに格納するために、
amazon_reviews
という新しいMergeTree
テーブルを定義しましょう:
- 次の
INSERT
コマンドは、s3Cluster
テーブル関数を使用しています。これにより、クラスターのすべてのノードを使用して複数のS3ファイルを並行して処理できます。また、https://datasets-documentation.s3.eu-west-3.amazonaws.com/amazon_reviews/amazon_reviews_*.snappy.parquet
という名前で始まる任意のファイルを挿入するためにワイルドカードも使用します:
ヒント
ClickHouse Cloudでは、クラスターの名前はdefault
です。default
をクラスターの名前に変更するか、クラスターがない場合はs3
テーブル関数を使用してください(s3Cluster
の代わりに)。
- このクエリはあまり時間がかからず、平均して約30万行/秒で処理されます。5分ほどで全ての行が挿入されるはずです:
- データがどれくらいのスペースを使用しているか見てみましょう:
元のデータは約70Gでしたが、ClickHouseで圧縮されると約30Gを占めます。
サンプルクエリ
- いくつかのクエリを実行してみましょう。データセット内で最も役立つレビューの上位10件は次のとおりです:
注記
このクエリはパフォーマンスを向上させるためにプロジェクションを使用しています。
- Amazonでレビュー数が最も多い上位10製品は次のとおりです:
- 各製品の月ごとの平均レビュー評価は次のとおりです(実際のAmazonのジョブ面接問題!):
- 製品カテゴリごとの合計票数は次のとおりです。このクエリは
product_category
が主キーに含まれているため高速です:
- レビューに最も頻繁に出現する**"awful"**という単語が含まれる製品を見つけましょう。これは大きなタスクで、1億5千万以上の文字列を解析して単語を探す必要があります:
このような大量のデータのクエリ時間に注意してください。結果はまた楽しい読み物でもあります!
- 同じクエリを再度実行できますが、今回はレビュー内でawesomeを検索します: