0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TimescaleDB から ClickHouse への複製:ユースケース・機能・仕組み

Posted at

TimescaleDB から ClickHouse への複製:ユースケース・機能・仕組み

このブログはClickHouse公式ページの翻訳Verです。
https://clickhouse.com/blog/timescale-to-clickhouse-clickpipe-cdc

ClickPipes の Postgres CDC コネクタは、Postgres(TimescaleDB を含む)から ClickHouse Cloud へのリアルタイムデータレプリケーションを実現します。ワンタイム移行と継続的レプリケーションの両方に対応し、オープンソースの PeerDB によって動作しています。PeerDB は 2024 年に ClickHouse に買収されました。


ユースケース

1. オンライン移行

TimescaleDB のパフォーマンスが限界に達した顧客が、ClickHouse へ一括移行を希望する場合があります。ClickPipes は シームレスなオンライン移行 をサポートしています。

image.png

2. 段階的移行

複雑な環境では、まず読み込みを移行し、次に書き込みを移すなど段階的な移行を行うことがあります。Postgres CDC により、遅延数秒で両者を同期しつつ移行可能です。

“Postgres CDC コネクタのおかげで、パイプラインを大きく変更せずに ClickHouse Cloud に移行できました。ダッシュボードが高速化し、分析が効率的になりました。”
— Kindly.ai チーム

3. 共存構成

トランザクション系データは TimescaleDB に、分析系は ClickHouse に処理を分けたいケース。CDC により、運用中のデータがリアルタイムに ClickHouse に反映されます。


主な機能と仕組み

  • 初期ロード + 継続同期
    初期データのスナップショットと CDC に対応。TimescaleDB の Hypertable に対応し、圧縮・非圧縮両方を扱えます。

  • 並列スナップショット
    大容量テーブルをマルチスレッドで数時間以内に移行。圧縮 Hypertable は ctid 非対応のためフォールバック処理あり。

  • スキーマ変更対応
    追加・削除などの変更を自動同期。

  • 豊富なアラート & メトリクス
    スループット、レイテンシ、レプリケーションスロットサイズなどを監視。Slack やメールへの通知にも対応。


アーキテクチャ:Hypertable とチャンクの扱い

TimescaleDB の Hypertable はチャンクに分割されており、CDC はチャンク単位での同期が必要です。通常のパーティションと異なり publish_via_partition_root を利用できないため、ClickPipes(PeerDB)が 親テーブルを明示的にルックアップ し、正しく ClickHouse 側へ変更を送ります。

さらに、新しいチャンクは TimescaleDB の _timescaledb_internal スキーマに生成されるため、これもパブリケーション対象に含めることで 新規チャンクの自動取り込み が可能になります。

image.png


圧縮対応の工夫

圧縮 Hypertable(ctid が使えない)向けに、Avro や Zstd を活用した micro-optimizations によって高速処理を維持。エラーを検出して自動で処理経路を切り替える機能も搭載されています。


出典: TimescaleDB to ClickHouse replication: Use cases, features, and how we built it – ClickHouse 公式ブログ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?