ClickHouse/docs/ja/getting-started/example-datasets/reddit-comments.md
2024-11-18 11:58:58 +09:00

69 KiB
Raw Permalink Blame History

slug sidebar_label
/ja/getting-started/example-datasets/reddit-comments Redditのコメント

Reddit comments dataset

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

{"controversiality":0,"body":"A look at Vietnam and Mexico exposes the myth of market liberalisation.","subreddit_id":"t5_6","link_id":"t3_17863","stickied":false,"subreddit":"reddit.com","score":2,"ups":2,"author_flair_css_class":null,"created_utc":1134365188,"author_flair_text":null,"author":"frjo","id":"c13","edited":false,"parent_id":"t3_17863","gilded":0,"distinguished":null,"retrieved_on":1473738411}
{"created_utc":1134365725,"author_flair_css_class":null,"score":1,"ups":1,"subreddit":"reddit.com","stickied":false,"link_id":"t3_17866","subreddit_id":"t5_6","controversiality":0,"body":"The site states \"What can I use it for? Meeting notes, Reports, technical specs Sign-up sheets, proposals and much more...\", just like any other new breeed of sites that want us to store everything we have on the web. And they even guarantee multiple levels of security and encryption etc. But what prevents these web site operators fom accessing and/or stealing Meeting notes, Reports, technical specs Sign-up sheets, proposals and much more, for competitive or personal gains...? I am pretty sure that most of them are honest, but what's there to prevent me from setting up a good useful site and stealing all your data? Call me paranoid - I am.","retrieved_on":1473738411,"distinguished":null,"gilded":0,"id":"c14","edited":false,"parent_id":"t3_17866","author":"zse7zse","author_flair_text":null}
{"gilded":0,"distinguished":null,"retrieved_on":1473738411,"author":"[deleted]","author_flair_text":null,"edited":false,"id":"c15","parent_id":"t3_17869","subreddit":"reddit.com","score":0,"ups":0,"created_utc":1134366848,"author_flair_css_class":null,"body":"Jython related topics by Frank Wierzbicki","controversiality":0,"subreddit_id":"t5_6","stickied":false,"link_id":"t3_17869"}
{"gilded":0,"retrieved_on":1473738411,"distinguished":null,"author_flair_text":null,"author":"[deleted]","edited":false,"parent_id":"t3_17870","id":"c16","subreddit":"reddit.com","created_utc":1134367660,"author_flair_css_class":null,"score":1,"ups":1,"body":"[deleted]","controversiality":0,"stickied":false,"link_id":"t3_17870","subreddit_id":"t5_6"}
{"gilded":0,"retrieved_on":1473738411,"distinguished":null,"author_flair_text":null,"author":"rjoseph","edited":false,"id":"c17","parent_id":"t3_17817","subreddit":"reddit.com","author_flair_css_class":null,"created_utc":1134367754,"score":1,"ups":1,"body":"Saft is by far the best extension you could tak onto your Safari","controversiality":0,"link_id":"t3_17817","stickied":false,"subreddit_id":"t5_6"}

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

:::note 以下のコマンドは、最低メモリを720GBに設定したClickHouse CloudのProductionインスタンスで実行されました。自分のクラスターでこれを実行したい場合は、s3Cluster関数呼び出しのdefaultを自分のクラスター名に置き換えてください。クラスターを持っていない場合は、s3Cluster関数をs3関数に置き換えてください。 :::

  1. Redditデータ用のテーブルを作成しましょう
CREATE TABLE reddit
(
    subreddit LowCardinality(String),
    subreddit_id LowCardinality(String),
    subreddit_type Enum('public' = 1, 'restricted' = 2, 'user' = 3, 'archived' = 4, 'gold_restricted' = 5, 'private' = 6),
    author LowCardinality(String),
    body String CODEC(ZSTD(6)),
    created_date Date DEFAULT toDate(created_utc),
    created_utc DateTime,
    retrieved_on DateTime,
    id String,
    parent_id String,
    link_id String,
    score Int32,
    total_awards_received UInt16,
    controversiality UInt8,
    gilded UInt8,
    collapsed_because_crowd_control UInt8,
    collapsed_reason Enum('' = 0, 'comment score below threshold' = 1, 'may be sensitive content' = 2, 'potentially toxic' = 3, 'potentially toxic content' = 4),
    distinguished Enum('' = 0, 'moderator' = 1, 'admin' = 2, 'special' = 3),
    removal_reason Enum('' = 0, 'legal' = 1),
    author_created_utc DateTime,
    author_fullname LowCardinality(String),
    author_patreon_flair UInt8,
    author_premium UInt8,
    can_gild UInt8,
    can_mod_post UInt8,
    collapsed UInt8,
    is_submitter UInt8,
    _edited String,
    locked UInt8,
    quarantined UInt8,
    no_follow UInt8,
    send_replies UInt8,
    stickied UInt8,
    author_flair_text LowCardinality(String)
)
ENGINE = MergeTree
ORDER BY (subreddit, created_date, author);

:::note 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月の8600万件のレコードが含まれています
INSERT INTO reddit
    SELECT *
    FROM s3(
        'https://clickhouse-public-datasets.s3.eu-central-1.amazonaws.com/reddit/original/RC_2017-12.xz',
        'JSONEachRow'
    );
  1. リソースに応じて時間がかかりますが、完了したら動作を確認します:
SELECT formatReadableQuantity(count())
FROM reddit;
┌─formatReadableQuantity(count())─┐
│ 85.97 million                   │
└─────────────────────────────────┘
  1. 2017年12月にどれだけのユニークなサブレディットがあったか見てみましょう
SELECT uniqExact(subreddit)
FROM reddit;
┌─uniqExact(subreddit)─┐
│                91613 │
└──────────────────────┘

1 row in set. Elapsed: 1.572 sec. Processed 85.97 million rows, 367.43 MB (54.71 million rows/s., 233.80 MB/s.)
  1. 次のクエリは、コメント数で上位10のサブレディットを返します
SELECT
    subreddit,
    count() AS c
FROM reddit
GROUP BY subreddit
ORDER BY c DESC
LIMIT 20;
┌─subreddit───────┬───────c─┐
│ AskReddit       │ 5245881 │
│ politics        │ 1753120 │
│ nfl             │ 1220266 │
│ nba             │  960388 │
│ The_Donald      │  931857 │
│ news            │  796617 │
│ worldnews       │  765709 │
│ CFB             │  710360 │
│ gaming          │  602761 │
│ movies          │  601966 │
│ soccer          │  590628 │
│ Bitcoin         │  583783 │
│ pics            │  563408 │
│ StarWars        │  562514 │
│ funny           │  547563 │
│ leagueoflegends │  517213 │
│ teenagers       │  492020 │
│ DestinyTheGame  │  477377 │
│ todayilearned   │  472650 │
│ videos          │  450581 │
└─────────────────┴─────────┘

20 rows in set. Elapsed: 0.368 sec. Processed 85.97 million rows, 367.43 MB (233.34 million rows/s., 997.25 MB/s.)
  1. 2017年12月にコメント数で上位10の著者は次のとおりです
SELECT
    author,
    count() AS c
FROM reddit
GROUP BY author
ORDER BY c DESC
LIMIT 10;
┌─author──────────┬───────c─┐
│ [deleted]       │ 5913324 │
│ AutoModerator   │  784886 │
│ ImagesOfNetwork │   83241 │
│ BitcoinAllBot   │   54484 │
│ imguralbumbot   │   45822 │
│ RPBot           │   29337 │
│ WikiTextBot     │   25982 │
│ Concise_AMA_Bot │   19974 │
│ MTGCardFetcher  │   19103 │
│ TotesMessenger  │   19057 │
└─────────────────┴─────────┘

10 rows in set. Elapsed: 8.143 sec. Processed 85.97 million rows, 711.05 MB (10.56 million rows/s., 87.32 MB/s.)
  1. データをすでに挿入していますが、最初からやり直します:
TRUNCATE TABLE reddit;
  1. このデータセットは面白いデータセットなので、2005年から2023年までのすべてのデータを挿入してみましょう。実用的な理由から、年ごとにデータを挿入するとうまく機能します...
INSERT INTO reddit
    SELECT *
    FROM s3Cluster(
        'default',
        'https://clickhouse-public-datasets.s3.eu-central-1.amazonaws.com/reddit/original/RC_2005*',
        'JSONEachRow'
    )
    SETTINGS zstd_window_log_max = 31;

...そして、以下のように終了します:

INSERT INTO reddit
SELECT *
FROM s3Cluster(
    'default',
    'https://clickhouse-public-datasets.s3.amazonaws.com/reddit/original/RC_2023*',
    'JSONEachRow'
    )
SETTINGS zstd_window_log_max = 31;

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

INSERT INTO reddit
SELECT *
FROM s3(
    'https://clickhouse-public-datasets.s3.amazonaws.com/reddit/original/RC_2005*',
    'JSONEachRow'
    )
SETTINGS zstd_window_log_max = 31;
  1. 正しく動作したか確認するために、1年ごとの行数を示します2023年2月現在
SELECT
    toYear(created_utc) AS year,
    formatReadableQuantity(count())
FROM reddit
GROUP BY year;

┌─year─┬─formatReadableQuantity(count())─┐
│ 2005 │ 1.07 thousand                   │
│ 2006 │ 417.18 thousand                 │
│ 2007 │ 2.46 million                    │
│ 2008 │ 7.24 million                    │
│ 2009 │ 18.86 million                   │
│ 2010 │ 42.93 million                   │
│ 2011 │ 28.91 million                   │
│ 2012 │ 260.31 million                  │
│ 2013 │ 402.21 million                  │
│ 2014 │ 531.80 million                  │
│ 2015 │ 667.76 million                  │
│ 2016 │ 799.90 million                  │
│ 2017 │ 972.86 million                  │
│ 2018 │ 1.24 billion                    │
│ 2019 │ 1.66 billion                    │
│ 2020 │ 2.16 billion                    │
│ 2021 │ 2.59 billion                    │
│ 2022 │ 2.82 billion                    │
│ 2023 │ 474.86 million                  │
└──────┴─────────────────────────────────┘
  1. 挿入された行数とテーブルが使用しているディスクスペースを確認しましょう:
SELECT
    sum(rows) AS count,
    formatReadableQuantity(count),
    formatReadableSize(sum(bytes)) AS disk_size,
    formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed_size
FROM system.parts
WHERE (table = 'reddit') AND active;

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

┌───────count─┬─formatReadableQuantity(sum(rows))─┬─disk_size─┬─uncompressed_size─┐
│ 14688534662 │ 14.69 billion                     │ 1.03 TiB  │ 3.26 TiB          │
└─────────────┴───────────────────────────────────┴───────────┴───────────────────┘

1 row in set. Elapsed: 0.005 sec.
  1. 次のクエリは、月ごとにコメント、著者、サブレディットの数を示します:
SELECT
    toStartOfMonth(created_utc) AS firstOfMonth,
    count() AS c,
    bar(c, 0, 50000000, 25) AS bar_count,
    uniq(author) AS authors,
    bar(authors, 0, 5000000, 25) AS bar_authors,
    uniq(subreddit) AS subreddits,
    bar(subreddits, 0, 100000, 25) AS bar_subreddits
FROM reddit
GROUP BY firstOfMonth
ORDER BY firstOfMonth ASC;

これは14.69B行のすべてを処理するための大きなクエリですが、まだ印象的な応答時間約48秒を示します

┌─firstOfMonth─┬─────────c─┬─bar_count─────────────────┬──authors─┬─bar_authors───────────────┬─subreddits─┬─bar_subreddits────────────┐
│   2005-12-01 │      1075 │                           │      394 │                           │          1 │                           │
│   2006-01-01 │      3666 │                           │      791 │                           │          2 │                           │
│   2006-02-01 │      9095 │                           │     1464 │                           │         18 │                           │
│   2006-03-01 │     13859 │                           │     1958 │                           │         15 │                           │
│   2006-04-01 │     19090 │                           │     2334 │                           │         21 │                           │
│   2006-05-01 │     26859 │                           │     2698 │                           │         21 │                           │
│   2006-06-01 │     29163 │                           │     3043 │                           │         19 │                           │
│   2006-07-01 │     37031 │                           │     3532 │                           │         22 │                           │
│   2006-08-01 │     50559 │                           │     4750 │                           │         24 │                           │
│   2006-09-01 │     50675 │                           │     4908 │                           │         21 │                           │
│   2006-10-01 │     54148 │                           │     5654 │                           │         31 │                           │
│   2006-11-01 │     62021 │                           │     6490 │                           │         23 │                           │
│   2006-12-01 │     61018 │                           │     6707 │                           │         24 │                           │
│   2007-01-01 │     81341 │                           │     7931 │                           │         23 │                           │
│   2007-02-01 │     95634 │                           │     9020 │                           │         21 │                           │
│   2007-03-01 │    112444 │                           │    10842 │                           │         23 │                           │
│   2007-04-01 │    126773 │                           │    10701 │                           │         26 │                           │
│   2007-05-01 │    170097 │                           │    11365 │                           │         25 │                           │
│   2007-06-01 │    178800 │                           │    11267 │                           │         22 │                           │
│   2007-07-01 │    203319 │                           │    12482 │                           │         25 │                           │
│   2007-08-01 │    225111 │                           │    14124 │                           │         30 │                           │
│   2007-09-01 │    259497 │ ▏                         │    15416 │                           │         33 │                           │
│   2007-10-01 │    274170 │ ▏                         │    15302 │                           │         36 │                           │
│   2007-11-01 │    372983 │ ▏                         │    15134 │                           │         43 │                           │
│   2007-12-01 │    363390 │ ▏                         │    15915 │                           │         31 │                           │
│   2008-01-01 │    452990 │ ▏                         │    18857 │                           │        126 │                           │
│   2008-02-01 │    441768 │ ▏                         │    18266 │                           │        173 │                           │
│   2008-03-01 │    463728 │ ▏                         │    18947 │                           │        292 │                           │
│   2008-04-01 │    468317 │ ▏                         │    18590 │                           │        323 │                           │
│   2008-05-01 │    536380 │ ▎                         │    20861 │                           │        375 │                           │
│   2008-06-01 │    577684 │ ▎                         │    22557 │                           │        575 │ ▏                         │
│   2008-07-01 │    592610 │ ▎                         │    23123 │                           │        657 │ ▏                         │
│   2008-08-01 │    595959 │ ▎                         │    23729 │                           │        707 │ ▏                         │
│   2008-09-01 │    680892 │ ▎                         │    26374 │ ▏                         │        801 │ ▏                         │
│   2008-10-01 │    789874 │ ▍                         │    28970 │ ▏                         │        893 │ ▏                         │
│   2008-11-01 │    792310 │ ▍                         │    30272 │ ▏                         │       1024 │ ▎                         │
│   2008-12-01 │    850359 │ ▍                         │    34073 │ ▏                         │       1103 │ ▎                         │
│   2009-01-01 │   1051649 │ ▌                         │    38978 │ ▏                         │       1316 │ ▎                         │
│   2009-02-01 │    944711 │ ▍                         │    43390 │ ▏                         │       1132 │ ▎                         │
│   2009-03-01 │   1048643 │ ▌                         │    46516 │ ▏                         │       1203 │ ▎                         │
│   2009-04-01 │   1094599 │ ▌                         │    48284 │ ▏                         │       1334 │ ▎                         │
│   2009-05-01 │   1201257 │ ▌                         │    52512 │ ▎                         │       1395 │ ▎                         │
│   2009-06-01 │   1258750 │ ▋                         │    57728 │ ▎                         │       1473 │ ▎                         │
│   2009-07-01 │   1470290 │ ▋                         │    60098 │ ▎                         │       1686 │ ▍                         │
│   2009-08-01 │   1750688 │ ▉                         │    67347 │ ▎                         │       1777 │ ▍                         │
│   2009-09-01 │   2032276 │ █                         │    78051 │ ▍                         │       1784 │ ▍                         │
│   2009-10-01 │   2242017 │ █                         │    93409 │ ▍                         │       2071 │ ▌                         │
│   2009-11-01 │   2207444 │ █                         │    95940 │ ▍                         │       2141 │ ▌                         │
│   2009-12-01 │   2560510 │ █▎                        │   104239 │ ▌                         │       2141 │ ▌                         │
│   2010-01-01 │   2884096 │ █▍                        │   114314 │ ▌                         │       2313 │ ▌                         │
│   2010-02-01 │   2687779 │ █▎                        │   115683 │ ▌                         │       2522 │ ▋                         │
│   2010-03-01 │   3228254 │ █▌                        │   125775 │ ▋                         │       2890 │ ▋                         │
│   2010-04-01 │   3209898 │ █▌                        │   128936 │ ▋                         │       3170 │ ▊                         │
│   2010-05-01 │   3267363 │ █▋                        │   131851 │ ▋                         │       3166 │ ▊                         │
│   2010-06-01 │   3532867 │ █▊                        │   139522 │ ▋                         │       3301 │ ▊                         │
│   2010-07-01 │    806612 │ ▍                         │    76486 │ ▍                         │       1955 │ ▍                         │
│   2010-08-01 │   4247982 │ ██                        │   164071 │ ▊                         │       3653 │ ▉                         │
│   2010-09-01 │   4704069 │ ██▎                       │   186613 │ ▉                         │       4009 │ █                         │
│   2010-10-01 │   5032368 │ ██▌                       │   203800 │ █                         │       4154 │ █                         │
│   2010-11-01 │   5689002 │ ██▊                       │   226134 │ █▏                        │       4383 │ █                         │
│   2010-12-01 │   3642690 │ █▊                        │   196847 │ ▉                         │       3914 │ ▉                         │
│   2011-01-01 │   3924540 │ █▉                        │   215057 │ █                         │       4240 │ █                         │
│   2011-02-01 │   3859131 │ █▉                        │   223485 │ █                         │       4371 │ █                         │
│   2011-03-01 │   2877996 │ █▍                        │   208607 │ █                         │       3870 │ ▉                         │
│   2011-04-01 │   3859131 │ █▉                        │   248931 │ █▏                        │       4881 │ █▏                        │
│   2011-06-01 │   3859131 │ █▉                        │   267197 │ █▎                        │       5255 │ █▎                        │
│   2011-08-01 │   2943405 │ █▍                        │   259428 │ █▎                        │       5806 │ █▍                        │
│   2011-10-01 │   3859131 │ █▉                        │   327342 │ █▋                        │       6958 │ █▋                        │
│   2011-12-01 │   3728313 │ █▊                        │   354817 │ █▊                        │       7713 │ █▉                        │
│   2012-01-01 │  16350205 │ ████████▏                 │   696110 │ ███▍                      │      14281 │ ███▌                      │
│   2012-02-01 │  16015695 │ ████████                  │   722892 │ ███▌                      │      14949 │ ███▋                      │
│   2012-03-01 │  17881943 │ ████████▉                 │   789664 │ ███▉                      │      15795 │ ███▉                      │
│   2012-04-01 │  19044534 │ █████████▌                │   842491 │ ████▏                     │      16440 │ ████                      │
│   2012-05-01 │  20388260 │ ██████████▏               │   886176 │ ████▍                     │      16974 │ ████▏                     │
│   2012-06-01 │  21897913 │ ██████████▉               │   946798 │ ████▋                     │      17952 │ ████▍                     │
│   2012-07-01 │  24087517 │ ████████████              │  1018636 │ █████                     │      19069 │ ████▊                     │
│   2012-08-01 │  25703326 │ ████████████▊             │  1094445 │ █████▍                    │      20553 │ █████▏                    │
│   2012-09-01 │  23419524 │ ███████████▋              │  1088491 │ █████▍                    │      20831 │ █████▏                    │
│   2012-10-01 │  24788236 │ ████████████▍             │  1131885 │ █████▋                    │      21868 │ █████▍                    │
│   2012-11-01 │  24648302 │ ████████████▎             │  1167608 │ █████▊                    │      21791 │ █████▍                    │
│   2012-12-01 │  26080276 │ █████████████             │  1218402 │ ██████                    │      22622 │ █████▋                    │
│   2013-01-01 │  30365867 │ ███████████████▏          │  1341703 │ ██████▋                   │      24696 │ ██████▏                   │
│   2013-02-01 │  27213960 │ █████████████▌            │  1304756 │ ██████▌                   │      24514 │ ██████▏                   │
│   2013-03-01 │  30771274 │ ███████████████▍          │  1391703 │ ██████▉                   │      25730 │ ██████▍                   │
│   2013-04-01 │  33259557 │ ████████████████▋         │  1485971 │ ███████▍                  │      27294 │ ██████▊                   │
│   2013-05-01 │  33126225 │ ████████████████▌         │  1506473 │ ███████▌                  │      27299 │ ██████▊                   │
│   2013-06-01 │  32648247 │ ████████████████▎         │  1506650 │ ███████▌                  │      27450 │ ██████▊                   │
│   2013-07-01 │  34922133 │ █████████████████▍        │  1561771 │ ███████▊                  │      28294 │ ███████                   │
│   2013-08-01 │  34766579 │ █████████████████▍        │  1589781 │ ███████▉                  │      28943 │ ███████▏                  │
│   2013-09-01 │  31990369 │ ███████████████▉          │  1570342 │ ███████▊                  │      29408 │ ███████▎                  │
│   2013-10-01 │  35940040 │ █████████████████▉        │  1683770 │ ████████▍                 │      30273 │ ███████▌                  │
│   2013-11-01 │  37396497 │ ██████████████████▋       │  1757467 │ ████████▊                 │      31173 │ ███████▊                  │
│   2013-12-01 │  39810216 │ ███████████████████▉      │  1846204 │ █████████▏                │      32326 │ ████████                  │
│   2014-01-01 │  42420655 │ █████████████████████▏    │  1927229 │ █████████▋                │      35603 │ ████████▉                 │
│   2014-02-01 │  38703362 │ ███████████████████▎      │  1874067 │ █████████▎                │      37007 │ █████████▎                │
│   2014-03-01 │  42459956 │ █████████████████████▏    │  1959888 │ █████████▊                │      37948 │ █████████▍                │
│   2014-04-01 │  42440735 │ █████████████████████▏    │  1951369 │ █████████▊                │      38362 │ █████████▌                │
│   2014-05-01 │  42514094 │ █████████████████████▎    │  1970197 │ █████████▊                │      39078 │ █████████▊                │
│   2014-06-01 │  41990650 │ ████████████████████▉     │  1943850 │ █████████▋                │      38268 │ █████████▌                │
│   2014-07-01 │  46868899 │ ███████████████████████▍  │  2059346 │ ██████████▎               │      40634 │ ██████████▏               │
│   2014-08-01 │  46990813 │ ███████████████████████▍  │  2117335 │ ██████████▌               │      41764 │ ██████████▍               │
│   2014-09-01 │  44992201 │ ██████████████████████▍   │  2124708 │ ██████████▌               │      41890 │ ██████████▍               │
│   2014-10-01 │  47497520 │ ███████████████████████▋  │  2206535 │ ███████████               │      43109 │ ██████████▊               │
│   2014-11-01 │  46118074 │ ███████████████████████   │  2239747 │ ███████████▏              │      43718 │ ██████████▉               │
│   2014-12-01 │  48807699 │ ████████████████████████▍ │  2372945 │ ███████████▊              │      43823 │ ██████████▉               │
│   2015-01-01 │  53851542 │ █████████████████████████ │  2499536 │ ████████████▍             │      47172 │ ███████████▊              │
│   2015-02-01 │  48342747 │ ████████████████████████▏ │  2448496 │ ████████████▏             │      47229 │ ███████████▊              │
│   2015-03-01 │  54564441 │ █████████████████████████ │  2550534 │ ████████████▊             │      48156 │ ████████████              │
│   2015-04-01 │  55005780 │ █████████████████████████ │  2609443 │ █████████████             │      49865 │ ████████████▍             │
│   2015-05-01 │  54504410 │ █████████████████████████ │  2585535 │ ████████████▉             │      50137 │ ████████████▌             │
│   2015-06-01 │  54258492 │ █████████████████████████ │  2595129 │ ████████████▉             │      49598 │ ████████████▍             │
│   2015-07-01 │  58451788 │ █████████████████████████ │  2720026 │ █████████████▌            │      55022 │ █████████████▊            │
│   2015-08-01 │  58075327 │ █████████████████████████ │  2743994 │ █████████████▋            │      55302 │ █████████████▊            │
│   2015-09-01 │  55574825 │ █████████████████████████ │  2672793 │ █████████████▎            │      53960 │ █████████████▍            │
│   2015-10-01 │  59494045 │ █████████████████████████ │  2816426 │ ██████████████            │      70210 │ █████████████████▌        │
│   2015-11-01 │  57117500 │ █████████████████████████ │  2847146 │ ██████████████▏           │      71363 │ █████████████████▊        │
│   2015-12-01 │  58523312 │ █████████████████████████ │  2854840 │ ██████████████▎           │      94559 │ ███████████████████████▋  │
│   2016-01-01 │  61991732 │ █████████████████████████ │  2920366 │ ██████████████▌           │     108438 │ █████████████████████████ │
│   2016-02-01 │  59189875 │ █████████████████████████ │  2854683 │ ██████████████▎           │     109916 │ █████████████████████████ │
│   2016-03-01 │  63918864 │ █████████████████████████ │  2969542 │ ██████████████▊           │      84787 │ █████████████████████▏    │
│   2016-04-01 │  64271256 │ █████████████████████████ │  2999086 │ ██████████████▉           │      61647 │ ███████████████▍          │
│   2016-05-01 │  65212004 │ █████████████████████████ │  3034674 │ ███████████████▏          │      67465 │ ████████████████▊         │
│   2016-06-01 │  65867743 │ █████████████████████████ │  3057604 │ ███████████████▎          │      75170 │ ██████████████████▊       │
│   2016-07-01 │  66974735 │ █████████████████████████ │  3199374 │ ███████████████▉          │      77732 │ ███████████████████▍      │
│   2016-08-01 │  69654819 │ █████████████████████████ │  3239957 │ ████████████████▏         │      63080 │ ███████████████▊          │
│   2016-09-01 │  67024973 │ █████████████████████████ │  3190864 │ ███████████████▉          │      62324 │ ███████████████▌          │
│   2016-10-01 │  71826553 │ █████████████████████████ │  3284340 │ ████████████████▍         │      62549 │ ███████████████▋          │
│   2016-11-01 │  71022319 │ █████████████████████████ │  3300822 │ ████████████████▌         │      69718 │ █████████████████▍        │
│   2016-12-01 │  72942967 │ █████████████████████████ │  3430324 │ █████████████████▏        │      71705 │ █████████████████▉        │
│   2017-01-01 │  78946585 │ █████████████████████████ │  3572093 │ █████████████████▊        │      78198 │ ███████████████████▌      │
│   2017-02-01 │  70609487 │ █████████████████████████ │  3421115 │ █████████████████         │      69823 │ █████████████████▍        │
│   2017-03-01 │  79723106 │ █████████████████████████ │  3638122 │ ██████████████████▏       │      73865 │ ██████████████████▍       │
│   2017-04-01 │  77478009 │ █████████████████████████ │  3620591 │ ██████████████████        │      74387 │ ██████████████████▌       │
│   2017-05-01 │  79810360 │ █████████████████████████ │  3650820 │ ██████████████████▎       │      74356 │ ██████████████████▌       │
│   2017-06-01 │  79901711 │ █████████████████████████ │  3737614 │ ██████████████████▋       │      72114 │ ██████████████████        │
│   2017-07-01 │  81798725 │ █████████████████████████ │  3872330 │ ███████████████████▎      │      76052 │ ███████████████████       │
│   2017-08-01 │  84658503 │ █████████████████████████ │  3960093 │ ███████████████████▊      │      77798 │ ███████████████████▍      │
│   2017-09-01 │  83165192 │ █████████████████████████ │  3880501 │ ███████████████████▍      │      78402 │ ███████████████████▌      │
│   2017-10-01 │  85828912 │ █████████████████████████ │  3980335 │ ███████████████████▉      │      80685 │ ████████████████████▏     │
│   2017-11-01 │  84965681 │ █████████████████████████ │  4026749 │ ████████████████████▏     │      82659 │ ████████████████████▋     │
│   2017-12-01 │  85973810 │ █████████████████████████ │  4196354 │ ████████████████████▉     │      91984 │ ██████████████████████▉   │
│   2018-01-01 │  91558594 │ █████████████████████████ │  4364443 │ █████████████████████▊    │     102577 │ █████████████████████████ │
│   2018-02-01 │  86467179 │ █████████████████████████ │  4277899 │ █████████████████████▍    │     104610 │ █████████████████████████ │
│   2018-03-01 │  96490262 │ █████████████████████████ │  4422470 │ ██████████████████████    │     112559 │ █████████████████████████ │
│   2018-04-01 │  98101232 │ █████████████████████████ │  4572434 │ ██████████████████████▊   │     105284 │ █████████████████████████ │
│   2018-05-01 │ 100109100 │ █████████████████████████ │  4698908 │ ███████████████████████▍  │     103910 │ █████████████████████████ │
│   2018-06-01 │ 100009462 │ █████████████████████████ │  4697426 │ ███████████████████████▍  │     101107 │ █████████████████████████ │
│   2018-07-01 │ 108151359 │ █████████████████████████ │  5099492 │ █████████████████████████ │     106184 │ █████████████████████████ │
│   2018-08-01 │ 107330940 │ █████████████████████████ │  5084082 │ █████████████████████████ │     109985 │ █████████████████████████ │
│   2018-09-01 │ 104473929 │ █████████████████████████ │  5011953 │ █████████████████████████ │     109710 │ █████████████████████████ │
│   2018-10-01 │ 112346556 │ █████████████████████████ │  5320405 │ █████████████████████████ │     112533 │ █████████████████████████ │
│   2018-11-01 │ 112573001 │ █████████████████████████ │  5353282 │ █████████████████████████ │     112211 │ █████████████████████████ │
│   2018-12-01 │ 121953600 │ █████████████████████████ │  5611543 │ █████████████████████████ │     118291 │ █████████████████████████ │
│   2019-01-01 │ 129386587 │ █████████████████████████ │  6016687 │ █████████████████████████ │     125725 │ █████████████████████████ │
│   2019-02-01 │ 120645639 │ █████████████████████████ │  5974488 │ █████████████████████████ │     125420 │ █████████████████████████ │
│   2019-03-01 │ 137650471 │ █████████████████████████ │  6410197 │ █████████████████████████ │     135924 │ █████████████████████████ │
│   2019-04-01 │ 138473643 │ █████████████████████████ │  6416384 │ █████████████████████████ │     139844 │ █████████████████████████ │
│   2019-05-01 │ 142463421 │ █████████████████████████ │  6574836 │ █████████████████████████ │     142012 │ █████████████████████████ │
│   2019-06-01 │ 134172939 │ █████████████████████████ │  6601267 │ █████████████████████████ │     140997 │ █████████████████████████ │
│   2019-07-01 │ 145965083 │ █████████████████████████ │  6901822 │ █████████████████████████ │     147802 │ █████████████████████████ │
│   2019-08-01 │ 146854393 │ █████████████████████████ │  6993882 │ █████████████████████████ │     151888 │ █████████████████████████ │
│   2019-09-01 │ 137540219 │ █████████████████████████ │  7001362 │ █████████████████████████ │     148839 │ █████████████████████████ │
│   2019-10-01 │ 145909884 │ █████████████████████████ │  7160126 │ █████████████████████████ │     152075 │ █████████████████████████ │
│   2019-11-01 │ 138512489 │ █████████████████████████ │  7098723 │ █████████████████████████ │     164597 │ █████████████████████████ │
│   2019-12-01 │ 146012313 │ █████████████████████████ │  7438261 │ █████████████████████████ │     166966 │ █████████████████████████ │
│   2020-01-01 │ 153498208 │ █████████████████████████ │  7703548 │ █████████████████████████ │     174390 │ █████████████████████████ │
│   2020-02-01 │ 148386817 │ █████████████████████████ │  7582031 │ █████████████████████████ │     170257 │ █████████████████████████ │
│   2020-03-01 │ 166266315 │ █████████████████████████ │  8339049 │ █████████████████████████ │     192460 │ █████████████████████████ │
│   2020-04-01 │ 178511581 │ █████████████████████████ │  8991649 │ █████████████████████████ │     202334 │ █████████████████████████ │
│   2020-05-01 │ 189993779 │ █████████████████████████ │  9331358 │ █████████████████████████ │     217357 │ █████████████████████████ │
│   2020-06-01 │ 187914434 │ █████████████████████████ │  9085003 │ █████████████████████████ │     223362 │ █████████████████████████ │
│   2020-07-01 │ 194244994 │ █████████████████████████ │  9321706 │ █████████████████████████ │     228222 │ █████████████████████████ │
│   2020-08-01 │ 196099301 │ █████████████████████████ │  9368408 │ █████████████████████████ │     230251 │ █████████████████████████ │
│   2020-09-01 │ 182549761 │ █████████████████████████ │  9271571 │ █████████████████████████ │     227889 │ █████████████████████████ │
│   2020-10-01 │ 186583890 │ █████████████████████████ │  9396112 │ █████████████████████████ │     233715 │ █████████████████████████ │
│   2020-11-01 │ 186083723 │ █████████████████████████ │  9623053 │ █████████████████████████ │     234963 │ █████████████████████████ │
│   2020-12-01 │ 191317162 │ █████████████████████████ │  9898168 │ █████████████████████████ │     249115 │ █████████████████████████ │
│   2021-01-01 │ 210496207 │ █████████████████████████ │ 10503943 │ █████████████████████████ │     259805 │ █████████████████████████ │
│   2021-02-01 │ 193510365 │ █████████████████████████ │ 10215033 │ █████████████████████████ │     253656 │ █████████████████████████ │
│   2021-03-01 │ 207454415 │ █████████████████████████ │ 10365629 │ █████████████████████████ │     267263 │ █████████████████████████ │
│   2021-04-01 │ 204573086 │ █████████████████████████ │ 10391984 │ █████████████████████████ │     270543 │ █████████████████████████ │
│   2021-05-01 │ 217655366 │ █████████████████████████ │ 10648130 │ █████████████████████████ │     288555 │ █████████████████████████ │
│   2021-06-01 │ 208027069 │ █████████████████████████ │ 10397311 │ █████████████████████████ │     291520 │ █████████████████████████ │
│   2021-07-01 │ 210955954 │ █████████████████████████ │ 10063967 │ █████████████████████████ │     252061 │ █████████████████████████ │
│   2021-08-01 │ 225681244 │ █████████████████████████ │ 10383556 │ █████████████████████████ │     254569 │ █████████████████████████ │
│   2021-09-01 │ 220086513 │ █████████████████████████ │ 10298344 │ █████████████████████████ │     256826 │ █████████████████████████ │
│   2021-10-01 │ 227527379 │ █████████████████████████ │ 10729882 │ █████████████████████████ │     283328 │ █████████████████████████ │
│   2021-11-01 │ 228289963 │ █████████████████████████ │ 10995197 │ █████████████████████████ │     302386 │ █████████████████████████ │
│   2021-12-01 │ 235807471 │ █████████████████████████ │ 11312798 │ █████████████████████████ │     313876 │ █████████████████████████ │
│   2022-01-01 │ 256766679 │ █████████████████████████ │ 12074520 │ █████████████████████████ │     340407 │ █████████████████████████ │
│   2022-02-01 │ 219927645 │ █████████████████████████ │ 10846045 │ █████████████████████████ │     293236 │ █████████████████████████ │
│   2022-03-01 │ 236554668 │ █████████████████████████ │ 11330285 │ █████████████████████████ │     302387 │ █████████████████████████ │
│   2022-04-01 │ 231188077 │ █████████████████████████ │ 11697995 │ █████████████████████████ │     316303 │ █████████████████████████ │
│   2022-05-01 │ 230492108 │ █████████████████████████ │ 11448584 │ █████████████████████████ │     323725 │ █████████████████████████ │
│   2022-06-01 │ 218842949 │ █████████████████████████ │ 11400399 │ █████████████████████████ │     324846 │ █████████████████████████ │
│   2022-07-01 │ 242504279 │ █████████████████████████ │ 12049204 │ █████████████████████████ │     335621 │ █████████████████████████ │
│   2022-08-01 │ 247215325 │ █████████████████████████ │ 12189276 │ █████████████████████████ │     337873 │ █████████████████████████ │
│   2022-09-01 │ 234131223 │ █████████████████████████ │ 11674079 │ █████████████████████████ │     326325 │ █████████████████████████ │
│   2022-10-01 │ 237365072 │ █████████████████████████ │ 11804508 │ █████████████████████████ │     336063 │ █████████████████████████ │
│   2022-11-01 │ 229478878 │ █████████████████████████ │ 11543020 │ █████████████████████████ │     323122 │ █████████████████████████ │
│   2022-12-01 │ 238862690 │ █████████████████████████ │ 11967451 │ █████████████████████████ │     331668 │ █████████████████████████ │
│   2023-01-01 │ 253577512 │ █████████████████████████ │ 12264087 │ █████████████████████████ │     332711 │ █████████████████████████ │
│   2023-02-01 │ 221285501 │ █████████████████████████ │ 11537091 │ █████████████████████████ │     317879 │ █████████████████████████ │
└──────────────┴───────────┴───────────────────────────┴──────────┴───────────────────────────┴────────────┴───────────────────────────┘

203 rows in set. Elapsed: 48.492 sec. Processed 14.69 billion rows, 213.35 GB (302.91 million rows/s., 4.40 GB/s.)
SELECT
    subreddit,
    count() AS count
FROM reddit
WHERE toYear(created_utc) = 2022
GROUP BY subreddit
ORDER BY count DESC
LIMIT 10;
┌─subreddit──────┬────count─┐
│ AskReddit      │ 72312060 │
│ AmItheAsshole  │ 25323210 │
│ teenagers      │ 22355960 │
│ worldnews      │ 17797707 │
│ FreeKarma4U    │ 15652274 │
│ FreeKarma4You  │ 14929055 │
│ wallstreetbets │ 14235271 │
│ politics       │ 12511136 │
│ memes          │ 11610792 │
│ nba            │ 11586571 │
└────────────────┴──────────┘

10 rows in set. Elapsed: 5.956 sec. Processed 14.69 billion rows, 126.19 GB (2.47 billion rows/s., 21.19 GB/s.)
  1. 次に、2018年から2019年にかけてコメント数が最も増加したサブレディットを見てみましょう
SELECT
    subreddit,
    newcount - oldcount AS diff
FROM
(
    SELECT
        subreddit,
        count(*) AS newcount
    FROM reddit
    WHERE toYear(created_utc) = 2019
    GROUP BY subreddit
)
ALL INNER JOIN
(
    SELECT
        subreddit,
        count(*) AS oldcount
    FROM reddit
    WHERE toYear(created_utc) = 2018
    GROUP BY subreddit
) USING (subreddit)
ORDER BY diff DESC
LIMIT 50
SETTINGS joined_subquery_requires_alias = 0;

2019年は「memes」と「teenagers」がRedditで盛り上がっていたようです

┌─subreddit────────────┬─────diff─┐
│ AskReddit            │ 18765909 │
│ memes                │ 16496996 │
│ teenagers            │ 13071715 │
│ AmItheAsshole        │ 12312663 │
│ dankmemes            │ 12016716 │
│ unpopularopinion     │  6809935 │
│ PewdiepieSubmissions │  6330844 │
│ Market76             │  5213690 │
│ relationship_advice  │  4060717 │
│ Minecraft            │  3328659 │
│ freefolk             │  3227970 │
│ classicwow           │  3063133 │
│ Animemes             │  2866876 │
│ gonewild             │  2457680 │
│ PublicFreakout       │  2452288 │
│ gameofthrones        │  2411661 │
│ RoastMe              │  2378781 │
│ ShitPostCrusaders    │  2345414 │
│ AnthemTheGame        │  1813152 │
│ nfl                  │  1804407 │
│ Showerthoughts       │  1797968 │
│ Cringetopia          │  1764034 │
│ pokemon              │  1763269 │
│ entitledparents      │  1744852 │
│ HistoryMemes         │  1721645 │
│ MortalKombat         │  1718184 │
│ trashy               │  1684357 │
│ ChapoTrapHouse       │  1675363 │
│ Brawlstars           │  1663763 │
│ iamatotalpieceofshit │  1647381 │
│ ukpolitics           │  1599204 │
│ cursedcomments       │  1590781 │
│ Pikabu               │  1578597 │
│ wallstreetbets       │  1535225 │
│ AskOuija             │  1533214 │
│ interestingasfuck    │  1528910 │
│ aww                  │  1439008 │
│ wholesomememes       │  1436566 │
│ SquaredCircle        │  1432172 │
│ insanepeoplefacebook │  1290686 │
│ borderlands3         │  1274462 │
│ FreeKarma4U          │  1217769 │
│ YangForPresidentHQ   │  1186918 │
│ FortniteCompetitive  │  1184508 │
│ AskMen               │  1180820 │
│ EpicSeven            │  1172061 │
│ MurderedByWords      │  1112476 │
│ politics             │  1084087 │
│ barstoolsports       │  1068020 │
│ BattlefieldV         │  1053878 │
└──────────────────────┴──────────┘

50 rows in set. Elapsed: 10.680 sec. Processed 29.38 billion rows, 198.67 GB (2.75 billion rows/s., 18.60 GB/s.)
  1. もう一つクエリ: ClickHouseに関する言及を、SnowflakeやPostgresといった他の技術と比較してみましょう。このクエリは、14.69億件のコメント全体でそれぞれ部分文字列を3回検索するため大きなクエリですが、パフォーマンスは非常に印象的です。残念ながらClickHouseユーザーはまだRedditではあまり活発ではありませんが
SELECT
    toStartOfQuarter(created_utc) AS quarter,
    sum(if(positionCaseInsensitive(body, 'clickhouse') > 0, 1, 0)) AS clickhouse,
    sum(if(positionCaseInsensitive(body, 'snowflake') > 0, 1, 0)) AS snowflake,
    sum(if(positionCaseInsensitive(body, 'postgres') > 0, 1, 0)) AS postgres
FROM reddit
GROUP BY quarter
ORDER BY quarter ASC;
┌────quarter─┬─clickhouse─┬─snowflake─┬─postgres─┐
│ 2005-10-01 │          0 │         0 │        0 │
│ 2006-01-01 │          0 │         2 │       23 │
│ 2006-04-01 │          0 │         2 │       24 │
│ 2006-07-01 │          0 │         4 │       13 │
│ 2006-10-01 │          0 │        23 │       73 │
│ 2007-01-01 │          0 │        14 │       91 │
│ 2007-04-01 │          0 │        10 │       59 │
│ 2007-07-01 │          0 │        39 │      116 │
│ 2007-10-01 │          0 │        45 │      125 │
│ 2008-01-01 │          0 │        53 │      234 │
│ 2008-04-01 │          0 │        79 │      303 │
│ 2008-07-01 │          0 │       102 │      174 │
│ 2008-10-01 │          0 │       156 │      323 │
│ 2009-01-01 │          0 │       206 │      208 │
│ 2009-04-01 │          0 │       178 │      417 │
│ 2009-07-01 │          0 │       300 │      295 │
│ 2009-10-01 │          0 │       633 │      589 │
│ 2010-01-01 │          0 │       555 │      501 │
│ 2010-04-01 │          0 │       587 │      469 │
│ 2010-07-01 │          0 │       601 │      696 │
│ 2010-10-01 │          0 │      1246 │      505 │
│ 2011-01-01 │          0 │       758 │      247 │
│ 2011-04-01 │          0 │       537 │      113 │
│ 2011-07-01 │          0 │       173 │       64 │
│ 2011-10-01 │          0 │       649 │       96 │
│ 2012-01-01 │          0 │      4621 │      662 │
│ 2012-04-01 │          0 │      5737 │      785 │
│ 2012-07-01 │          0 │      6097 │     1127 │
│ 2012-10-01 │          0 │      7986 │      600 │
│ 2013-01-01 │          0 │      9704 │      839 │
│ 2013-04-01 │          0 │      8161 │      853 │
│ 2013-07-01 │          0 │      9704 │     1028 │
│ 2013-10-01 │          0 │     12879 │     1404 │
│ 2014-01-01 │          0 │     12317 │     1548 │
│ 2014-04-01 │          0 │     13181 │     1577 │
│ 2014-07-01 │          0 │     15640 │     1710 │
│ 2014-10-01 │          0 │     19479 │     1959 │
│ 2015-01-01 │          0 │     20411 │     2104 │
│ 2015-04-01 │          1 │     20309 │     9112 │
│ 2015-07-01 │          0 │     20325 │     4771 │
│ 2015-10-01 │          0 │     25087 │     3030 │
│ 2016-01-01 │          0 │     23462 │     3126 │
│ 2016-04-01 │          3 │     25496 │     2757 │
│ 2016-07-01 │          4 │     28233 │     2928 │
│ 2016-10-01 │          2 │     45445 │     2449 │
│ 2017-01-01 │          9 │     76019 │     2808 │
│ 2017-04-01 │          9 │     67919 │     2803 │
│ 2017-07-01 │         13 │     68974 │     2771 │
│ 2017-10-01 │         12 │     69730 │     2906 │
│ 2018-01-01 │         17 │     67476 │     3152 │
│ 2018-04-01 │          3 │     67139 │     3986 │
│ 2018-07-01 │         14 │     67979 │     3609 │
│ 2018-10-01 │         28 │     74147 │     3850 │
│ 2019-01-01 │         14 │     80250 │     4305 │
│ 2019-04-01 │         30 │     70307 │     3872 │
│ 2019-07-01 │         33 │     77149 │     4164 │
│ 2019-10-01 │         22 │    113011 │     4369 │
│ 2020-01-01 │         34 │    238273 │     5133 │
│ 2020-04-01 │         52 │    454467 │     6100 │
│ 2020-07-01 │         37 │    406623 │     5507 │
│ 2020-10-01 │         49 │    212143 │     5385 │
│ 2021-01-01 │         56 │    151262 │     5749 │
│ 2021-04-01 │         71 │    119928 │     6039 │
│ 2021-07-01 │         53 │    110342 │     5765 │
│ 2021-10-01 │         92 │    121144 │     6401 │
│ 2022-01-01 │         93 │    107512 │     6772 │
│ 2022-04-01 │        120 │     91560 │     6687 │
│ 2022-07-01 │        183 │     99764 │     7377 │
│ 2022-10-01 │        123 │     99447 │     7052 │
│ 2023-01-01 │        126 │     58733 │     4891 │
└────────────┴────────────┴───────────┴──────────┘

70 rows in set. Elapsed: 325.835 sec. Processed 14.69 billion rows, 2.57 TB (45.08 million rows/s., 7.87 GB/s.)