Repolode
pg-sharding

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. 1

    Dockerを使って簡単なサンプルを実行する

    make run
  2. 2

    ソースからプロジェクトをビルドする

    make build
  3. 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 の数値は毎日更新されます。

関連プロジェクト