Redditのコメントデータセット
このデータセットには、2005年12月から2023年3月までの公開されているRedditのコメントが含まれており、140億行以上のデータがあります。生データは圧縮ファイルのJSON形式であり、行は以下のようになります。
Perconaのこのデータセットを取り込む動機に感謝します。このデータセットはダウンロードされ、S3バケットに保存されました。
テーブルの作成
注記
以下のコマンドは、ClickHouse Cloudのプロダクションインスタンスでメモリが720GBに設定されている状態で実行されました。独自のクラスターでこれを実行するには、s3Cluster
関数呼び出しのdefault
をクラスターの名前に置き換えてください。クラスターがない場合は、s3Cluster
関数をs3
関数に置き換えます。
- Redditデータ用のテーブルを作成します。
注記
S3内のファイル名はRC_YYYY-MM
で始まり、YYYY-MM
は2005-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万件のレコードがあります。
- リソースに応じて時間がかかりますが、完了したら正常に動作したことを確認します。
- 2017年12月にいくつのユニークなサブredditがあったか見てみましょう。
例クエリ
- このクエリは、コメント数に基づいてトップ10のサブredditを返します。
- 2017年12月に最もコメントを投稿したトップ10の著者はこちらです。
全データセットのロード
- すでにいくつかのデータを挿入しましたが、最初からやり直します。
- これは楽しいデータセットで、素晴らしい情報を見つけることができそうなので、2005年から2023年までの全データセットを挿入しましょう。実用的な理由から、データを年ごとに挿入するのがうまく機能します...
...そして最後は:
クラスターがない場合は、s3Cluster
の代わりにs3
を使用します。
- 正常に動作したか確認するために、年ごとの行数を以下に示します(2023年2月現在)。
- 挿入された行数とテーブルが使用しているディスクスペースを見てみましょう。
ディスクストレージの圧縮は未圧縮サイズの約1/3であることに注意してください。
例のクエリ - 月ごとのコメント、著者、サブreddit
- 以下のクエリは、各月のコメント、著者、サブredditの数を示しています:
これは14.69億行を処理する必要がある大規模なクエリですが、それでも印象的な応答時間(約48秒)を得ることができます:
さらなるクエリ
- 2022年のトップ10サブレディットは次のとおりです:
- 2018年から2019年にかけてコメント数が最も増加したサブレディットを見てみましょう:
どうやら、2019年にはmemesとteenagersがRedditで忙しかったようです:
その他のクエリ
- もう1つのクエリ:ClickHouseのメンションをSnowflakeやPostgresなどの他のテクノロジーと比較してみましょう。このクエリは大きなもので、すべての146.9億コメントを3回検索する必要があるため、パフォーマンスは実際にはかなり印象的です。(残念ながら、ClickHouseユーザーはまだRedditであまり活発ではありません):