このトピックでは、Data Lake Formation (DLF) データソースから Alibaba Cloud OpenSearch にマルチモーダルベクトルデータを同期する方法について説明します。OpenSearch は、DLF からテキスト、画像、ビデオデータを自動的に抽出し、組み込みモデルまたは AI Search Open Platform を使用してデータをベクトル化し、そのコンテンツを解析できます。このプロセスにより、非構造化データが構造化ベクターに変換され、OpenSearch に同期されます。このソリューションは、Paimon、Lance、Object Table などのデータ形式をサポートし、ベクトルディメンション、距離タイプ、検索アルゴリズムなどの設定を含む包括的なベクトルインデックス構成を提供します。これにより、画像検索、テキストセマンティック検索、ビデオ検索などのシナリオで効率的なマルチモーダル検索アプリケーションを構築できます。
前提条件
Data Lake Formation について学習します。
DLF でデータカタログ ID、データベース、およびデータテーブルを設定済みであること。これらはデータ同期に必要です。
DLF データソースを追加する
[インスタンス詳細] > [テーブル管理] ページで、[テーブルの追加] をクリックします。
[基本情報] ステップで、パラメーターを設定し、[次へ] をクリックします。
設定の詳細:
テーブル名:テーブルのカスタム名。
データシャード: 複数のインデックステーブルを作成する場合、すべてのインデックステーブルが同じシャード数を持つようにしてください。または、1 つのインデックステーブルが単一のシャードを持ち、他のすべてのインデックステーブルが同じシャード数を持つようにすることもできます。
データ更新用のリソース数: データ更新用のリソース数を指定します。デフォルトでは、各インデックスには 2 つのリソースの無料クォータが含まれています。各リソースは 4 CPU コアと 8 GB のメモリを提供します。無料クォータを超えるリソースは課金されます。詳細については、「Vector Search Edition の課金」をご参照ください。
シナリオテンプレート: Vector Search Edition には、Common Template、Vector: Image Search、Vector: Text Semantic Search、Vector: Video Search の 4 つの組み込みテンプレートが用意されています。Video Search テンプレートは、完全なデータソースとしての DLF をサポートしていません。
[データ同期] ステップで、データソースを設定します。データソースが正常に検証されたら、[次へ] をクリックします。
完全なデータソース: Data Lake Formation (DLF) を選択します。
テーブルフォーマット: Paimon、Lance、および Object Table がサポートされています。
Paimon は、リアルタイムのデータ更新、ストリーム処理、バッチ処理の両方をサポートするレイクハウスのテーブルフォーマットです。
Lance は AI 向けに設計されたベクターテーブルフォーマットで、ベクターに対する超高速の類似検索を可能にします。
Object Table は、SQL を使用してクラウドに保存されているさまざまなファイルを直接クエリして特定できるメタデータテーブルフォーマットです。
データカタログ: アクセスしたいターゲット DLF データカタログの ID。
データベース: ターゲットデータカタログ内のデータベース。
データテーブル: ターゲットデータベース内のデータテーブル。
説明既存のインスタンスで DLF データソースを使用するには、まずインスタンスのエンジンバージョンをスペックアップする必要があります。
Common Template および Vector: Image Search テンプレートは、Paimon、Lance、および Object Table フォーマットをサポートします。Vector: Text Semantic Search テンプレートは Paimon フォーマットをサポートします。
Paimon の主キーテーブルでは、データの追加、削除、変更、クエリが可能です。Paimon の追記専用テーブルでは、データの書き込みのみが可能で、データの変更や削除はできません。
相対パス: テーブルフォーマットが Object Table の場合に、オブジェクトテーブル内のファイルにアクセスするための相対パス。
データ形式: テーブルフォーマットが Object Table の場合、データ形式として ha3 または json を選択します。
タグ: データバージョンのタグ。タグを指定すると、OpenSearch はタグ付けされたデータを完全インポートに使用します。タグを指定しない場合、OpenSearch はテーブル内の最新データを完全インポートに使用します。
Paimon は、特定のスナップショットのメタデータとデータファイルを保持するためのタグ機能を提供します。これにより、スナップショットの期限切れによる既存データの損失を防ぎます。タグは、書き込みジョブに基づいて自動的に作成したり、処理時間やウォーターマークによって定期的に生成したり、手動で作成、削除、ロールバックしたりできます。データ保持ポリシーを設定することで、タグの最大数や保持期間をコントロールし、既存データがクエリ可能な状態を維持できます。詳細については、「Paimon Tags」をご参照ください。
Lance はタグを使用して、データセットの履歴内の特定のバージョンをマークします。これにより、特に頻繁に更新される機械学習ワークフローにおいて、データセットの進化を追跡しやすくなります。タグの作成、更新、削除、一覧表示が可能です。タグは新しいバージョンを作成するのではなく、別のフォルダにメタデータとして存在します。タグを持つバージョンは、`cleanup_old_versions` 操作によって削除されません。対応するバージョンを削除するには、まずタグを削除する必要があります。詳細については、「Lance Tags」をご参照ください。
データソースのチェック: データソースが正常に検証された後、次のステップに進むことができます。
[フィールド設定] ステップで、フィールドを設定し、[次へ] をクリックします。

主キーフィールドとベクターフィールドは必須です。主キーフィールドには、型を int または string に設定し、[主キー] オプションを選択します。ベクターフィールドには、型を float に設定し、[ベクターフィールド] オプションを選択します。
デフォルトでは、ベクターフィールドは float 型の多値フィールドです。
データの前処理が必要: String 型のフィールドの場合、このオプションを選択し、[設定] をクリックしてモデルを呼び出し、フィールド内のデータを前処理できます。

テキストデータの型
データの型: テキスト。
前処理テンプレート: 密ベクトル化、または密 + 疎ベクトル化。
サービスリスト:
前処理テンプレートを選択すると、そのテンプレート配下のサービスリストが自動的に表示されます。このリストには、テンプレートで使用されるモデルタイプが表示されます。
利用可能なモデルソース:
組み込みモデル: 限られた数のモデルタイプが利用可能で、無料で呼び出すことができます。
AI Search Open Platform: AI Search Open Platform は豊富なモデルセットを提供します。呼び出し回数に基づいて課金されます。詳細については、「課金方法と課金項目」をご参照ください。これらのモデルを使用する前に、まず AI Search Open Platform でワークスペースと API キーを有効化する必要があります。
カスタムモデル: カスタムモデルを作成するには、Vector Search Edition ページの [モデル] > [カスタムモデル] に移動し、[モデルの作成] をクリックします。詳細については、「カスタムモデル」をご参照ください。
イメージデータの型
データの型: イメージ。
データソース: Object Storage Service (OSS)、Base64 エンコーディング、または DLF-Object Table。
Object Storage Service (OSS): イメージを OSS フォルダに保存し、OSS パスを指定して直接インポートします。
Base64 エンコーディング: まずイメージをエンコードしてから、データベースに保存するか、API を使用して直接転送する必要があります。
DLF-Object Table: Data Lake Object Table フォーマットのテーブル。対応するデータカタログ、データベース、データテーブルを指定する必要があります。
前処理テンプレート: イメージのベクトル化、イメージコンテンツの解析、またはイメージコンテンツの解析 + イメージのベクトル化。
サービスリスト:
前処理テンプレートを選択すると、そのテンプレート配下のサービスリストが自動的に表示されます。このリストには、テンプレートで使用されるモデルタイプが表示されます。
利用可能なモデルソース:
組み込みモデル: 限られた数のモデルタイプが利用可能で、無料で呼び出すことができます。
AI Search Open Platform: AI Search Open Platform は豊富なモデルセットを提供します。呼び出し回数に基づいて課金されます。詳細については、「課金方法と課金項目」をご参照ください。これらのモデルを使用する前に、まず AI Search Open Platform でワークスペースと API キーを有効化する必要があります。
カスタムモデル: 必要に応じてモデルをカスタマイズできます。Vector Search Edition ページで、[モデル] > [カスタムモデル] に移動し、[モデルの作成] をクリックします。詳細については、「カスタムモデル」をご参照ください。
ビデオデータの型
データの型: ビデオ。
データソース: Object Storage Service (OSS)。
前処理テンプレート: ビデオ処理。
サービスリスト:
前処理テンプレートを選択すると、そのテンプレート配下のサービスリストが自動的に表示されます。このリストには、テンプレートで使用されるモデルタイプが表示されます。
利用可能なモデルソース:
組み込みモデル: 限られた数のモデルタイプが利用可能で、無料で呼び出すことができます。
AI Search Open Platform: AI Search Open Platform は豊富なモデルセットを提供します。呼び出し回数に基づいて課金されます。詳細については、「課金方法と課金項目」をご参照ください。これらのモデルを使用する前に、まず AI Search Open Platform でワークスペースと API キーを有効化する必要があります。
カスタムモデル: 必要に応じてモデルをカスタマイズできます。Vector Search Edition ページで、[モデル] > [カスタムモデル] に移動し、[モデルの作成] をクリックします。詳細については、「カスタムモデル」をご参照ください。
ソースデータにフィールドが欠落しているか空の場合、システムは自動的にデフォルト値を割り当てます。デフォルトでは、数値フィールドは 0 に、文字列フィールドは空の文字列に設定されます。カスタムのデフォルト値を指定することもできます。
[インデックススキーマ] ステップで、インデックスを設定し、[次へ] をクリックします。

ベクターインデックス:
ベクターディメンション: モデルによって生成されたベクターに基づいてベクターディメンションを選択します。
距離タイプ: モデルによって生成されたベクターに基づいて距離タイプを選択します。システムは、Squared Euclidean、Inner Product、Cosine の 3 つの距離タイプをサポートしています。
ベクトル検索アルゴリズム: モデルによって生成されたベクターに基づいてベクトル検索アルゴリズムを選択します。システムは、Linear、HNSW、QGraph、QC、DiskANN、CagraHnsw のベクターインデックスアルゴリズムをサポートしています。
リアルタイムインデックス: API 呼び出しを使用してプッシュされた増分データに対してリアルタイムインデックスを構築するかどうかを指定します。デフォルト値は true です。
クリックして展開し、詳細設定を構成することもできます。パラメーターの詳細については、「ベクターインデックスの共通設定」をご参照ください。

その他のインデックスタイプ: システムは `pk` フィールドと主キーインデックスを生成します。その他の非ベクターフィールドについては、デフォルトで同じ名前のインデックスが作成されます。
グローバルインデックス設定: 期限切れのドキュメントの自動クリーンアップを設定できます。この機能が有効な場合、現在の時刻とドキュメントのタイムスタンプの差が指定された有効期限を超えると、ドキュメントは自動的に削除されます。
[確認] ステップで、[確認] をクリックします。システムは設定されたテーブルを自動的に作成します。テーブルの作成進捗は [変更履歴] ページで確認できます。
テーブルのステータスが [使用中] に変わったら、[クエリテスト] ページでクエリテストを実行できます。
注意事項
DLF の Paimon テーブルに新しいデータが書き込まれると、OpenSearch は自動的に新しいデータのリアルタイムインデックス作成をトリガーします。API 呼び出しを使用して手動でデータを書き込むと、データ整合性の問題が発生する可能性があります。注意して進めてください。