このプロジェクトについて
PeerDBは、PostgreSQLへのデータの出し入れに特化したETL/ELTツールです。複数のストリーミングモードに対応しています。ログベースのCDC(推奨され、活発にメンテナンスされています)、タイムスタンプや整数を用いたカーソルベースのレプリケーション、XMINベースのレプリケーションがあります。Query Replication(QRep)とXMINミラータイプは非推奨とされていますが、引き続き機能します。
活発にメンテナンスされているソースには、Postgres、MySQL、MongoDB、CockroachDB、BigQueryが含まれます。活発にメンテナンスされている宛先は、ClickHouse、ClickHouse Cloud、Postgresです。いくつかの宛先コネクタ(S3、Snowflake、BigQuery、ElasticSearch、Kafka、Redpanda、Confluent、Azure Event Hubs、Google Pub/Sub)は非推奨ですが、引き続き機能します。BigQueryはソースとして引き続きサポートされています。
際立った特徴は、ETL向けのPostgres互換SQLインターフェースです。これにより、使い慣れたクライアントツール(psql、pgAdmin)、BIツール、マイグレーション・バージョン管理ツール、Airflowなどの既存のスケジューラを使ってレプリケーションを管理できます。このプロジェクトは、Postgresネイティブの最適化を重視しています。並列初期ロード、TOASTカラムの処理、jsonbや配列、地理空間型を含む豊富なデータ型マッピング、スキーマ変更のサポートなどです。また、状態管理、自動リトライ、冪等性処理といったフォールトトレランス機構や、メモリ不足による障害を回避するための設定可能なバッチ処理と並列処理についても説明されています。
開始するには、シェルスクリプトを使用して、カタログとしてのPostgres、Temporal、PeerDBサーバー、フローAPIとワーカー、PeerDB UIのDockerコンテナを起動します。ローカル開発パスではイメージをローカルでビルドし、protobuf生成のためにbufコンパイラが必要です。READMEには、ClickHouseがDockerの外部で実行される場合、MinIOステージングアクセスをAWS_ENDPOINT_URL_S3とネットワーク/セキュリティグループのルールで設定する必要があると記載されています。
エンドツーエンドのテストは、TiltでオーケストレーションされたDocker Composeを通じてローカルでサポートされており、Postgres、MySQL(GTIDおよびファイルポジションバリアント)、MariaDB、MongoDBからClickHouseへのテストランチャーが用意されています。データストアはリソースを節約するために手動で初期化され、名前付きボリュームが永続性を提供し、Tilt UIにクリーンアップオプションがあります。PeerDBはClickHouse Cloudでもネイティブに提供されています。このプロジェクトはAGPLv3でライセンスされています(READMEのバッジはElv2を参照していますが、ライセンスセクションにはAGPLv3と記載されています)。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.