OceanBase
English日本語简体中文
ドキュメントホーム
製品
エコシステム
リリース

データベース

OceanBase CloudOceanBaseデータベース

データベース

OceanBase CloudOceanBaseデータベース
OceanBase CloudOceanBaseデータベース

OceanBase Cloud

  • エコシステム統合の概要
  • データベースバージョニング
    • Liquibaseを使用したOceanBaseデータベースのバージョン管理
    • Flywayを使用したOceanBase Cloudデータベースのバージョン管理
  • データ統合
    • Canalを使用したデータの同期
    • dbtを使用したOceanBaseデータの分析
    • Debezium
    • Flinkによるデータの同期
    • AWS Glueを使用したOceanBaseデータの移行
    • Informatica CloudとOceanBaseデータベースの連携ガイド
    • OceanBaseデータベースとKafkaの統合に関するベストプラクティス
    • Maxwell
    • SeaTunnel
    • DataWorks
    • Apache NiFiによるOceanBase Cloudの統合
  • SQL 開発
    • DataGripでOceanBase Cloudデータベースに接続する
    • DBeaverでOceanBase Cloudに接続する
    • NavicatでOceanBase Cloudに接続する
    • TablePlusでOceanBase Cloudデータベースに接続する
  • オーケストレーション
    • DolphinScheduler
    • LinkisとOceanBaseデータベースの連携
    • AirflowとOceanBaseデータベースの連携
  • 可視化
    • GrafanaでOceanBase Cloudの監視ダッシュボードデータを表示する
    • Power BIでOceanBase Cloudに接続してデータを取得する
    • Quick BIでOceanBase Cloudに接続する
    • SupersetとOceanBase Cloudを使用したデータ分析
    • TableauからOceanBase Cloudに接続する
  • オブザーバビリティ
    • Datadogを使用したOceanBase Cloudインスタンスの監視
    • Prometheusを使用したOceanBaseデータの監視
  • データベース管理
    • BytebaseによるOceanBaseインスタンスの管理
  • AI
    • OceanBase Cloud VectorとLlamaIndexの連携
    • OceanBase Cloud VectorとDifyの連携
    • OceanBase Cloud VectorとLangChainの連携
    • OceanBase Cloud VectorとQwenの連携
    • OceanBase Cloud VectorとOpenAIの連携
    • OceanBase Cloudとn8nの連携
    • OceanBase MCP ServerとTraeの連携
    • OceanBase Cloud VectorとSpring AI Alibabaの連携
    • OceanBase MCP ServerとClineの連携
    • OceanBase MCP ServerとCursorの連携
    • OceanBase MCP ServerとContinueの連携
    • Google GenAI ToolboxとOceanBase MCP Serverの統合
    • OceanBase Cloud VectorとCamelAIの連携
    • OceanBase Cloud VectorとFirecrawlの連携
    • OceanBase Cloud VectorとHugging Faceの連携
    • OceanBase Cloud VectorとOllamaの連携
    • OceanBase Cloud VectorとGoogle Geminiの連携
    • OceanBase Cloud VectorとCloudflare Workers AIの連携
    • OceanBase MCP ServerとQoderの連携
    • OceanBase MCP ServerとOpenCodeの連携
    • OceanBase MCP ServerとClaude Codeの連携
    • OceanBase MCP ServerとGitHub Copilotの連携
    • OceanBase MCP ServerとCodexの連携
    • OceanBase Cloud VectorとJina AIの連携
    • OceanBase MCP ServerとAugment Codeの連携
    • OceanBase MCP ServerとKiroの連携
  • 開発ツール
    • Cloudflare WorkersでOceanBase Cloudに接続する
    • VercelでOceanBase Cloudに接続する

PDF をダウンロード

ドキュメントフィードバック
  1. ドキュメントセンター
  2. OceanBase Cloud

OceanBase Cloud VectorとJina AIの連携

最終更新:2026-10-09 09:10:54

前提条件
操作手順1:データベース接続情報を取得する
操作手順2:AIアシスタントを構築する
Jina AI APIキーの環境変数を設定する
サンプルコード

OceanBaseはV4.3.3バージョンからベクトル型データの格納、ベクトルインデックス、そしてembeddingベクトル検索機能をサポートしています。これにより、ベクトル化したデータをOceanBaseに保存し、次の検索処理で利用できるようになりました。

Jina AIは、マルチモーダル検索とベクトル検索に特化したAIプラットフォームフレームワークです。エンタープライズ向けの検索強化型生成AIアプリケーションを構築するために必要なコアコンポーネントとツールを提供し、企業や開発者がマルチモーダル検索に基づくRAG(検索強化型生成)アプリケーションを構築するのを支援します。

このチュートリアルでは、OceanBase Cloudのベクトル検索機能とJina AIを連携させ、類似性検索や検索タスクを実行する方法を説明します。

前提条件

  • ご利用の環境にトランザクション型(MySQL)クラスタインスタンスが利用可能であること。

テナントの作成を参照してテナント作成を完了した後、以下の手順を実行してください。

  • ご利用の環境に、使用可能なMySQL互換モードのテナント、MySQLデータベース、およびデータベースアカウントが既に存在し、データベースアカウントに読み書き権限が付与されていること。作成方法の詳細についてはアカウントの作成およびデータベースの作成(MySQL専用)をご参照ください。

  • プロジェクト管理者またはインスタンス管理者ロールを持ち、プロジェクト内のインスタンスに対して読み書き操作を実行できること。権限がない場合は、組織管理者に連絡して権限の追加を依頼してください。

  • Python 3.11以降のバージョンをインストールしていること。

  • 依存関係をインストールしていること。

    python3 -m pip install pyobvector requests sqlalchemy
    

操作手順1:データベース接続情報を取得する

  1. ドロップダウンリストから、IDに基づいて対象のクラスタインスタンスを選択します。

  2. **概要**ページに移動します。

  3. 接続をクリックし、**接続文字列を取得**を選択します。

  4. ポップアップウィンドウで、**パブリックネットワークを使用**を選択します。

  5. アクセスアドレスを取得し、**現在のブラウザIPアドレスを追加**を選択します。

  6. データベース関連情報を入力し、**接続文字列をコピー**します。

操作手順2:AIアシスタントを構築する

Jina AI APIキーの環境変数を設定する

Jina AI APIキーを取得し、OceanBaseの接続情報と共に環境変数に設定します。

export OCEANBASE_DATABASE_URL=YOUR_OCEANBASE_DATABASE_URL
export OCEANBASE_DATABASE_USER=YOUR_OCEANBASE_DATABASE_USER
export OCEANBASE_DATABASE_DB_NAME=YOUR_OCEANBASE_DATABASE_DB_NAME
export OCEANBASE_DATABASE_PASSWORD=YOUR_OCEANBASE_DATABASE_PASSWORD
export JINAAI_API_KEY=YOUR_JINAAI_API_KEY

サンプルコード

Jina AIの埋め込みベクトルを取得する

Jina AIはさまざまな埋め込みモデルを提供しており、ユーザーはニーズに応じて適切なモデルを選択して使用できます。

Model
Parameter Size
Embedding Dimension
Text
jina-embeddings-v3 570M flexible embedding size (Default: 1024) multilingual text embeddings; supports 94 language in total
jina-embeddings-v2-small-en 33M 512 English monolingual embeddings
jina-embeddings-v2-base-en 137M 768 English monolingual embeddings
jina-embeddings-v2-base-zh 161M 768 Chinese-English Bilingual embeddings
jina-embeddings-v2-base-de 161M 768 German-English Bilingual embeddings
jina-embeddings-v2-base-code 161M 768 English and programming languages

ここでは、jina-embeddings-v3を例に、Jina AIの埋め込みAPIを呼び出すための補助関数generate_embeddingsを定義します:

import os
import requests
from sqlalchemy import Column, Integer, String
from pyobvector import ObVecClient, VECTOR, IndexParam, cosine_distance

JINAAI_API_KEY = os.getenv('JINAAI_API_KEY')

# Step 1. Text Data Vectorization
def generate_embeddings(text: str):
    JINAAI_API_URL = 'https://api.jina.ai/v1/embeddings'
    JINAAI_HEADERS = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {JINAAI_API_KEY}'
    }
    JINAAI_REQUEST_DATA = {
        'input': [text],
        'model': 'jina-embeddings-v3'
    }

    response = requests.post(JINAAI_API_URL, headers=JINAAI_HEADERS, json=JINAAI_REQUEST_DATA)
    response_json = response.json()
    return response_json['data'][0]['embedding']


TEXTS = [
    'Jina AI offers best-in-class embeddings, reranker and prompt optimizer, enabling advanced multimodal AI.',
    'OceanBase Database is an enterprise-level, native distributed database independently developed by the OceanBase team. It is cloud-native, highly consistent, and highly compatible with Oracle and MySQL.',
    'OceanBase is a native distributed relational database that supports HTAP hybrid transaction analysis and processing. It features enterprise-level characteristics such as high availability, transparent scalability, and multi-tenancy, and is compatible with MySQL/Oracle protocols.'
]
data = []
for text in TEXTS:
    # Generate the embedding for the text via Jina AI API.
    embedding = generate_embeddings(text)
    data.append({
        'content': text,
        'content_vec': embedding
    })

print(f"Successfully processed {len(data)} texts")

ベクトルテーブル構造を定義し、ベクトルをOceanBaseに格納する

jinaai_oceanbase_demo_documentsという名前のテーブルを作成し、テキストを格納するcontent列、埋め込みベクトルを格納するcontent_vec列、およびベクトルインデックス情報を含めます。そして、ベクトルデータをOceanBaseに格納します:

# Step 2. Connect OceanBase Serverless
OCEANBASE_DATABASE_URL = os.getenv('OCEANBASE_DATABASE_URL')
OCEANBASE_DATABASE_USER = os.getenv('OCEANBASE_DATABASE_USER')
OCEANBASE_DATABASE_DB_NAME = os.getenv('OCEANBASE_DATABASE_DB_NAME')
OCEANBASE_DATABASE_PASSWORD = os.getenv('OCEANBASE_DATABASE_PASSWORD')

client = ObVecClient(uri=OCEANBASE_DATABASE_URL, user=OCEANBASE_DATABASE_USER,password=OCEANBASE_DATABASE_PASSWORD,db_name=OCEANBASE_DATABASE_DB_NAME)
# Step 3. Create the vector table.
table_name = "jinaai_oceanbase_demo_documents"
client.drop_table_if_exist(table_name)

cols = [
    Column("id", Integer, primary_key=True, autoincrement=True),
    Column("content", String(500), nullable=False),
    Column("content_vec", VECTOR(1024))
]

# Create vector index
vector_index_params = IndexParam(
    index_name="idx_content_vec",
    field_name="content_vec",  
    index_type="HNSW",
    distance_metric="cosine"
)

client.create_table_with_index_params(
    table_name=table_name,
    columns=cols, 
    vidxs=[vector_index_params]
)

print('- Inserting Data to OceanBase...')
client.insert(table_name, data=data)

セマンティック検索

Jina AIの埋め込みAPIを使用してクエリテキストの埋め込みベクトルを生成し、その後、クエリテキストの埋め込みベクトルとベクトルテーブル内の各埋め込みベクトルとのコサイン距離に基づいて、最も関連性の高いドキュメントを検索します:

# Step 4. Query the most relevant document based on the query.
query = 'What is OceanBase?'
# Generate the embedding for the query via Jina AI API.
query_embedding = generate_embeddings(query)

res = client.ann_search(
    table_name,
    vec_data=query_embedding,
    vec_column_name="content_vec",
    distance_func=cosine_distance,  # コサイン距離関数を使用
    with_dist=True,
    topk=1,
    output_column_names=["id", "content"],
)

print('- The Most Relevant Document and Its Distance to the Query:')
for row in res.fetchall():
    print(f'  - ID: {row[0]}\n'
          f'    content: {row[1]}\n'
          f'    distance: {row[2]}')

期待される結果

  - ID: 2
    content: OceanBase Database is an enterprise-level, native distributed database independently developed by the OceanBase team. It is cloud-native, highly consistent, and highly compatible with Oracle and MySQL.
    distance: 0.14733879001870276

前のトピック

OceanBase MCP ServerとCodexの連携
前へ

次のトピック

OceanBase MCP ServerとAugment Codeの連携
次へ
このページの内容
前提条件
操作手順1:データベース接続情報を取得する
操作手順2:AIアシスタントを構築する
Jina AI APIキーの環境変数を設定する
サンプルコード