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

Redditのコメントデータセット

このデータセットには、2005年12月から2023年3月までの公開されているRedditのコメントが含まれており、140億行以上のデータがあります。生データは圧縮ファイルのJSON形式であり、行は以下のようになります。

Perconaのこのデータセットを取り込む動機に感謝します。このデータセットはダウンロードされ、S3バケットに保存されました。

テーブルの作成

注記

以下のコマンドは、ClickHouse Cloudのプロダクションインスタンスでメモリが720GBに設定されている状態で実行されました。独自のクラスターでこれを実行するには、s3Cluster関数呼び出しのdefaultをクラスターの名前に置き換えてください。クラスターがない場合は、s3Cluster関数をs3関数に置き換えます。

  1. Redditデータ用のテーブルを作成します。
注記

S3内のファイル名はRC_YYYY-MMで始まり、YYYY-MM2005-12から2023-02まで変わります。しかし、圧縮は何度か変更されるため、ファイルの拡張子は一貫していません。例えば:

  • ファイル名の最初はRC_2005-12.bz2からRC_2017-11.bz2まで
  • 次にRC_2017-12.xzからRC_2018-09.xzまで
  • 最後にRC_2018-10.zstからRC_2023-02.zstまで

データのロード

  1. 最初は1か月分のデータから始めますが、もしすべての行を単に挿入したい場合は、以下のステップ8に進んでください。以下のファイルには、2017年12月の860万件のレコードがあります。
  1. リソースに応じて時間がかかりますが、完了したら正常に動作したことを確認します。
  1. 2017年12月にいくつのユニークなサブredditがあったか見てみましょう。

例クエリ

  1. このクエリは、コメント数に基づいてトップ10のサブredditを返します。
  1. 2017年12月に最もコメントを投稿したトップ10の著者はこちらです。

全データセットのロード

  1. すでにいくつかのデータを挿入しましたが、最初からやり直します。
  1. これは楽しいデータセットで、素晴らしい情報を見つけることができそうなので、2005年から2023年までの全データセットを挿入しましょう。実用的な理由から、データを年ごとに挿入するのがうまく機能します...

...そして最後は:

クラスターがない場合は、s3Clusterの代わりにs3を使用します。

  1. 正常に動作したか確認するために、年ごとの行数を以下に示します(2023年2月現在)。
  1. 挿入された行数とテーブルが使用しているディスクスペースを見てみましょう。

ディスクストレージの圧縮は未圧縮サイズの約1/3であることに注意してください。

例のクエリ - 月ごとのコメント、著者、サブreddit

  1. 以下のクエリは、各月のコメント、著者、サブredditの数を示しています:

これは14.69億行を処理する必要がある大規模なクエリですが、それでも印象的な応答時間(約48秒)を得ることができます:

さらなるクエリ

  1. 2022年のトップ10サブレディットは次のとおりです:
  1. 2018年から2019年にかけてコメント数が最も増加したサブレディットを見てみましょう:

どうやら、2019年にはmemesとteenagersがRedditで忙しかったようです:

その他のクエリ

  1. もう1つのクエリ:ClickHouseのメンションをSnowflakeやPostgresなどの他のテクノロジーと比較してみましょう。このクエリは大きなもので、すべての146.9億コメントを3回検索する必要があるため、パフォーマンスは実際にはかなり印象的です。(残念ながら、ClickHouseユーザーはまだRedditであまり活発ではありません):