このドキュメントでは、MaxComputeをデータソースとして使用する場合のテーブルの追加プロセスについて説明します。
前提条件
MaxComputeについて理解するには、MaxComputeとはを参照してください。
MaxComputeデータテーブルを構成する前に、必要なテーブル権限を持っていることを確認してください。適切な権限(describe、select、download、フィールドラベル権限)を持つOpenSearchアカウントにログインします。承認ステートメントは次のとおりです。
-- アカウントを追加します
add user ****@aliyun.com;
-- アカウントに対応するテーブル権限を付与します
GRANT describe, select, download ON TABLE table_xxx TO USER ****@aliyun.com
-- ODPSはフィールド権限検証を有効にしているため、データを取得する際に高権限フィールドにアクセスできず、テーブルインデックスの構築に失敗します。この場合、アカウントにフィールドレベルのアクセス権限を付与する必要があります。
-- プロジェクト全体に権限を付与します
SET LABEL 3 to USER bs*******@aliyun.com
-- 単一のテーブルに権限を付与します
GRANT LABEL 3 ON TABLE table_xxx(col1, col2) TO ****@aliyun.com
検索エンジンバージョンでサポートされているMaxComputeテーブルフィールドタイプは、STRING、BOOLEAN、DOUBLE、BIGINT、DATETIMEです。
MaxComputeデータソースの構成
1. OpenSearch コンソールに移動し、左上で [OpenSearch 検索エンジンバージョン] に切り替え、インスタンス管理ページのリストで対応するインスタンスを見つけ、[操作] 列の [管理] をクリックします。
「構成に進む」ボタンをクリックして、インスタンスの構成を開始します。
2. テーブル管理インターフェースで、テーブル名、シャード数、データ更新リソース数など、テーブルの基本情報の構成を開始します。
構成の説明:
テーブル名: カスタマイズ可能ですが、project.tablenameの形式はサポートしていません。
データシャード: 各インデックステーブルでシャード数が一致している必要があります。または、少なくとも 1 つのインデックステーブルに単一のシャードがあり、その他は一貫性を保つ必要があります。シャードの総数は 256 の正の整数を超えてはなりません (インスタンスのデータノード数の 3 倍を超えないことを推奨します)。
データ更新のリソース数: データ更新に割り当てられるリソースの数。各インデックスは、デフォルトで 2 つの無料の 4 コア 8G 更新リソースを提供します。無料クォータを超える追加リソースは有料です。
3. データ同期: データソースを構成し、検証後に「次へ」をクリックします。
構成パラメータの説明:
フルデータソース: MaxCompute + APIを選択します
プロジェクト名: アクセスするターゲット MaxCompute プロジェクトの名前
AccessKey: Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID
AccessKey Secret: AccessKey ID に対応する AccessKey Secret
テーブル名: アクセスするターゲット MaxCompute テーブルの名前
パーティション: MaxCompute データソースにはパーティションキーを設定する必要があります。例: ds=20170626
自動インデックス再作成: 自動インデックス再作成タスクを有効にするかどうかを示します。有効にすると、データソースの変更が検出されたときに、現在のデータソースを参照するインデックステーブルが自動的に再構築されます
自動インデックス再作成が有効になっている場合、done テーブルを作成する必要があります。作成方法については、以下の「自動 インデックス再作成」をご参照ください。
4. フィールド構成: 完了後、「次へ」をクリックします。
5. インデックス構成: 完了後、「次へ」をクリックします。
6. 作成の確認: 「作成の確認」をクリックすると、システムは構成されたテーブルを自動的に作成します。
7. 変更履歴でテーブル作成の進捗状況を監視できます。
注:
フルデータソース: ユーザーのデータソース。インスタンス名_ユーザー定義名として指定されます。
プロジェクト名、AccessKey、AccessKey Secret、テーブル名、パーティション: ユーザーが MaxCompute データソースにアクセスするために必要なパラメーターです。
自動インデックス再作成: 自動インデックス再作成タスクを有効にするかどうかを示します。有効にすると、データソースの変更が検出されたときに、現在のデータソースを参照するインデックステーブルが自動的に再構築されます。
自動インデックス再作成が有効な場合は、done テーブルを作成する必要があります。作成方法については、以下の「自動インデックス再作成」をご参照ください。
自動インデックス再作成
データソース設定時に自動インデックス再作成を有効にすると、検索エンジンバージョンのインスタンスは、ユーザーの done テーブルの変更に基づいてインデックスを自動的に再構築します。
例: ユーザーの MaxCompute データテーブルが mytable で、パーティションが ds=20220113 の場合、検索エンジンバージョンのインスタンスは、毎日生成される新しいパーティション (完全なテーブルデータを含む) をスキャンし、新しいパーティションデータを取り込むためにインデックスを自動的に再構築する必要があります。このプロセスには、自動インデックス再作成 + done テーブル機能が必要です。操作手順は次のとおりです。
データソースを追加する際に、自動インデックス再作成を有効にします。
MaxComputeにdoneテーブルを作成します。ソーステーブル名がmytableで、パーティションキー名がdsであると仮定すると、doneテーブル名はmytable_doneになり、パーティションキー名もdsになります。2つのテーブルはMaxComputeに次のように表示されます。
odps:sql:xxx> show tables;
InstanceId: xxx
SQL: .
ALIYUN$xxx@aliyun.com:mytable # フルデータソーステーブル
ALIYUN$xxx@aliyun.com:mytable_done # 自動フルデータ制御用doneテーブル
doneテーブルを作成するためのステートメント:
create table mytable_done (attribute string) partitioned by (ds string);
mytable パーティション ds=20220114 が完了したら、done テーブルを設定して、検索エンジンバージョンインスタンスのインデックス再作成をトリガーします。
-- パーティションを追加します
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テーブルの最終的な内容は次のとおりです。
odps:sql:xxx> select * from mytable_done where ds=20220114 limit 1;
InstanceId: xxx
SQL: .
+-----------+----+
| attribute | ds |
+-----------+----+
| {"swift_start_timestamp":1642003200} | 20220114 |
+-----------+----+
done テーブルが自動完全信号データを受信すると、検索エンジンバージョンのインスタンスは done 信号をスキャンし、その後インデックス再作成プロセスをトリガーします。
注:
doneテーブルには少なくとも1つのパーティションキーが必要です。また、パーティションキー名はソーステーブルのパーティションキー名と一致する必要があります。
doneテーブルに追加されたパーティションは、ソーステーブルの既存のパーティションに対応している必要があります。たとえば、ソーステーブルにds="20220114"、ds="20220115"、ds="20220116"などのパーティションがある場合、doneテーブルに追加される新しいパーティションは、ソーステーブルのパーティションの範囲内にある必要があります。
注意事項
MaxComputeテーブル名にプロジェクト名を含めてはいけません。そうしないと、ビルドプロセス中にテーブル名が認識されずにエラーが発生します。
テーブル名は、テーブルが編集されると変更できません。
MaxComputeデータソースに指定されたテーブルは、パーティションテーブルである必要があります。
ユーザーがMaxComputeで作成したテーブルはフル入力として機能し、APIデータソースはリアルタイムデータのプッシュに使用されます。