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

Reddit comments dataset

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

Perconaへの感謝を込めて、このデータセットを取り込む動機に関しては、こちらを参照してください motivation behind ingesting this dataset。このデータはダウンロードされ、S3バケットに保存されています。

テーブルの作成

注記

以下のコマンドは、最小メモリが720GBに設定されたClickHouse CloudのProductionインスタンスで実行されました。自分のクラスタでこれを実行するには、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. 一か月分のデータから始めますが、すべての行を単に挿入したい場合は、以下のステップ8に進んでください。次のファイルには、2017年12月からの860万件のレコードがあります:
  1. リソースに応じて時間がかかりますが、完了したら正常に動作したことを確認してください:
  1. 2017年12月にいくつのユニークなsubredditがあったか見てみましょう:

例クエリ

  1. このクエリは、コメント数の観点からトップ10のsubredditを返します:
  1. 2017年12月のコメント数の観点からのトップ10の著者は以下の通りです:

データセット全体の読み込み

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

...そして最後は:

クラスタを持っていない場合は、s3Clusterの代わりにs3を使用してください:

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

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

例のクエリ - コメント、著者、サブレディット毎月の数

  1. 次のクエリは、各月のコメント、著者、サブレディットの数を示しています:

これは14.69億行すべてを処理しなければならない大規模なクエリですが、印象的な応答時間(約48秒)を得ることができます:

More queries

  1. こちらは2022年のトップ10サブレディットです:
  1. 2018年から2019年までのコメント数の増加が最も大きかったサブレディットを見てみましょう:

2019年には「memes」と「teenagers」がRedditで活発でした:

Other queries

  1. もう一つのクエリ: ClickHouseの言及をSnowflakeやPostgresなどの他の技術と比較しましょう。このクエリは、サブストリングのサーチのために147億のコメントを3回検索する必要があるため大きなものですが、実際のパフォーマンスはかなり印象的です。(残念ながらClickHouseのユーザーはまだRedditではあまり活発ではありません):