時系列データやイベントデータを高性能にリアルタイム分析するためのPostgreSQL拡張機能。
pg-sharding/spqr
PostgreSQLを水平シャーディングするステートレスなクエリルーター。複数のバックエンドインスタンスをまたぐ単一の論理データベースを実現します。
- スター
- 1,481
- フォーク
- 100
- 未解決の Issue
- 102
- 最終コミット
- 2 時間前
これは何?
SPQRは、アプリケーションとPostgreSQLの間に配置され、複数のデータベースシャードにデータを分散するステートレスなクエリルーターです。単一のPostgreSQLインスタンスでは管理が難しくなるほど、データ量がテラバイト規模に達し、クエリ数も非常に多い単一データベースを対象としています。
Goで開発されており、spqr-routerで起動するルータープロセスを中心に構成されています。設定にはYAMLファイルを使用します。主に分析系やハイブリッド型のワークロードを対象とする既存のシャーディングソリューションよりも、モノリシックなデータベースからシャーディング構成へスムーズに移行できることを目指しています。
ドキュメント、機能一覧、Dockerを使ったクイックスタート例はプロジェクトサイトで確認できます。ユニットテスト、回帰テスト、エンドツーエンドテストは、Docker Composeとmakeのターゲットを使って実行できます。
主な機能
- 01単一のエンドポイントを通じて、クライアントのクエリを複数のPostgreSQLシャードに振り分けます。
- 02YAMLファイルで設定するステートレスなルータープロセスとして動作します。
- 03make runでDockerを使ったクイックスタートを利用できます。
- 04ユニットテスト、回帰テスト、エンドツーエンドテストを備えています。
ユースケース
- データ量がテラバイト規模に達し、クエリ数も多い単一のPostgreSQLデータベースをスケールさせる。
- モノリシックなPostgreSQL構成をシャーディングアーキテクチャへ移行する。
- インスタンス間の水平分割が必要なOLTP型ワークロードを実行する。
クイックスタート
- 1
Dockerを使って簡単なサンプルを実行する
make run - 2
ソースからプロジェクトをビルドする
make build - 3
設定ファイルを指定してrouterを実行する
spqr-router run --config path-to-router-config.yaml
使う前に知っておきたいこと
- ライセンスの自動検出に失敗したため、リポジトリでライセンスを確認する必要があります。READMEにはPostgreSQL Global Development Group Licenseと記載されています。
- ローカルで開発するには、最新バージョンのGoが必要です。
収録されている特集
トピック
よくある質問
- spqr とは?
- PostgreSQLを水平シャーディングするステートレスなクエリルーター。複数のバックエンドインスタンスをまたぐ単一の論理データベースを実現します。 SPQRは、アプリケーションとPostgreSQLの間に配置され、複数のデータベースシャードにデータを分散するステートレスなクエリルーターです。単一のPostgreSQLインスタンスでは管理が難しくなるほど、データ量がテラバイト規模に達し、クエリ数も非常に多い単一データベースを対象としています。
- spqr は無料で使えますか?ライセンスは?
- spqr は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- spqr は今もメンテナンスされていますか?
- 活発にメンテナンス中。spqr の最終コミットは 2026年10月22日 です。
- spqr は何に使えますか?
- データ量がテラバイト規模に達し、クエリ数も多い単一のPostgreSQLデータベースをスケールさせる。 モノリシックなPostgreSQL構成をシャーディングアーキテクチャへ移行する。 インスタンス間の水平分割が必要なOLTP型ワークロードを実行する。
- spqr のインストール方法は?
- Dockerを使って簡単なサンプルを実行する: make run ソースからプロジェクトをビルドする: make build 設定ファイルを指定してrouterを実行する: spqr-router run --config path-to-router-config.yaml
- spqr はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/pg-sharding/spqr
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
PostgreSQL関連のソフトウェア、ライブラリ、ツール、拡張機能、学習リソースをまとめた、コミュニティ運営の厳選リスト。
C++で書かれた、mongodデータベースサーバーとmongosシャーディングルーターを備える、ソース公開型のドキュメントデータベースです。
Cronや一定間隔での起動、シャード化したブロードキャストジョブ、フェイルオーバーや再試行に対応する、Webコンソール付きの分散タスクスケジューリングプラットフォーム。
Postgresを中心とした開発プラットフォーム。Firebaseの代替として、ホステッドPostgresデータベースに認証、自動生成API、ストレージ、リアルタイム機能を備えています。
Rust製のインプロセスSQLデータベース。SQLiteの方言、ファイル形式、C APIと互換性があり、実験的なPostgresフロントエンドも備えています。