【ユガバイトディービー】

YugabyteDB とは?

最終更新:
💡 SQLの入口と、データを分けて守る仕組み

複数のノードへデータを分散・複製するデータベース。PostgreSQL互換のYSQLと、CassandraのCQLを基にしたYCQLを提供する。互換性の範囲や配置、整合性と遅延の条件を確認して使う。

📌 このページのポイント
SQLの入口から、分散したデータへアプリ → YSQLPostgreSQL互換の接続書き込み複製領域Aリーダー領域B複製領域C三つの複製なら、多数派は二つ互換性と、配置・遅延を確認
一つのデータ分割単位の同期複製を、三つの障害領域へ配置した例。実際は複数の分割単位があり、それぞれリーダーを持ちます。
ひよこ ひよこ
普通のPostgreSQLと、どこが違うの?
ペンギン先生 ペンギン先生
YSQLというSQLの入口で、PostgreSQLのクライアントや多くの機能を使える一方、データを複数ノードへ分けて持つ仕組みがあるよ。入口の互換性と、保存・複製の構成を分けて考えよう。
ひよこ ひよこ
互換なら、アプリをそのまま移せる?
ペンギン先生 ペンギン先生
使っているSQL、拡張機能、動作と性能を確認しよう。公式の互換性説明も、既存アプリの丸ごとの移植を保証するものではないとしている。分散環境に合わせた設計や、実際のワークロードでの試験が必要なんだ。
ひよこ ひよこ
コピーを置けば、一台壊れても大丈夫?
ペンギン先生 ペンギン先生
同期複製では、データを分けた単位ごとにリーダーと複製を持ち、多数派の確認を待って書き込むよ。三つの複製を別の障害領域に置く例では、一つの領域の停止に備えられる。どこに配置するかと、多数派が通信できることが大事なんだ。
ひよこ ひよこ
世界中に置けば、どこからでも速い?
ペンギン先生 ペンギン先生
通信距離も関係するよ。複数リージョンへの同期書き込みは、遠くの複製の確認を待つ場合がある。近い複製を読む方法には、最新性を緩める設定もある。可用性・整合性・遅延の条件をそろえて選ぼう。
ひよこ ひよこ
Cassandraのデータも、同じSQLで読める?
ペンギン先生 ペンギン先生
YCQLというCQLを基にした入口もあるけれど、YSQLとは独立しているよ。YCQLで入れたデータを、そのままYSQLで読めるという意味ではない。どちらを使うかを、必要なデータモデルや機能に合わせて決めるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「YugabyteDB」って出てきたら「PostgreSQL互換のSQLも使える、分散データベース」と思えばだいたいOK!
📖 おまけ:英語の意味
「YugabyteDB」 = Yugabyteが提供する分散データベース
💬 名前の印象だけで、規模や速度が保証されるわけではない。SQLの互換性と分散の構成を分けて理解しよう。

参考資料

← 用語集にもどる