OpenSearch では、3 種類のデータインジェスト方法を提供しています。最大限の柔軟性を実現する API または SDK を使用する方法、簡単なテストのためにコンソールで小規模なデータバッチをアップロードする方法、および RDS、MaxCompute、PolarDB などのクラウドデータソースからビジュアルインターフェイスを通じて自動同期を設定する方法があります。
フィールドタイプのマッピング
|
OpenSearch フィールドタイプ |
API データプッシュフィールドタイプ |
|
INT |
int または long |
|
INT_ARRAY |
int[] または long[] |
|
FLOAT |
float |
|
FLOAT_ARRAY |
float[] |
|
DOUBLE |
double |
|
DOUBLE_ARRAY |
double[] |
|
LITERAL |
string |
|
LITERAL_ARRAY |
string[] |
|
SHORT_TEXT |
string |
|
TEXT |
string |
|
TIMESTAMP |
long |
|
GEO_POINT |
|
APIによるデータプッシュ
-
コンソールのファイルアップロード機能はテスト用であり、大規模なデータアップロードには適していません。効率が低く、1 ファイルあたり 2 MB に制限されています。API または SDK によるデータプッシュのシステム制限の詳細については、「システム制限」をご参照ください。
インスタンス管理ページで、目的のインスタンスを見つけます。[操作] 列のドロップダウンメニューをクリックし、[ファイルをアップロード] を選択します。
-
API と SDK はデータソースプラグインをサポートしていないため、データをプッシュする前にデータを処理および構造化する必要があります。たとえば、API 経由で配列型のデータをプッシュする場合、string ではなく配列としてアップロードする必要があります。次の例を示します:
// アップロードするドキュメントデータを格納する Map オブジェクトを定義します。これはドキュメント 2 です。 Map<String,Object> doc2 =Maps.newLinkedHashMap(); doc2.put("id",1); String[] literal_arr2 ={"要素 1","要素 2"}; doc2.put("literal_arr", literal_arr2); -
API または SDK の使用に関する詳細については、次のリソースをご参照ください。
Java SDK:コミットプッシュデモ および プッシュデモ
PHP SDK:プッシュデモ および 検索付きプッシュデモ
Go SDK:行動データプッシュデモ および プッシュデモ
TypeScript/Node.js SDK:
@alicloud/opensearch-sdkパッケージをインストールします。npm install @alicloud/opensearch-sdkpushDocument インターフェイスを使用してデータをプッシュします。
import Client, { Config, Document, PushDocumentRequestModel } from '@alicloud/opensearch-sdk'; // AccessKey で認証します。 const config = new Config({ endpoint: 'opensearch-cn-beijing.aliyuncs.com', // データ API エンドポイント。 accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID, accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET, }); const client = new Client(config); // プッシュするドキュメントを構築します。 const docs = [ new Document({ cmd: 'ADD', fields: { id: '1', title: 'サンプルドキュメント', body: 'ドキュメントコンテンツ' }, }), ]; // アプリケーションの指定されたテーブルにデータをプッシュします。 const request = new PushDocumentRequestModel({ body: docs }); const response = await client.pushDocument('your_app_name', 'your_table_name', request); console.log(response.body);各リージョンのエンドポイントのフォーマットは
opensearch-cn-{region}.aliyuncs.comです。たとえば、China (Hangzhou) リージョンのエンドポイントはopensearch-cn-hangzhou.aliyuncs.comです。SDK 認証では、API キーではなく、Config オブジェクトを通じて渡される Alibaba Cloud AccessKey (AK/SK) を使用します。OpenSearch では、2 つの npm パッケージを提供しています。データ API (検索、データプッシュ、サジェスト) 用の
@alicloud/opensearch-sdkと、コントロール API (アプリケーション管理) 用の@alicloud/opensearch20171225です。データプッシュシナリオでは、@alicloud/opensearch-sdkを使用してください。
関連トピック
-
API または SDK を使用してデータをインポートする方法については、「コミットプッシュデモ」をご参照ください。
-
コンソールからファイルをアップロードする方法 (1 ファイルあたり 2 MB に制限) については、「チュートリアル」をご参照ください。
-
データソースからデータをインポートする方法については、「RDSデータソースの設定」をご参照ください。