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

Amazon Customer Review

This dataset contains over 150M customer reviews of Amazon products. The data is in snappy-compressed Parquet files in AWS S3 that total 49GB in size (compressed). Let's walk through the steps to insert it into ClickHouse.

注記

The queries below were executed on a Production instance of ClickHouse Cloud. For more information see "Playground specifications".

データセットの読み込み

  1. ClickHouseにデータを挿入せずに、その場でクエリを実行できます。いくつかの行を取得して、どのようなものか見てみましょう:

行は次のようになります:

  1. データをClickHouseに保存するために、新しい MergeTree テーブル amazon_reviews を定義しましょう:
  1. 次の INSERT コマンドは、s3Cluster テーブル関数を使用しており、これによりクラスタのすべてのノードを使用して複数のS3ファイルを同時に処理できます。また、https://datasets-documentation.s3.eu-west-3.amazonaws.com/amazon_reviews/amazon_reviews_*.snappy.parquet という名前で始まるファイルを挿入するためにワイルドカードも使用しています:
ヒント

ClickHouse Cloudでは、クラスタの名前は default です。 default をあなたのクラスタ名に変更するか、クラスタがない場合は s3Cluster の代わりに s3 テーブル関数を使用してください。

  1. このクエリは時間がかからず、平均して毎秒約300,000行の速度で処理されます。5分ほどの間にすべての行が挿入されるはずです:
  1. データがどれだけのスペースを使用しているか見てみましょう:

元のデータは約70Gでしたが、ClickHouseでは約30Gのサイズを占めました。

例のクエリ

  1. いくつかのクエリを実行してみましょう。データセット内で最も役立つレビューのトップ10はこちらです:
注記

このクエリは、パフォーマンスを向上させるために プロジェクション を使用しています。

  1. Amazonでレビューが最も多いトップ10製品はこちらです:
  1. 各製品の月ごとの平均レビュー評価を示します(実際の Amazonの就職面接質問!):
  1. 各製品カテゴリごとの投票総数を示します。このクエリは、product_category が主キーに含まれているため高速です:
  1. レビュー内で最も頻繁に**"awful"**という単語が出現する製品を探します。これは大きな作業です - 1.51億以上の文字列を解析して単語を探す必要があります:

このような大量のデータに対するクエリ時間に注目してください。結果も読むのが楽しいです!

  1. 同じクエリを再度実行できますが、今回はレビュー内でawesomeを検索します: