Open Search アプリケーションにおけるデータソースの構成を指定します。これには、ソースシステムの種類、フィールドマッピング、データ処理プラグイン、および接続パラメーターが含まれます。
例
{
"tableName": "news",
"type": "rds",
"fields": [
{ "id": "id" },
{ "caption": "caption" },
{ "content": "content" },
{ "categoryId": "category_id" }
],
"plugins": {
"caption": {
"name": "HTMLTagRemover",
"parameters": {}
},
"content": {
"name": "HTMLTagRemover",
"parameters": {}
}
},
"keyField": "id",
"parameters": {
"filter": "",
"instanceId": "rm-abc",
"dbName": "my_db",
"dbTableName": "my_table",
"dbUser": "my_user",
"dbPassword": "my-password",
"autoSync": true
}
}構造
| フィールド | 型 | 説明 |
|---|---|---|
tableName | String | ソースシステム内のテーブル名です。 |
type | String | データソースの種類です。有効な値は、rds、odps、opensearch、および polardb です。parameters で必須となるフィールドは、この値によって決定されます。 |
fields[] | Object | ソーステーブルと送信先テーブル間のフィールドマッピングです。各エントリは {key: value} の形式であり、key はソースフィールド名、value は送信先フィールド名です。 |
plugins | Object | インデックス作成前に特定のフィールドに適用されるデータ処理プラグインです。各キーは送信先フィールド名であり、各値はPlugin オブジェクトです。 |
keyField | String | データソーステーブルのプライマリキーです。 |
parameters | Object | データソースの接続および同期パラメーターです。必須フィールドは type の値によって異なります。詳細については、「rds」、「odps」、「opensearch」、および「polardb」をご参照ください。 |
Plugin
プラグインは、ソースフィールドの値を送信先フィールドにマップする前に処理します。
例
{
"name": "HTMLTagRemover",
"parameters": {}
}構造
| フィールド | 型 | 説明 |
|---|---|---|
name | String | 適用するプラグインです。有効な値は、JsonKeyValueExtractor、MultiValueSpliter、KeyValueExtractor、StringCatenateExtractor、および HTMLTagRemover です。 |
parameters | Object | プラグインの設定です。必須フィールドは name の値によって異なります。下記の各プラグインセクションをご参照ください。 |
JsonKeyValueExtractor
JSON を含むソースフィールドから指定されたキーの値を抽出し、その抽出値を送信先フィールドに書き込みます。プラグインの各インスタンスでは、1 つのキーのみを抽出できます。
例
{
"key": "my_field"
}構造
| フィールド | 型 | 説明 |
|---|---|---|
key | String | JSON ソースフィールドから抽出するキーです。 |
MultiValueSpliter
デリミタを使用してソースフィールドの値を複数の値に分割し、結果として得られた値を配列要素として送信先フィールドに書き込みます。
送信先フィールドはARRAY型である必要があります。非表示文字をデリミタとして使用する場合は、Unicode エスケープシーケンス(例:\u001D)で指定してください。
例
{
"seperator": "|"
}構造
| フィールド | 型 | 説明 |
|---|---|---|
seperator | String | ソースフィールドの値を分割する際に使用するデリミタです。 |
KeyValueExtractor
キーと値のペアを含むソースフィールドから指定されたキーの値を抽出し、その抽出値を送信先フィールドに書き込みます。デリミタの指定は任意です。
例
{
"key": "my_field",
"fieldSep": ";",
"kvSep": ":"
}構造
| フィールド | タイプ | 説明 |
|---|---|---|
key | String | 値を抽出するキーです。 |
fieldSep | String | 複数のキーと値のペアを区切るデリミタです。 |
kvSep | String | キーとその値を区切るデリミタです。 |
StringCatenateExtractor
複数の送信先フィールドの値を指定したコネクタで連結し、結果を単一の文字列としてターゲットフィールドに書き込みます。
このプラグインは整数型のフィールドを連結できません。文字列型のフィールドの使用を推奨します。sources にリストアップされたすべてのフィールドは、送信先フィールドである必要があります。例
{
"connector": "-",
"sources": "id,title"
}構造
| フィールド | 型 | 説明 |
|---|---|---|
connector | String | 連結されたフィールド値の間に挿入される文字列です。 |
sources | String | 連結対象の送信先フィールド名をカンマで区切ったリストです。 |
HTMLTagRemover
ソースフィールドの値から HTML タグを除去し、プレーンテキスト形式の結果を送信先フィールドに書き込みます。追加のパラメーターは不要です。
データソースの種類別パラメーター
parameters オブジェクトには、接続および同期設定が含まれます。必須フィールドは type の値によって異なります。
rds
ApsaraDB RDS インスタンスに接続します。
例
{
"instanceId": "rds-instance-id",
"dbName": "my_db",
"dbTableName": "my_table",
"dbUser": "my_user",
"dbPassword": "my_passwd",
"filter": "",
"autoSync": true
}構造
| フィールド | 型 | 説明 |
|---|---|---|
instanceId | 文字列 | RDS インスタンスの ID。 |
dbName | 文字列 | データベースの名前。 |
dbTableName | 文字列 | データベース内のテーブルの名前。 |
dbUser | 文字列 | データベースへの接続に使用されるアカウント。 |
dbPassword | 文字列 | データベースへの接続に使用されるパスワード。 |
filter | 文字列 | 同期する行を制限するフィルター条件。 サポートされている演算子:<、>、=、!=、>=、<=。 複数の条件はカンマ (,) で区切ります。 |
autoSync | ブール値 | 自動データ同期を有効にするかどうかを指定します。 有効な値:true と false。 |
odps
MaxCompute (ODPS) テーブルに接続します。
例
{
"projectName": "my_project",
"tableName": "my_table",
"partition": "",
"done": "no",
"donePrefix": "",
"timestamp": ""
}構造
| フィールド | 型 | 説明 |
|---|---|---|
projectName | String | MaxCompute プロジェクトの名前。 |
tableName | String | テーブルの名前。 |
partition | String | 読み取り元のパーティション。パーティション構文の詳細については、「MaxCompute データソースの設定」をご参照ください。 |
done | String | データのエクスポートが完了したことを通知するために DONE ファイルを使用するかどうかを指定します。有効な値:no および yes。 |
donePrefix | String | DONE ファイルのプレフィックス。done が yes に設定されている場合に必須です。 |
timestamp | String | 完全なデータインポートのタイムスタンプ。 |
opensearch
別の Open Search アプリケーションをデータソースとして使用します。
例
{
"appId": "12345678",
"tableName": "my_table",
"appType": "standard",
"filter": ""
}構造
| フィールド | 型 | 説明 |
|---|---|---|
appId | String | ソース Open Search アプリケーションの ID です。 |
tableName | String | ソースアプリケーション内のテーブル名です。 |
appType | String | ソースアプリケーションの種類です。有効な値は、standard、advance、および enhanced です。standard は標準アプリケーションを示します。advance は旧世代の高度アプリケーションを示します。enhanced は現世代の高度アプリケーションを示します。新規アプリケーションでは advance の種類は使用できません。 |
filter | String | 同期対象のレコードを制限するフィルター条件です。サポートされる演算子は、<、>、=、!=、>=、および <= です。複数の条件はカンマ (,) で区切ります。 |
polardb
PolarDB クラスターに接続します。
例
{
"clusterId": "my_cluster_id",
"dbName": "my_db",
"dbTableName": "my_table",
"aliyunUserId": "123455789",
"dbUser": "my_user",
"dbPassword": "my_passwd",
"autoSync": true,
"filter": "id>100"
}構造
| フィールド | 型 | 説明 |
|---|---|---|
clusterId | String | PolarDB クラスターの ID です。 |
dbName | String | データベース名です。 |
dbTableName | String | テーブル名です。 |
aliyunUserId | String | Alibaba Cloud アカウントの ID です。 |
dbUser | String | データベースへの接続に使用するアカウントです。 |
dbPassword | String | データベースへの接続に使用するパスワードです。 |
autoSync | Boolean | 自動データ同期を有効にするかどうかを指定します。有効な値は、true および false です。 |
filter | String | 同期対象の行を制限するフィルター条件です。サポートされる演算子は、<、>、=、!=、>=、および <= です。複数の条件はカンマ (,) で区切ります。 |