メタデータエンティティをバッチで作成します。同じバッチ内のすべてのエンティティは同じタイプである必要があります。現在、カスタムエンティティタイプと拡張テーブルタイプ(データベース/テーブルに対応)のみがサポートされています。
操作説明
DataWorks Professional Edition 以上のエディションが必須です。
今すぐお試しください
テスト
RAM 認証
|
アクション |
アクセスレベル |
リソースタイプ |
条件キー |
依存アクション |
|
dataworks:BatchCreateMetaEntities |
create |
*すべてのリソース。
|
なし | なし |
リクエスト構文
POST HTTP/1.1
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| Entities |
array<object> |
必須 |
エンティティのリスト。最大値は 5 つのエンティティです。同じバッチ内のすべてのエンティティは同じ entityType を持つ必要があります。 |
[] |
|
array<object> |
任意 |
エンティティオブジェクト。 |
||
| EntityType |
string |
必須 |
エンティティタイプ。同じバッチ内のすべてのエンティティは同じタイプである必要があります。以下のタイプがサポートされています。
|
custom_entity-customer_api |
| Name |
string |
必須 |
エンティティ名。名前には大文字、小文字、数字、アンダースコア (_) を含めることができます。先頭は英字である必要があり、長さは最大 64 文字です。 |
api_001 |
| Comment |
string |
任意 |
コメント。 |
これはコメントです |
| Attributes |
object |
任意 |
エンティティ属性。複雑な値は JSON 文字列としてシリアライズする必要があります。 |
|
|
string |
任意 |
エンティティ属性。 |
key1 |
|
| CustomAttributes |
object |
任意 |
カスタム属性値。キーはカスタム属性識別子であり、値は現在単一の値のみをサポートしています。 重要 ここで使用されるカスタム属性は、CreateCustomAttribute 操作を呼び出して事前に作成しておく必要があります。たとえば、API を呼び出して ID custom-attribute:owner_name のカスタム属性を作成した後、ここで {'owner_name': ['Bob']} を設定してカスタム属性の構成を完了できます。 |
|
|
array |
任意 |
カスタム属性値のリスト。 |
||
|
string |
任意 |
カスタム属性値。 |
value1 |
拡張データベース
EntityType を custom_xxx-database に設定します。ここで xxx は既に作成済みの custom_xxx-table 拡張 EntityDef に由来します。
属性
| 属性キー | 必須 | タイプ/形式 | 説明 |
parentMetaEntityId | はい | String | 親インスタンス ID。インスタンスレベルである必要があり、catalog/database/schema/table/column を含めることはできません。 |
technicalMetadata.location | いいえ | String | データベースのストレージ場所。 |
拡張テーブル
EntityType を custom_xxx-table に設定します。テーブルのカラムも Attributes.columns を通じてここで登録する必要があります。
属性
| 属性キー | 必須 | タイプ/形式 | 説明 |
parentMetaEntityId | はい | String | 親データベース ID。データベースレベルである必要があります。 |
tableType | いいえ | String | テーブルタイプ。デフォルト値: TABLE。 |
partitionKeys | いいえ | JSON Array string | パーティションキー(例: ["dt"])。 |
technicalMetadata.location | いいえ | String | ストレージ場所。 |
technicalMetadata.compressed | いいえ | Boolean string or JSON boolean | データが圧縮されているかどうかを指定します。 |
technicalMetadata.inputFormat | いいえ | String | InputFormat。 |
technicalMetadata.outputFormat | いいえ | String | OutputFormat。 |
technicalMetadata.serializationLibrary | いいえ | String | SerDe クラス。 |
technicalMetadata.parameters | いいえ | JSON Object string | パラメーター情報(例: {"retention":"30"})。 |
columns | いいえ | JSON Array string | インラインカラムリスト。テーブルと一緒に拡張カラムを登録するために使用されます。 |
Attributes.columns
columns は Attributes 内の JSON Array 文字列です。配列内の各オブジェクトは以下のフィールドをサポートしています。
| カラム項目キー | 必須 | タイプ/形式 | 説明 |
name | はい | String | カラム名。空の場合、カラムはスキップされます。 |
type | はい | String | カラムタイプ。欠落している場合、エラー attributes.columns[i].type が報告されます。 |
comment | いいえ | String | カラムのコメント。 |
position | いいえ | Integer | カラムの位置。指定しない場合、配列の順序に基づいてデフォルト値 i + 1 が設定されます。 |
partitionKey | いいえ | Boolean | カラムがパーティションキーであるかどうかを指定します。 |
primaryKey | いいえ | Boolean | カラムが主キーであるかどうかを指定します。 |
customAttributes | いいえ | Object | カラムのカスタム属性値。 |
例。
拡張データベースの作成
{
"Entities": [
{
"EntityType": "custom_demo-database",
"Name": "ods",
"Comment": "ODS データベース",
"Attributes": {
"parentMetaEntityId": "custom_demo:demo_source",
"technicalMetadata.location": "oss://bucket/ods"
},
"CustomAttributes": {
"biz_owner": ["data_team"]
}
}
]
}
拡張テーブルの作成とカラムの登録
{
"Entities": [
{
"EntityType": "custom_demo-table",
"Name": "order_fact",
"Comment": "注文ファクトテーブル",
"Attributes": {
"parentMetaEntityId": "custom_demo-database:demo_source::ods",
"tableType": "TABLE",
"partitionKeys": "[\"dt\"]",
"technicalMetadata.location": "oss://bucket/ods/order_fact",
"technicalMetadata.compressed": "true",
"technicalMetadata.parameters": "{\"retention\":\"30\",\"bizDomain\":\"trade\"}",
"columns": "[{\"name\":\"id\",\"type\":\"BIGINT\",\"comment\":\"主キー\",\"position\":1,\"primaryKey\":true,\"customAttributes\":{\"security_level\":[\"P1\"]}},{\"name\":\"dt\",\"type\":\"STRING\",\"comment\":\"パーティション日付\",\"position\":2,\"partitionKey\":true}]"
},
"CustomAttributes": {
"biz_owner": ["data_team"]
}
}
]
}
注意事項
拡張データベースの
parentMetaEntityIdはインスタンスレベルである必要があります(例:custom_demo:demo_source)。拡張テーブルの
parentMetaEntityIdはデータベースレベルである必要があります(例:custom_demo-database:demo_source::ods)。親子エンティティは同じ拡張ファミリーに属している必要があります。たとえば、
custom_demo-tableの親はcustom_demo-databaseである必要があります。columnsはテーブル作成時にのみ指定できます。BatchCreateMetaEntitiesの呼び出しを使用してcustom_xxx-columnを個別に作成することはできません。拡張エンティティの書き込みパスでは、
MetaEntityDef.AttributeDefsに基づいて未知のAttributesキーを厳密にブロックしません。未知のキーは通常無視されます。
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
object |
レスポンススキーマ。 |
||
| RequestId |
string |
リクエスト ID。 |
9E0C8E7A-C6BE-5A73-9562-2A030A80E8C6 |
| Success |
boolean |
リクエストが成功したかどうかを示します。一部のエンティティが失敗した場合でも、値は true です。個々の結果については Results[].Success および Results[].ErrorMessage を確認してください。 |
true |
| Results |
array |
エンティティ作成結果のリスト。各エントリは、作成が成功したかどうかと失敗理由を示します。 |
|
| MetaEntityWriteResult |
バッチ作成結果。 |
例
成功レスポンス
JSONJSON
{
"RequestId": "9E0C8E7A-C6BE-5A73-9562-2A030A80E8C6",
"Success": true,
"Results": [
{
"Name": "entity_01",
"EntityType": "custom_entity-demo",
"Id": "custom_entity-demo:entity_01",
"Success": true,
"ErrorMessage": "The specified parameters are invalid."
}
]
}
エラーコード
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。