---
title: "Infinitas LearningがClickHouse Managed Postgresを活用し、160万人の学習者による数十億件のイベントを処理した方法"
date: "2026-11-09T04:36:06.401Z"
author: "ClickHouse"
category: "User stories"
excerpt: "Infinitas LearningはClickHouse Managed Postgresで160万人の学習者のトランザクションを処理し、ClickHouse Cloudから教師向けにリアルタイム分析を提供しています。分散キャッシュによりP99レイテンシは約13秒から410ミリ秒に短縮されました。"
---

# Infinitas LearningがClickHouse Managed Postgresを活用し、160万人の学習者による数十億件のイベントを処理した方法

## 概要

- 欧州最大級の教育系出版社であるInfinitas Learningは、ClickHouseを活用して年間160万人の学習者と3億2,400万件の課題の成果を処理しています。
- トランザクション処理のワークロードはClickHouse Managed Postgresで稼働しており、Neonからの移行後にP50レイテンシがミリ秒単位から2桁マイクロ秒へと短縮されました。
- 顧客向け分析はClickHouse Cloudで稼働しており、サポート主導の最適化と分散キャッシュによりP99レイテンシが約13秒から410ミリ秒へと短縮されました。

Infinitas LearningがClickHouse Managed Postgresを活用して160万人の学習者による数十億件のイベントを処理した方法

[Infinitas Learning](https://www.infinitaslearning.com/)は、オランダ、ベルギー、ポルトガル、ポーランド、スウェーデンに出版社を擁する、ヨーロッパ最大級の教育系出版社です。2025〜2026年度には、グループ全体で2,500万冊以上の書籍を販売しました。エンジニアリングマネージャーのJerome van den Heuvel氏は、「オランダにお住まいで中等教育に通うお子様がいらっしゃるご家庭なら、当社のオランダ法人であるNoordhoffの書籍が家にあるはずです」と語ります。

書籍の出版に加え、Infinitas Learningは学習者がオンラインで課題の提出やテストの受験を行えるデジタルプラットフォームも運営しています。前年度には、160万人のユニークな学習者がこれらのプラットフォーム上で3億2,400万件の課題を完了しました。課題のたびにイベントが生成され、それらを記録したうえで各学習者の進捗状況を最新の状態へ更新し、リアルタイムに配信し直す必要があります。

アムステルダムで開催された[Open House 2026ロードショー](https://clickhouse.com/openhouse/amsterdam-2026)にて、Jerome氏とデータエンジニアのAna Lacruz氏は、Infinitas LearningのResults & Insightsチームが[ClickHouse Managed Postgres](https://clickhouse.com/cloud/postgres)を使用して数十億件のイベントを取り込み・処理している方法と、高速で安定した分析を追求する過程で[ClickHouse Cloud](https://clickhouse.com/cloud)からセルフホストへ移行し、再び戻ってくるまでの経緯について語りました。

## データベースがAPIになる

2年前、Infinitas Learningの初等教育および中等教育プラットフォームは、それぞれ独自に課題の結果や基本的なインサイトを管理しており、重要なロジックが複数の場所に重複して存在していました。「私たちのミッションは、これらの学習結果を1つのスケーラブルなソリューションに統合・収集し、ドメイン知識を1つのチームに集約することでした」とJerome氏は言います。

同チームは、Jerome氏が言うところの「教科書通りの実装」、すなわちApache Kafka上に構築された耐障害性の高いイベントソーシングシステムから着手しました。プラットフォーム側からAvroスキーマを用いてAPI経由で複数のKafkaトピックへデータを送信し、JavaとApache Flinkでトピック間を移動させながら、最終的に各プラットフォームチームが読み取るPostgresデータベースへとデータを格納していました。「技術的にはかなり素晴らしい構成でした」とJerome氏は振り返ります。「しかし複雑で、無視できないオーバーヘッドを抱えていました。」

![](https://clickhouse.com/uploads/infinitas_oct2026_image1_b897968b7b.png)

Infinitas Learningの教育プラットフォーム担当チームからは、このシステムに対して要望が寄せられたと同氏は振り返ります。「トランザクション処理に対応できないか？リアルタイムにできないか？そして、もっと使いやすくできないか？」という要望です。彼らが構築した結果整合性のシステムにおいて、最初の2つを実現することは極めて困難でした。

そこでチームは、機能している部分は残しつつ、可能な限り簡素化を図りました。「こうして私たちは、あらゆる用途にPostgresを使う『Postgres-for-everything』ムーブメントの誇りある一員となったのです」とJerome氏は話します。

新しい構成では、Postgres上でPL/pgSQLを用いて定義されたパブリック関数を通じてイベントがシステムに入り、プラットフォームチームがそれを直接呼び出します。「REST API層はなく、データベースがあるだけです」とJerome氏は説明します。背後にあるテーブルやビューにはプラットフォーム側からアクセスできないため、データベースの処理を停滞させるような「破滅的なクエリ」を防ぐことができます。イベントが発生するたびに、システムは課題の新しい状態と学習者の全体的な進捗を計算し、プラットフォーム側はその結果を利用して次の課題を決定し、進捗ダッシュボードに反映させます。

この構成は個々の学習者の行動を記録するには理想的であることが証明されましたが、その大量のデータ全体を一度に集計・把握することには苦戦しました。「Postgresは私たちの分析要件を満たせないことがすぐに分かりました」とJerome氏は語ります。「そのため、私たちのスタックにClickHouseも導入することにしました。」(詳細は後述します。)

![](https://clickhouse.com/uploads/infinitas_oct2026_image2_50d94e6fa3.png)

## NeonからClickHouse Managed Postgresへ

すべてをPostgres上に構築したチームは、それを実行する環境を必要としていました。当初はAzureのマネージドPostgresサービスで運用を開始しましたが、パフォーマンスと稼働率に対する要求を満たすことができませんでした。そこで2025年初頭、Neonへと移行しました。「Neonは気に入っていました」とJerome氏は振り返ります。「しかし、いくつかの機能的な問題に直面しました。」

1つは、Postgresのメジャーバージョンアップグレードが困難だったことです。また、キャッシュサイズが予測不能なコンピュートと結合していたため、「キャッシュから簡単に処理できたはずのデータに、突然より多くのCPUとメモリリソースが必要になる」という現象が生じました。さらに、[pg_clickhouse拡張機能](https://clickhouse.com/ja/blog/introducing-pg_clickhouse-jp)など、チームが試したかった機能も利用できませんでした。最終的には、利用していたAzureリージョンがNeon内で非推奨となり、新しいソリューションを探すしかなくなりました。

ちょうど同じ頃、ClickHouseはトランザクション向けのPostgresと分析向けのClickHouseを組み合わせた統合データスタックである[ClickHouse Managed Postgres](https://clickhouse.com/cloud/postgres)を発表しました。チームはこれを評価し、その内容に納得して移行を決断しました。

そこからの作業はシンプルでした。環境を作成し、スキーマを手作業で構築し、[ClickPipes](https://clickhouse.com/cloud/clickpipes)をセットアップしました。750 GBの全データは16時間以内にコピーされました。Infinitas Learningの初等・中等教育プラットフォームチームと共同で実施したカットオーバーは、新旧サーバー間のロジカルレプリケーションのおかげで、ダウンタイムなしで20分の枠内で完了しました。

> 「エンドポイントを切り替えるだけで済みました。かつては何週間もかかっていた移行が、ClickHouse Managed Postgresではわずか2日で完了したのです。」
>
> — Jerome van den Heuvel氏、Infinitas Learning、エンジニアリングマネージャー

彼らが最初に感銘を受けたのは、サーバーのパフォーマンスでした。「P50レイテンシはミリ秒単位から2桁のマイクロ秒単位になり、P99レイテンシは秒単位から2桁のミリ秒単位で測定されるようになりました」とJerome氏は言います。高負荷テストの最中も、CPUは「ほぼ横ばい」を維持しました。圧倒的な処理速度にとどまらず、同氏は「ClickHouseとPostgresを同一環境で運用できる点」、両者間の統合レベルの高さ、そしてサービスに付属するツール群や詳細なメトリクスが得られるメリットも強調しています。

## ユーザー向け分析基盤としてのClickHouse Cloud

チームがPostgresの最適な移行先を模索する一方で、Results & InsightsチームのスタックにおけるClickHouse側の構成も具体化しつつありました。

チームが構築する分析基盤はリアルタイムかつユーザー向けのものであり、教師へ直接提供されます。「ページの読み込みに何秒も待ちたい人はいませんし、教師も例外ではありません」とAna氏は話します。「そのためレスポンスタイムの基準は高く、私たちにとって最大の判断基準はレイテンシでした。」

Infinitas Learningがユーザー向け分析を試行し始めたのは3年前のことであり、Ana氏によれば「愛着を込めて『使い捨てソリューション』と呼んでいたもの」から始まりました。Postgresへの移行前に構築されたこのシステムは、最初から暫定的なものとして設計されていました。データはソースシステムからAirbyte経由でSnowflakeへ送られ、さらにAzure Data Factory経由でAzure SQL Serverへ、そして最終的にダッシュボードへと流れる構成でした。データのコピー、変換、エンリッチメントのために複数のツールを連結していたため、「リアルタイムとは到底言えない」状態であり、1つの狭いユースケース向けに構築されたパイプラインはコストが高いうえに拡張も困難でした。

![](https://clickhouse.com/uploads/infinitas_oct2026_image3_3b31f011f9.png)

Postgresが学習成果の信頼できる情報源(System of Record)になると、チームはそれを分析にも使おうと試みました。「私たちは、これまでの多くのチームと同じ結論に至りました」とAna氏は語ります。「Postgresはトランザクションには優れていますが、私たちが必要とする分析の規模にはスケールしません。」

彼らはPostgresと組み合わせるOLAPデータベースを探し、[ClickHouse Cloud](https://clickhouse.com/cloud)に辿り着きました。「ClickHouse Cloudは私たちが求めるパフォーマンスを約束してくれました」とAna氏は話します。「圧縮率の高さだけでも驚かされました。」あるテーブルには約20億行が保持されていますが、非圧縮で300 GBあったデータがClickHouseではわずか27 GBに抑えられ、11分の1に削減されました。「ClickHouseには扱いやすい優れたツールも揃っています」と同氏は付け加え、ClickHouse Cloudネイティブの取り込みレイヤーである[ClickPipes](https://clickhouse.com/cloud/clickpipes)、データ到着時にクエリ結果を事前計算する[マテリアライズドビュー](https://clickhouse.com/docs/ja/concepts/features/materialized-views)、JOINなしで高速な検索を行えるよう参照データをメモリ上に保持する[辞書 (Dictionary)](https://clickhouse.com/docs/ja/concepts/features/dictionaries)などの機能を高く評価しています。

しかし、Postgresからのデータをすべて1つのテーブルに非正規化し、すべてのコンテキストデータを辞書に読み込み、JOINを完全に排除するなど、チームが正しいと思われるあらゆる手を尽くしたにもかかわらず、テールレイテンシの問題は残りました。通常は200ミリ秒で完了するクエリが、時には数秒に跳ね上がることがありました。500ミリ秒というP99 SLAに対して、スパイクは最大13秒にまで達しました。「ほとんどの時間は素晴らしいパフォーマンスでした」とAna氏は言います。「しかし、『ほとんどの時間』では不十分だったのです。」

## 分散キャッシュによるテールレイテンシの解消

調査の結果、原因はキャッシュミスであることが判明しました。さらに問題を悪化させていたのがテーブルの[主キー](https://clickhouse.com/docs/ja/concepts/best-practices/choosing-a-primary-key)であり、これは別システムから生成される高カーディナリティのUUIDで、チーム側で制御できないものでした。Ana氏が説明するように、UUIDはインデックス効率が悪く、指定のUUIDがどこにあるかを判断する有効な手段がないため、ClickHouseは一致するデータを探すためにすべてのテーブルパートをチェックし、そのすべてのデータをキャッシュに読み込む必要がありました。「これらすべてが積み重なってしまうのです」と同氏は言います。さらに悪いことに、継続的な挿入処理によってキャッシュが無効化され続け、新しいレプリカが起動するたびにキャッシュが空の状態から始まるため、チームはオートスケーリングも無効化せざるを得ませんでした。「動作はしていましたが、パフォーマンスは安定していませんでした」とAna氏は付け加えます。

キャッシュからの読み取り自体は高速だったため、チームはこの問題の原因がClickHouse Cloudの[ストレージとコンピュートの分離](https://clickhouse.com/docs/ja/products/cloud/reference/architecture)にあるのではないかと考えました。「ClickHouseをセルフホストすれば、必要な安定性を得られるのではないか？」とAna氏は当時の疑問を振り返ります。「答えはイエスでした。」セルフホストへの移行により、P50は80ミリ秒、P99は300ミリ秒へと低下しました。

しかし、セルフホスト環境の運用管理は容易ではありませんでした。「望んでいたものはすべて手に入りましたが、相応の代償が伴いました」とAna氏は語ります。「今度は私たちがすべてに対して*責任*を負うことになったのです。管理をシンプルにするために単一のレプリカで運用していましたが、これは障害時に頼れるバックアップがないことを意味していました。どのような障害であれ、復旧には時間がかかります。問題の発生を恐れるあまり、アップデートを避けるようになってしまいました。ダッシュボードの構築を続けながらもこのような状態で何ヶ月も運用し、その間ずっと、Cloudに戻る手段が見つからないかとClickHouseの全リリースを注視していました。」

最終的に、チームはCloudへ復帰しました。「今度は、私たちだけではありませんでした」とAna氏は語ります。「ClickHouseのサポートチームが私たちと協力し、最適化を一段上のレベルへと引き上げてくれました。」両者は協力して、データモデル、クエリ、圧縮、テーブル設定を見直しました。パート数が減ればスキャン対象も減るため、読み取りに最適化し、マージの頻度を引き上げました。かつて最大13秒に達していたクエリは、最大でも約2秒で完了するようになりました。「これだけでも復帰を決断するには十分でしたが、私たちにはまだ隠し玉がありました」と同氏は言います。

その隠し玉が、すべてのレプリカ間でホットデータを共有可能な状態に保つ共有キャッシュレイヤーである[分散キャッシュ](https://clickhouse.com/ja/blog/building-a-distributed-cache-for-s3-jp)でした。ClickHouseは、新学期に向けた本番リリースの直前に、Infinitas Learningをプライベートプレビューに参加させました。「読み取りを高速化するために無理にマージを強制するのではなく、キャッシュを事前に温める(プリウォームする)設定をすべて有効化しました」とAna氏は説明します。「現在ではデータの取得を分散キャッシュに依存しているため、ディスクから読み取る必要はほとんどなくなりました。」

負荷テストにおいて、P99はチームの目標値である500ミリ秒を下回る410ミリ秒を記録し、セルフホスト環境で達成した数値に近い水準に達しました。

> 「オープンソースからClickHouse Cloudに戻り、現在得られているパフォーマンスに非常に満足しています。アップグレードを管理する必要もなく、オートスケーリングのようにフルマネージドサービスに付属するあらゆる機能のおかげで、日々の運用が格段に楽になりました。」
>
> — Ana Lacruz氏、Infinitas Learning、データエンジニア

![](https://clickhouse.com/uploads/infinitas_oct2026_image4_373154c769.png)

*Cloud v1、セルフホスト、最適化済みCloud、および分散キャッシュ適用後のCloudにおけるP50とP99のレイテンシ比較。*

## ClickHouseとPostgresの連携による相乗効果

現在、Infinitas Learningの初等・中等教育プラットフォームは、学習結果を扱うために2つのデータベースと通信しています。トランザクション用にはPostgres、分析用にはClickHouseです。「接続も2系統、データモデルも2系統、同期を維持すべきシステムも2系統存在している状態です」とAna氏は話します。「私たちのビジョンは、それらを1つに統合することです」と同氏は続け、両者をつなぐ内部リンクとしてPostgresの[pg_clickhouse](https://clickhouse.com/ja/blog/introducing-pg_clickhouse-jp)拡張機能を使用し、クエリ実行をClickHouse側にプッシュダウンすることで、単一のサービスの背後にトランザクションと分析を同居させる計画であることを説明しました。「クライアントがテスト結果を記録する場所と、教室全体の1年間の進捗を読み戻す場所が同一になります」とAna氏は言います。「接続は1つ、単一の信頼できる情報源、そしてトランザクションと分析の両方がClickHouse Cloudによって支えられます。」

この組み合わせは、チームが機能を提供するスピードをすでに大きく変えています。「Infinitas Learningでは、安定性を損なうことなく大胆かつ迅速に行動したいと考えています」とAna氏は述べています。「ClickHouseのエコシステムは、まさにそれを実現する助けとなっています。今ではダッシュボードやウィジェットのPoCから実データを使った本番対応版への移行が、わずか数時間で完了できるようになりました。」同氏はClickHouseのサポートチームについて、「IT業界で長年働いてきた中で最高のサポートと熱心なコミットメントでした」と感謝の意を表しています。

「これらすべてが重要である理由は、テクノロジーそのものにあるわけではありません」と同氏は付け加えます。「私たちのチームが、実行可能なインサイトの創出に時間を割けるようになり、それによって160万人の学習者が最大限の可能性を発揮できるよう支援し、彼らを導く教師たちを支えられるようになった点にあります。私たちが構築したすべてのものは、Infinitas Learningの理念である『教師と学習者の成長を支援する』ことにつながっているのです。」

---

## ClickHouse Managed Postgresを今すぐ始める

ClickHouse Managed Postgresが自社データでどのように機能するかご関心をお持ちですか？数分でClickHouse Cloudの利用を開始でき、300ドル分の無料クレジットも進呈されます。

[サインアップ](https://console.clickhouse.cloud/signUp?intent=pg&loc=blog-cta-2944-clickhouse-managed-postgres&utm_blogctaid=2944)

---