SurrealDB

SurrealDB

SurrealDB Ltd · その他

SurrealDBは、ドキュメント・グラフ・ベクトル・リレーショナルデータを1つのエンジンに集約したマルチモデルデータベースだ。SurrealQLで問い合わせ、1つのACIDトランザクションで処理する。

SurrealDB の画面プレビュー

SurrealDB について

What Is SurrealDB

SurrealDBは、2022年設立の英国企業SurrealDB Ltdが開発するデータベースだ。売りは守備範囲の広さにある。リレーショナルデータベース、ドキュメントデータベース、グラフデータベースを並べて運用する代わりに、3つをまとめて扱うエンジンを1つだけ抱える。ベクトルと時系列も同じ場所で扱う。問い合わせ言語はSurrealQLに一本化され、書き込みはすべて1つのACIDトランザクションに収まる。

効いてくるのは、1つの機能が複数のデータ形式を同時に必要とする場面だ。推薦機能は類似度を測るベクトルと、関係をたどるグラフを欲しがる。SNSのフィードなら、投稿のドキュメントとフォローのエッジが要る。SurrealDBはどちらも1つの文で処理し、データのコピーも1つで済む。システム間で同期させるものは何も残らない。

制約も見ておきたい。エンジンはPostgreSQLやMongoDBより若く、扱える人材も実績あるサードパーティ製ツールも少ない。ライセンス(BSL 1.1)はさらにひとつの用途を塞ぐ。独自のスキーマを作る第三者に、SurrealDBをマネージドデータベースサービスとして提供する使い方だ。本番環境でのセルフホストは許されている。

Getting Started

  1. SurrealDB Cloudの無料アカウントを作るか、curl --proto '=https' --tlsv1.2 -sSf https://install.surrealdb.com | shでバイナリをインストールする。
  2. surreal start --user root --pass root memoryでテスト用インスタンスを起動するか、Studioからクラウドインスタンスをデプロイする。
  3. SurrealQLでDEFINE TABLEとDEFINE FIELDを使い、テーブルとフィールドを定義してから、CREATEでレコードを追加する。
  4. SELECTで問い合わせ、矢印記法でエッジをたどり、vector::similarity::cosineでベクトルの類似度順に並べる。
  5. 公式SDKでアプリをつなぐか、同梱のクエリツールSurrealistでデータを視覚的に確認する。

AIツール情報

SurrealDBの料金、対応プラットフォーム、性能を簡単に確認できます。

無料プランはい
有料プラン$15.33 - $1,758.57/mo
プラットフォームLinux, macOS, Windows, Cloud, WebAssembly
開発元SurrealDB Ltd
カテゴリその他
リリース日Sep 2022
最終更新Sep 2026
サイト訪問数81.1K
サイト世界ランキング394.3K
API提供状況はい

こんな人におすすめ

このツールが最も力を発揮するユーザー、タスク、シーン。

ユーザー

  • バックエンド開発者:リレーショナルストア、埋め込みインデックス、グラフ層を配線するのに疲れた人に向く。SurrealQLは純粋なSQLではないため、書き慣れている必要がある。
  • エージェントを開発するAIエンジニア:SurrealDBは会話履歴、エンティティ、関係を同じストアに置くので、検索がシステム間を行き来しない。
  • 小規模なプロダクトチーム:エンジン1つで複数を置き換えられ、デプロイして監視するサービスが減る。ただしサポートコミュニティは有名どころのデータベースより小さい。

タスク

  • GraphRAGの検索を組む:グラフ走査とベクトル検索を1つのクエリにまとめれば、コンテキストがツール間に散らずつながったままになる。
  • リアルタイムダッシュボードを動かす:`LIVE SELECT`がWebSocketで変更を押し出し、行が書き込まれた瞬間にクライアントが更新される。ポーリングループを維持しなくていい。
  • ナレッジグラフを設計する:エンティティとエッジがネイティブなので、JOINまみれのSQLなしで多段の走査ができる。
  • データベースをアプリに埋め込む:エンジンは単一バイナリにコンパイルされ、自分のプロセス内、サーバー上、あるいはWebAssemblyでブラウザ内でも動く。

シーン

  • 構造化データと非構造化データが混ざる機能の試作:無料の枠から始めて、そのまま縦にスケールできる。移行は要らない。
  • 積み上がったデータベースを統合する:運用負荷を削るため、複数のストアを1つのエンジンにまとめたチームもある。スキーマをSurrealQLへ移すので、移行作業は覚悟したほうがいい。
  • オフラインやエッジで動くアプリを出す:WASM版はブラウザやエッジワーカーで動き、データはローカルストレージに置かれる。

主な機能

1つのエンジンで全データモデル

SurrealDBはドキュメントストア、グラフデータベース、ベクトルデータベース、リレーショナルデータベースを同時に兼ね、さらに時系列ストレージを足す。接着コードで結んだ別々のシステムを抱えず、まとめて問い合わせられる。製品の他の要素はすべてこの部分に乗っている。

SurrealQL

SurrealQLはSQLの構文にグラフとベクトルの操作を混ぜた言語だ。1つの文で関係をたどり、コサイン類似度で並べ替え、フィールドで絞り込める。SQLに近くて覚えやすいが、既存のクエリをそのまま動かせるほどではない。

ライブクエリ

LIVE SELECTはデータベースをリアルタイムデータベースに変える。条件に合う行が変わると、サーバーがWebSocketで購読中のクライアントに更新を送る。diffとpatchを備えるので転送量も膨らまない。チャットやダッシュボード、監視ではポーリング層が1つ不要になる。

きめ細かいアクセス制御

権限はロール、テーブル、レコード、フィールド単位で設定でき、ルールはSurrealQLで書く。ユーザーやサービス、エージェントは許可されたレコードしか見られない。フロントエンドがデータベースに直接つなぐときには、ここが効いてくる。

埋め込みも分散も

同じエンジンが、アプリへの埋め込み、サーバー上のセルフホストデータベース、TiKVを土台にした分散クラスタのいずれでも動く。メモリで始めてRocksDBでディスクに移し、クエリを書き換えずに拡張できる。

マネージドクラウドとエージェントメモリ

SurrealDB Cloudはインフラ、バックアップ、監視を引き受け、使った分だけ課金する。新しい製品のAgent Memoryは、AIエージェントが学んだ内容を出典と時刻つきで同じエンジンに保存する。

メリットとデメリット

メリット

  • 複数のデータベースを1つのエンジンに集約し、デプロイと同期の手間を減らす。
  • ドキュメント、グラフ、ベクトル、リレーショナルデータを1つのACIDトランザクションで問い合わせられる。
  • ライブクエリが別途メッセージ基盤なしで変更をクライアントに届ける。
  • 埋め込み、セルフホスト、マネージドクラウドのどれでも同じクエリが使える。
  • 無料枠に1GBのストレージが含まれ、期限もない。

デメリット

  • 周辺ツールはPostgreSQLやMongoDBより若く、サードパーティ製ツールもコミュニティ文書も少ない。
  • SurrealQLは標準SQLではないため、既存のクエリは書き直しが必要で、習得にも時間がかかる。
  • BSL 1.1ライセンスは、SurrealDBを第三者向けのマネージドデータベースサービスとして提供することを禁じる。一部のビジネスモデルは採れない。
  • マネージドクラウドは今のところAWSのみで、Azureはこれから。

よくある質問

使える。エンジンは本番環境も含めて無料で利用、改変、セルフホストでき、SurrealDB Cloudには期限なしで1GBのストレージが付く無料枠がある。BSL 1.1ライセンスが制限するのは、第三者向けのマネージドサービスとして提供する場合だけだ。