arch-database について
データベースアーキテクチャを助言する OpenClaw スキルです。アプリケーションの要件に応じて、データベースの比較、スキーマ設計、インデックス最適化、レプリケーションやシャーディングの計画を支援します。
主な機能
- 01データベース種別の比較
- 02スキーマと制約の設計
- 03インデックス戦略の提案
- 04レプリケーションとシャーディングの計画
- 05ポリグロット永続化の助言
活用シーン
- 01新規バックエンド向けのDB選定
- 02データベース移行の計画
- 03大量データ要件への対応
- 04データベース性能問題の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill arch-databaseインストール後、Claude Code で/arch-databaseを入力して読み込まれたか確認します。
詳細
arch-database
目的
このスキルは、リレーショナル、ドキュメント、グラフ、ベクトルデータベースの選択、スキーマ設計、インデックスの最適化、スケーラブルなシステム向けのレプリケーションとシャーディングの計画など、データベースアーキテクチャに関する意思決定をAI エージェントが支援するためのものです。
使用するタイミング
新しいアプリケーションのバックエンドを設計するとき、データベースを移行するとき、大量のデータを扱う必要があるとき、またはパフォーマンスの問題を解決するときに、このスキルを使用してください。たとえば、トランザクションが必要な電子商取引アプリにはリレーショナルデータベースを、ソーシャルグラフにはグラフデータベースを選ぶ場合に適しています。SQL クエリを書くといった低レベルのコーディング作業には使用せず、クエリに特化したスキルと併用してください。
主な機能
- データベースの種類を比較する:データ構造やクエリに基づいて、リレーショナルデータベース(例:PostgreSQL)とドキュメントデータベース(例:MongoDB)を評価します。
- スキーマを設計する:主キーやリレーションシップの定義など、制約を含むER図やJSONスキーマを生成します。
- インデックスを最適化する:クエリ時間を短縮するため、リレーショナルデータベース向けのB-treeやドキュメントデータベース向けの全文検索インデックスなどを推奨します。
- レプリケーションとシャーディングに対応する:フォールトトレランスのためのマスター・スレーブ構成や、負荷分散のための水平シャーディングなどを提案します。
- ポリグロットパーシステンスをサポートする:PostgreSQLと組み合わせてRedisをキャッシュに使用するなど、システム内でSQLとNoSQLを併用する方法を提案します。
使用パターン
「arch-database:」を先頭に付けたOpenClawプロンプトでこのスキルを呼び出します。例:「arch-database: ソーシャルネットワーク向けにリレーショナルとグラフを比較」。プログラムから使用する場合は、JSONペイロードを指定してOpenClaw APIエンドポイント /api/skills/arch-database を呼び出します。読み取り中心か書き込み中心かなど、アプリケーションの要件を必ず含めてください。スクリプトで使用する場合は、APIエラーに対処できるよう、呼び出しをエラーチェックで囲んでください。複数のステップからなるタスクでは、スキーマ設計から始めてインデックス作成に進むなど、ほかのse-architectureスキルと連携してください。
一般的なコマンド/API
手早く操作するには、OpenClaw CLIを使用します:openclaw run arch-database --compare relational document --app-type social(長所と短所を出力します)。APIの場合は、次のような本文を指定して https://api.openclaw.ai/v1/skills/arch-database にPOSTします:
{
"action": "design-schema",
"params": {"db-type": "relational", "tables": ["users", "posts"]}
}
Authorization: Bearer $OPENCLAW_API_KEY ヘッダーで認証する必要があります。一般的なフラグには、詳細な出力を得るための --verbose と、構造化された結果を得るための --output json があります。設定ファイルには、次のようなYAMLを使用します:
db-arch:
type: graph
schema: {nodes: users, edges: friendships}
インデックスに関する提案を生成するには、次を実行します:openclaw run arch-database --index-suggest --query "SELECT * FROM users WHERE name LIKE '%john%'"。
統合に関する注意
APIアクセス用の環境変数を設定して統合します。例:export OPENCLAW_API_KEY=your-secret-key。大規模なワークフローに組み込む場合は、OpenClawのSDKを使用します:import openclaw; client = openclaw.Client(api_key=os.environ['OPENCLAW_API_KEY']); response = client.invoke('arch-database', {'action': 'replication-plan', 'replicas': 3})。ポリグロット構成では、アプリの設定でDBドライバーを指定し、たとえばNode.jsプロジェクトのpackage.jsonに"postgresql"と"neo4j"を追加して互換性を確保してください。本番環境に移行する前に、サンドボックス環境で統合をテストしてください。
エラー処理
呼び出し時には、無効なパラメーターなどのエラーを確認してください(例:db-typeのスペルを間違えると、APIは400を返します)。コードではtry-exceptで処理します:try: response = client.invoke('arch-database', params) except openclaw.APIError as e: print(f"Error: {e.status_code} - {e.message}")。よくある問題に対しては、5xxエラー時に指数バックオフで再試行してください。スキルが「incompatible architecture」を返した場合は、データ量を指定するなどして入力を調整してください。デバッグ用にすべての応答をログに記録し、詳細なトレースを取得するにはCLIで --debug フラグを使用してください。
具体的な使用例
-
例 1:ユーザープロフィールシステム向けにDBの種類を比較する
プロンプト:「arch-database: 100万件のユーザープロフィールがあり、頻繁に更新されるシステムについて、リレーショナルとドキュメントを比較してください。」
想定される結果:エージェントは次のように出力します:「構造化データとACID準拠にはリレーショナル(例:MySQL)を、柔軟なスキーマにはドキュメント(例:MongoDB)を使用します。推奨:user_idにインデックスを設定したリレーショナルです。」
続けて:出力を使ってAPI経由でスキーマを生成します:/api/skills/arch-database に {"action": "design-schema", "db-type": "relational"} を POST します。 -
例 2:ソーシャルネットワーク向けにシャーディングを使用したスキーマを設計する
コマンド:openclaw run arch-database --design-schema --db-type graph --sharding key-based --entities users,posts
想定される結果:エージェントは次のように応答します:「スキーマ:ノード:users {id, name};エッジ:friendships {from, to}。シャーディング:均等に分散するため、ユーザーIDでシャーディングします。」
統合:YAMLとしてエクスポートし、アプリのデプロイスクリプトに適用します。
グラフの関係
- 関連先:se-architecture クラスター(例:スキーマをさらに洗練するため、data-modelingにリンクします)。
- 接続方法:「database」などのタグを介して、インデックス設定の次のステップとしてquery-optimizationスキルを検索します。
- 依存関係:レプリケーションに関するアドバイスにはse-architectureの基盤が必要です。出力はデプロイスキルに渡すことができます。