すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:MaxCompute データソース

最終更新日:Apr 25, 2026

このトピックでは、MaxCompute データソースの設定方法について説明します。

前提条件

  • MaxCompute(旧称 ODPS)の基本的な理解があること。MaxCompute が初めての場合は、こちらで詳細をご確認ください

  • 必要なテーブル権限を保有していること。MaxCompute テーブルにアクセスするアカウントには、対象テーブルに対する describeselect、および download 権限と、フィールドのラベル権限が必要です。

以下の文を使用して権限を付与します。

-- ユーザーを追加します。
add user ****@aliyun.com;

-- ユーザーに必要なテーブル権限を付与します。
GRANT describe,select,download ON TABLE table_xxx TO USER ****@aliyun.com
GRANT describe,select,download ON TABLE table_xxx_done TO USER ****@aliyun.com

-- MaxCompute ではフィールドレベルの権限が必要です。高権限フィールドを含むすべてのフィールドに対してこれらの権限を付与しない場合、インデックスビルドが失敗します。
-- Project 内のすべてのテーブルに権限を付与します。
SET LABEL 3 to USER ****@aliyun.com

-- 特定のテーブルに権限を付与します。
GRANT LABEL 3 ON TABLE table_xxx(col1, col2) TO ****@aliyun.com
  • OpenSearch Vector Search Edition は、MaxCompute テーブルの以下のフィールドタイプをサポートしています:STRING、BOOLEAN、DOUBLE、BIGINT、DATETIME。

説明

CREATE TABLE 文およびパラメーター構成の詳細については、「MaxCompute データソースの CREATE TABLE 文」をご参照ください。

MaxCompute データソースの設定

1. OpenSearch コンソールにログインします。左上隅で OpenSearch Vector Search Edition を選択します。インスタンス管理 ページでご利用のインスタンスを見つけ、[操作] 列の [管理] をクリックします。

  1. 2. 左側のナビゲーションウィンドウで、[構成センター] > [データソース構成] を選択します。[データソースの追加] をクリックし、MaxCompute を選択して、次のパラメーターを設定します:データソース名ProjectAccessKey IDAccessKey Secretテーブルパーティションキー自動インデックス再構築

3. パラメーターを設定後、[検証] をクリックします。検証が成功すると、[OK] ボタンがクリック可能になります。

4. データソースを追加後、インデックススキーマを構成し、インデックステーブルを追加する必要があります。詳細については、「インデックステーブルの追加」をご参照ください。

5. インデックステーブルの構成後、構成更新を適用し、インデックスを再構築して本番クラスターで利用可能にする必要があります。詳細については、「構成の更新」をご参照ください。

注:

  • データソース名:データソースの名前。名前は instance_name_custom_name 形式に従う必要があります。

  • ProjectAccessKey IDAccessKey Secretテーブルパーティションキー:MaxCompute データソースにアクセスするために必要なパラメーター。

  • 自動インデックス再構築:有効にすると、データソースが変更された際に、そのデータソースを参照するすべてのインデックステーブルのインデックスが自動的に再構築されます。

  • 自動インデックス再構築を有効にする場合、done table を作成する必要があります。詳細については、「自動インデックス再構築」をご参照ください。

自動インデックス再構築

done table の目的:データソースの自動インデックス再構築を有効にすると、ご利用の OpenSearch Vector Search Edition インスタンスは done table をモニターし、done table が更新されるたびにインデックス再構築をトリガーします。

:パーティションキー ds=20220113 でパーティション化された mytable という名前の MaxCompute データテーブルがあるとします。初期インデックスビルド後、毎日新しいパーティションがフルロードとして生成されると仮定します。このとき、OpenSearch Vector Search Edition インスタンスに新しいパーティションを検出し、自動的にインデックス再構築をトリガーさせて新しいデータをプルさせたい場合、done table を使用した自動インデックス再構築が必要です。

手順

1. データソースを追加する際、自動インデックス再構築 を有効にします。

2. MaxCompute に done table を作成します。データテーブル名が mytable でパーティションキーが ds の場合、done table の名前は mytable_done とし、パーティションキーも ds とする必要があります。MaxCompute 上での両テーブルの表示は次のとおりです:

odps:sql:xxx> show tables;
InstanceId: xxx  
SQL: .                                                                                              

ALIYUN$****@aliyun.com:mytable          # フルロード用のデータテーブル
ALIYUN$****@aliyun.com:mytable_done     # 自動フルロードをトリガーする done table

done table の作成文:

create table mytable_done (attribute string) partitioned by (ds string);

3. mytable テーブルに新しいパーティション ds=20220114 のデータが生成された後、done table を更新して OpenSearch Vector Search Edition インスタンスでインデックス再構築をトリガーします。

-- パーティションを追加します。
alter table mytable_done add if not exists partition (ds="20220114");

-- 自動フルロードをトリガーする信号データを挿入します。
insert into table mytable_done partition (ds="20220114") select '{"swift_start_timestamp":1642003200}';

done table の最終的な内容は次のとおりです:

odps:sql:xxx> select * from mytable_done where ds=20220114 limit 1;
InstanceId: xxx  
SQL: .                                                                                              
+-----------+----+
| attribute | ds |
+-----------+----+
| {"swift_start_timestamp":1642003200} | 20220114 |
+-----------+----+

信号データが done table に挿入されると、OpenSearch Vector Search Edition インスタンスがその信号を検出し、自動的にインデックス再構築をトリガーします。

重要
  • done table には少なくとも 1 つのパーティションキーが必要であり、そのパーティションキーの名前はデータテーブルのパーティションキーと同じである必要があります。たとえば、データテーブルのパーティションキーが ds の場合、done table のパーティションキーも ds である必要があります。

  • done table には、attribute という名前の STRING 型フィールドが 1 つ含まれている必要があります。

  • done table に追加するパーティションは、すでにデータテーブルに存在している必要があります。たとえば、データテーブルに ds="20220114"ds="20220115"ds="20220116" のパーティションが存在する場合、done table に追加する新しいパーティションは、これらの既存パーティションのいずれかである必要があります。

  • done table にデータを挿入する際、attribute フィールドの値は {"swift_start_timestamp":1642003200} のような JSON 形式の文字列である必要があります。タイムスタンプは、増分データ取り込みの開始ポイントを指定します。

MaxCompute データソースの編集

  1. データソース構成 ページで、編集したいデータソースを見つけ、[操作] 列の [変更] をクリックします。

  1. データソースの編集 ページで、ProjectAccessKey IDAccessKey Secretテーブルパーティションキー などのパラメーターを変更します。

パラメーターを変更後、[検証] をクリックします。検証が成功したら、[OK] をクリックして変更を保存します。

  1. データソースを変更後、構成更新を適用し、インデックスを再構築して本番クラスターで変更を有効にする必要があります。詳細については、「構成の更新」をご参照ください。

説明

1 日に複数回のフルロードを許可するため、パーティション粒度を時間単位(例:yyyyMMddHH2022011314 など)に設定してください。

MaxCompute データソースの削除

  1. 1. データソース構成 ページで、削除したいデータソースを見つけ、[操作] 列の [削除] をクリックします。

  1. 2. [削除] をクリックすると、システムはそのデータソースがインデックステーブルから参照されているかどうかをチェックします。

  • データソースがどのインデックステーブルからも参照されていない場合、[OK] をクリックして削除します。

  • データソースがインデックステーブルから参照されている場合、エラーが報告されます。

システムは次のメッセージを表示します:「データソースはインデックステーブルから参照されています。インデックステーブルを削除するか関連付けを解除してから、データソースを削除してください。」

データソースを削除する前に、そのデータソースを参照するすべてのインデックステーブルを先に削除する必要があります。詳細については、「インデックステーブルの削除」をご参照ください。

注意事項

  • データソースの作成後に名前を変更することはできません。

  • MaxCompute は外部テーブルをサポートしていません。内部テーブルを使用する必要があります。

  • MaxCompute データソースとして構成するテーブルは、パーティションテーブルである必要があります。

  • MaxCompute で生成されたテーブルをフルロードに使用し、API データソースを使用してリアルタイムデータをプッシュできます。