Oracle GoldenGate 23aiでPostgreSQL配列データ・ベクトルをOracle Databaseにレプリケートする方法 (2024/11/01)
Oracle GoldenGate 23aiでPostgreSQL配列データ・ベクトルをOracle Databaseにレプリケートする方法 (2024/11/01)
投稿者: Shrinidhi Kulkarni | Principal Product Manager
OCI GoldenGate 23ai for PostgreSQL : Oracle GoldenGate 23ai が、OCI GoldenGate for Oracle および PostgreSQL データベースで利用できるようになりました。
注記:
21cから23aiへの直接アップグレードはご利用いただけません。Oracle DatabaseまたはPostgreSQLでOracle GoldenGate 23aiを使用するには、新しいデプロイメントを作成する必要があります。Oracle GoldenGate 23aiの新機能の一つは、PostgreSQLおよびほとんどのベンダー派生製品における配列、pgvector拡張、tsquery、tsvectorのキャプチャと配信です。
PopstgreSQLの配列データ型の理想的な使用例の一つは、ベクトルの保存です。地理データや、データベース内の類似検索のためのベクトル埋め込みを保存できるかもしれません。PostgreSQLでは、ベクトルをネイティブに扱う方法として配列が採用されています。これらのベクトルは、データに対するセマンティック検索の強化に役立ちます。
ビジネスユースケース:
大型ショッピングモール向けに、LLMを活用したAIチャットボットを開発していると想像してみてください。このチャットボットは、大型ショッピングモールの屋内ナビゲーションシステムとしても機能します。このシステムでは、ユーザーはモール内の店舗、施設、アメニティを検索し、目的地までの詳細な道順を案内します。モール内の各位置はベクトル(x, y座標)で表されます。このAIチャットボットはOCI上でホストされ、類似検索によって検索エクスペリエンスが向上します。
例えば、ユーザーがショッピングモール内の現在地から最も近いレストランを探したいというシナリオを考えてみましょう。
セマンティック検索アルゴリズムは、ユーザーのクエリ(「最寄りのレストラン」)を解釈し、ユーザーがショッピングモール内のレストラン施設を探していることを理解します。検索エンジンは、「最寄りのレストラン」というフレーズそのものを検索するのではなく、文脈を考慮し、場所の名前や説明に「レストラン」という単語が明示的に含まれていなくても、ユーザーのクエリとレストランとして機能する場所をマッチングします。システムは、ユーザーの現在地(ベクトルで表されます)とデータベース内の各レストランの場所との間の距離を計算します。次に、ユーザーの位置からの距離に基づいてレストランの場所をランク付けします。そして、保存されているベクトルとナビゲーションアルゴリズムを使用して、最も近いレストランの場所と、ショッピングモール内でそこへ至る詳細な道順をユーザーに返します。
レプリケーションの使用例:
Oracle GoldenGate 23aiは、PostgreSQLからOracle Database 23aiへのビジネスデータとベクターデータ(ARRAYまたはpgvectorに格納)のレプリケーションまたは移行をほぼリアルタイムで実現します。Oracle Database 23aiでは、ビジネスデータをベクターデータの隣に格納できます。
全体的なアーキテクチャ:
コンポーネント:
- OCI GoldenGate 23ai デプロイメント (Oracle および PostgreSQL)
- PostgreSQL データベース 14.11 (ソース)
- Oracle Database 23ai (ターゲット)
注意: 掲載時点では、Oracle 23ai データベースは特定の地域でのみ利用可能です。Oracle 23ai の提供状況については、 Oracle の製品ニュースを参照してください。
OCI GoldenGate デプロイメントの作成
- OCI GoldenGate 23ai デプロイメントを作成します (PostgreSQL および Oracle 用)。
- OCI コンソールから Oracle Database オプション内の GoldenGate に移動します。
- OCI GoldenGateで、「デプロイメントの作成」オプションをクリックします。または、左側のメニューでデプロイメントをクリックします。
- 「デプロイメントの作成」パネルで、名前と、必要に応じて説明を入力します。適切なコンパートメントを選択します。テストデプロイメントを作成するには、「開発」または「テスト」オプションを選択します。
- 「<コンパートメント>のサブネット」ドロップダウンで、OCI GoldenGateサービステナンシーからプライベートエンドポイントを作成するプライベートサブネットを選択します。
注:デプロイメントを作成するときにのみ、プライベートサブネットを選択できます。 - 次にライセンスの種類を選択し、オプションでGoldenGateコンソールのパブリックアクセスを有効にして、パブリックインターネット経由でデプロイメントに接続します。
各種パラメータの詳細については、「データレプリケーションリソースの作成」をご覧ください。 - デプロイメントタイプとして「データレプリケーション」を選択します。ドロップダウンから「PostgreSQL」を選択します。「バージョン」では、「バージョンを変更」をクリックし、利用可能なバージョン23.0.0.0(PostgreSQLの場合はoggpostgresql:23.0.0.0.0_240425.1035_977以降)を選択してください。GoldenGateデータレプリケーションデプロイメントのデフォルトバージョンはGoldenGate 21cに設定されています。
- GoldenGate インスタンス名を指定し、資格情報ストア内で OCI IAM または GoldenGate を選択します。最後に、「作成」をクリックして、デプロイメント作成作業リクエストを開始します。
- デプロイメントがアクティブ状態になったら、デプロイメントの詳細ページで「コンソールの起動」をクリックして、OCI GoldenGate デプロイメント コンソールにアクセスします。
- Oracle Database 用の同様のデプロイメントを作成するには、このブログを参照してください。
- このブログでは、ソースPostgreSQLデータベース(v14.11)はOCI Compute上で実行されています。適切な権限を持つデータベースユーザーの作成とPostgreSQLデータベース構成の設定については、「Oracle GoldenGate用データベースの準備」を参照してください。
OCI GoldenGate接続の作成と割り当て
・OCI GoldenGate の概要ページで、「接続」をクリックします。
レプリケーションテーブルにTrandataを追加する
・ログインに成功すると、管理サービスのホームページが表示されます。
抽出プロセスを追加
ソースPostgreSQLレプリケーションテーブルでDMLを実行する
PostgreSQLデプロイメントからOracleデプロイメントへの配布パスを作成する
- デプロイメント間のGoldenGate接続を作成する
- 2 つの Oracle GoldenGate デプロイメント間の接続を作成できる GoldenGate 接続タイプを作成します。
- OCI GoldenGateの概要ページの「接続」ページで、「接続の作成」をクリックします。名前と説明を入力し、適切なコンポーネントを選択します。
- 「次へ」をクリックして、接続の詳細ページに進みます。
- 接続の詳細ページで、
(オプション)資格情報(ユーザー名とパスワード)を入力します。
必要に応じて、GoldenGateデプロイメントの詳細を手動で入力することもできます。
- 接続がアクティブ状態になったら、接続を GoldenGate for PostgreSQL デプロイメントに割り当てます。
ディストリビューションパスのユーザーとパス接続を作成する
- GoldenGate for Oracle (ターゲット) デプロイメントでオペレーター ロールを持つユーザーを作成します。
- 管理サービスで、左側のメニューにある「ユーザー管理」をクリックします。「ユーザー」セクションの「+」をクリックしてユーザーを作成します。
- 「認証者」のドロップダウンから「パスワード」を選択し、ロールとして「オペレーター」を選択します。ユーザー名とパスワードを入力し、「送信」をクリックします。
- OCI GoldenGate for PostgreSQL デプロイメントでは、上記の手順で作成されたネットワーク ユーザーを参照する資格情報エイリアスとドメインを作成します。
ディストリビューションパスを作成する
OCI GoldenGate for PostgreSQL デプロイメントで、Distribution Service に移動します。「Distribution Path」セクションで「+」をクリックし、パス名と説明を入力します。「Next」をクリックします。
Replicatを作成する
- Replicat の作成に進む前に、ターゲット Oracle Database 23ai に Vector データ型のターゲット テーブルを作成します (まだ作成されていない場合)。
( "ID" NUMBER,
"NAME" VARCHAR2(100 BYTE),
"COORDINATES" VECTOR,
PRIMARY KEY ("ID"));
Oracle GoldenGateを介してPostgreSQLのARRAYベクターデータ型をOracleのベクターデータ型に複製することで、豊富な配列データとコアビジネスデータセットをシームレスに統合し、AIユースケースを強化します。このプロセスにより、企業はベクター埋め込みを取引データや顧客データと並べて保存できるようになり、高度な分析と機械学習をサポートする統合ビューを構築できます。データの一貫性とリアルタイムアクセスを確保することで、企業はモデルのトレーニングを改善し、より深い洞察を引き出し、より情報に基づいた意思決定を行うことができ、最終的にはAI駆動型アプリケーションにおけるイノベーションと競争優位性を高めることができます。
コメント
コメントを投稿