
# 创建或更新数据集 - createOrUpdateDataset
#### 功能介绍
本接口用于创建或更新数据集。
```
- 根据是否存在id字段,判断是创建还是更新数据集
    - 返回数据集ID
```
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-tics/tics_05_0025.html)。
#### URI
POST /v1/agents/datasets
#### 请求参数
表1请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                     |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用接口获取用户Token接口获取。 |
| X-Language   | 是    | String | 根据自己偏好的语言来获取不同语言的返回内容，zh-cn或者en_us                                     |
| Content-Type | 是    | String | 消息体的类型（格式），必选，默认取值为"application/json"，有其他取值时会在具体接口中专门说明。               |
   
表2请求Body参数 
| 参数               | 是否必选 | 参数类型                                                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| id               | 否    | String                                                                                  | 数据集id。 支持数字，英文字母，下划线，长度0-32                                                                                                                                                                                                                                                                                                      |
| name             | 是    | String                                                                                  | 数据集名称。 支持英文字母，数字，下划线，特殊符号，只能以英文字母开头，特殊符号不包括!.\*?_$ 长度0-128                                                                                                                                                                                                                              |
| description      | 否    | String                                                                                  | 描述                                                                                                                                                                                                                                                                                                                                                                        |
| columns          | 是    | Array of [AgDatasetColumnVo] objects | 数据集字段信息                                                                                                                                                                                                                                                                                                                                                                   |
| connector_id     | 是    | String                                                                                  | 连接器id。 支持数字，英文字母，下划线，长度0-32                                                                                                                                                                                                                                                                                                      |
| connector_name   | 是    | String                                                                                  | 连接器名称。 支持英文字母，数字，下划线，特殊符号，只能以英文字母开头，特殊符号不包括!.\*?_$ 长度0-128                                                                                                                                                                                                                              |
| data_type        | 是    | String                                                                                  | 连接器数据类型 1.RDS--云数据库类型 2.MYSQL--MySQL类型 3.DWS--高斯数据库类型 4.MRS--MapReduce数据类型 5.ORACLE--ORACLE数据类型 6.LOCAL_CSV--本地数据类型 |
| ag_dataset_table | 否    | [AgDatasetTableVo] object             | 数据集表信息                                                                                                                                                                                                                                                                                                                                                                    |
| ag_dataset_local | 否    | [AgDatasetLocalVo] object             | 本地数据集信息                                                                                                                                                                                                                                                                                                                                                                   |
| ext_columns      | 否    | Array of [AgDatasetColumnVo] objects | 额外字段信息                                                                                                                                                                                                                                                                                                                                                                    |
   
 表3AgDatasetTableVo 
| 参数         | 是否必选 | 参数类型   | 描述                                                                   |
|:---|:---|:---|:---|
| data_id    | 否    | String | 数据集id。 支持数字，英文字母，下划线，长度0-32 |
| db_schema  | 是    | String | schema名称                                                             |
| table_name | 是    | String | 表名                                                                   |
   
 表4AgDatasetLocalVo 
| 参数                 | 是否必选 | 参数类型                                                                                  | 描述                                                                                                            |
|:---|:---|:---|:---|
| data_id            | 否    | String                                                                                | 数据集id。 支持数字，英文字母，下划线，长度0-32                                          |
| file_type          | 是    | String                                                                                | 数据集类型。CSV.csv类型、DIR.目录                                                                                        |
| delimiter          | 是    | String                                                                                | csv文件分隔符                                                                                                      |
| is_header_exist    | 是    | Boolean                                                                               | 数据文件是否包含表头                                                                                                    |
| data_file_path     | 是    | String                                                                                | 数据文件地址                                                                                                        |
| id_file_path       | 否    | String                                                                                | id文件地址                                                                                                        |
| config_file_path   | 否    | String                                                                                | 配置文件地址                                                                                                        |
| auto_generate_data | 否    | Boolean                                                                               | 是否自动生成数据，即纵向联邦学习样本对齐之后的流程是否使用样本对其结果自动过滤。                                                                      |
| ext                | 否    | [LocalDatasetExtEntity] object | 扩展信息，包含multihot配置信息，样例："\[{"features":"x1,x2,x3","field_size":50},{"features":"x4,x5,x6","field_size":120}\]" |
   
 表5LocalDatasetExtEntity 
| 参数                | 是否必选 | 参数类型                                                                            | 描述           |
|:---|:---|:---|:---|
| multihot_settings | 否    | Array of [MultiHotGroup] objects | multihot配置信息 |
   
 表6MultiHotGroup 
| 参数         | 是否必选 | 参数类型             | 描述                  |
|:---|:---|:---|:---|
| features   | 否    | Array of strings | 用","连接的一组MultiHot特征 |
| field_size | 否    | Integer          | 一组特征的取值种类总数         |
   
 表7AgDatasetColumnVo 
| 参数                   | 是否必选 | 参数类型    | 描述                                                                                                                                                                                              |
|:---|:---|:---|:---|
| comments             | 否    | String  | 字段备注                                                                                                                                                                                            |
| data_id              | 否    | String  | 数据集id。 支持数字，英文字母，下划线，长度0-32。                                                                                                                           |
| column_name          | 是    | String  | 字段名称                                                                                                                                                                                            |
| data_type            | 否    | String  | 字段类型。数值类型：SMALLINT、INTEGER、BIGINT、FLOAT、DOUBLE、DECIMAL，字符串类型：STRING，日期时间类型：TIMESTAMP、DATE，二进制数据类型：TINYINT，逻辑判断类型：BOOLEAN                                                                        |
| sql_col_privacy_type | 否    | String  | sql数据集字段隐私分类。 1.UNIQUE_ID--唯一标识 2.SENSITIVE--敏感 3.NON_SENSITIVE--非敏感 |
| fl_label_type        | 否    | String  | 字段标签分类:UNIQUE_ID.唯一标识,FEATURE.特征,LABEL.标签,FILTER.过滤字段                                                                                                                                           |
| privacy_policy       | 否    | String  | 字段数据处理隐私策略。 1.MASK--掩码 2.NONE--不处理                                                                            |
| privacy_policy_ext   | 否    | String  | 字段数据隐私处理具体描述                                                                                                                                                                                    |
| feature_type         | 否    | String  | 特征类型 1.CONTINUOUS--连续型 2.DISCRETE--离散型 3.MULTIHOT--multihot型         |
| field_size           | 否    | Integer | 只有离散类型特征支持该属性，表示离散特征取值范围                                                                                                                                                                        |
   
#### 响应参数
**状态码：200**
表8响应Body参数 
| 参数 | 参数类型   | 描述                                                                  |
|:---|:---|:---|
| id | String | 数据集id。 支持数字，英文字母，下划线，长度32。 |
   
#### 请求示例
- 创建本地连接器数据集(LOCAL_CSV)
  ```
  post https://x.x.x.x:12345/v1/agents/datasets
  {
    "name" : "test",
    "connector_id" : "connector1",
    "connector_name" : "localConnector",
    "data_type" : "LOCAL_CSV",
    "description" : "本地连接器数据集",
    "columns" : [ {
      "column_name" : "id",
      "data_type" : "string",
      "fl_label_type" : "UNIQUE_ID"
    }, {
      "column_name" : "user_id",
      "data_type" : "integer",
      "fl_label_type" : "FEATURE",
      "feature_type" : "DISCRETE",
      "field_size" : 193
    }, {
      "column_name" : "movie_id",
      "data_type" : "integer",
      "fl_label_type" : "FEATURE",
      "feature_type" : "DISCRETE",
      "field_size" : 187
    }, {
      "column_name" : "genres_0",
      "data_type" : "integer",
      "fl_label_type" : "FEATURE",
      "feature_type" : "MULTIHOT"
    }, {
      "column_name" : "genres_1",
      "data_type" : "integer",
      "fl_label_type" : "FEATURE",
      "feature_type" : "MULTIHOT"
    }, {
      "column_name" : "dummy_genres_0",
      "data_type" : "integer",
      "fl_label_type" : "FEATURE",
      "feature_type" : "MULTIHOT"
    }, {
      "column_name" : "dummy_genres_1",
      "data_type" : "integer",
      "fl_label_type" : "FEATURE",
      "feature_type" : "MULTIHOT"
    } ],
    "ag_dataset_local" : {
      "delimiter" : ",",
      "is_header_exist" : true,
      "data_file_path" : "/xx/",
      "id_file_path" : "",
      "config_file_path" : "",
      "dataset_id" : "",
      "auto_generate_data" : true,
      "dataset_name" : "test",
      "ext" : {
        "multihot_settings" : [ {
          "features" : [ "genres_0", "genres_1" ],
          "field_size" : 17
        }, {
          "features" : [ "dummy_genres_0", "dummy_genres_1" ],
          "field_size" : 10
        } ]
      }
    }
  }
  ```
  
- 创建数据集(RDS)
  ```
  post https://x.x.x.x:12345/v1/agents/datasets
  {
    "name" : "test",
    "connector_id" : "4501a0d9fc474c4aa3a035580734a234",
    "connector_name" : "rds",
    "data_type" : "RDS",
    "description" : "is a test ",
    "ag_dataset_table" : {
      "db_schema" : "demo1",
      "table_name" : "dim_enterprise"
    },
    "columns" : [ {
      "column_name" : "credit_no",
      "data_type" : "STRING",
      "comments" : "企业号（企业社会信用代码）",
      "sql_col_privacy_type" : "NON_SENSITIVE",
      "privacy_policy" : "NONE"
    }, {
      "column_name" : "ent_name",
      "data_type" : "STRING",
      "comments" : "企业名称",
      "sql_col_privacy_type" : "NON_SENSITIVE",
      "privacy_policy" : "NONE"
    } ]
  }
  ```
  
- 创建数据集(DWS)
  ```
  post https://x.x.x.x:12345/v1/agents/datasets
  {
    "name" : "test",
    "connector_id" : "57386dc0761b4e3bbaae5015bc0b1bbc",
    "connector_name" : "dws",
    "data_type" : "DWS",
    "description" : "",
    "ag_dataset_table" : {
      "db_schema" : "pmk",
      "table_name" : "pmk_configuration"
    },
    "columns" : [ {
      "column_name" : "config_param_name",
      "data_type" : "STRING",
      "comments" : "",
      "sql_col_privacy_type" : "NON_SENSITIVE",
      "privacy_policy" : "NONE"
    }, {
      "column_name" : "config_value",
      "data_type" : "STRING",
      "comments" : "",
      "sql_col_privacy_type" : "NON_SENSITIVE",
      "privacy_policy" : "NONE"
    } ]
  }
  ```
  
 
#### 响应示例
**状态码：200**
创建或更新数据集成功
```
{
  "id" : "9c8eb77a731b455cb4183d170fcfc8ff"
}
```
#### 状态码
| 状态码 | 描述         |
|:---|:---|
| 200 | 创建或更新数据集成功 |
   
