
# 导入数据（废弃）
#### 功能介绍
该API用于将数据从文件导入DLI或OBS表，目前仅支持将OBS上的数据导入DLI或OBS中。
![](https://support.huaweicloud.com/api-dli/public_sys-resources/note_3.0-zh-cn.png)
- 当前接口已废弃，不推荐使用。
- 该API为异步操作。
- 导入数据时，可选择已存在的OBS桶路径或新建OBS桶路径，但只能指定一个OBS桶路径。
- 若需新建OBS桶，需遵守以下命名规则：
  - 需全局唯一，不能与已有的任何桶名称重复。
  
  - 长度范围为3到63个字符，支持小写字母、数字、中划线（-）、英文句号（.）。
  
  - 禁止两个英文句号（.）或英文句号（.）和中划线（-）相邻，禁止以英文句号（.）和中划线（-）开头或结尾。
  
  - 禁止使用IP地址。
  
  - 如果名称中包含英文句号（.），访问桶或对象时可能会进行安全证书校验。
   
- 导入源文件时，如果源文件中的某一列与目标表列类型不匹配，将会导致该行数据的查询结果为null 。
- 不支持并发导入同一张表。
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DLI/doc?api=ImportTable)中调试该接口。
#### URI
- URI格式： POST /v1.0/{project_id}/jobs/import-table
  
- 参数说明
  表1URI参数 
  | 参数名称       | 是否必选 | 参数类型   | 说明                                                                                     |
  |:---|:---|:---|:---|
  | project_id | 是    | String | 项目编号，用于资源隔离。获取方式请参考[获取项目ID](https://support.huaweicloud.com/api-dli/dli_02_0183.html)。 |
     
  
 
#### 请求消息
表2请求参数 
| 参数名称               | 是否必选 | 参数类型                                       | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| data_path          | 是    | String                                     | 导入的数据路径（当前仅支持导入OBS上的数据）。                                                                                                                                                                                                                                                                                                                                                                                                                |
| data_type          | 是    | String                                     | 导入的数据类型（当前支持csv、parquet、orc、json、avro数据类型）。 说明： 不支持导入Hive表生成的avro格式数据。                                                                                                                                                                                                                                                                                   |
| database_name      | 是    | String                                     | 导入表所属的数据库名称。                                                                                                                                                                                                                                                                                                                                                                                                                            |
| table_name         | 是    | String                                     | 导入表的名称。                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| with_column_header | 否    | Boolean                                    | 导入数据中的第一行数据是否包括列名，即表头。默认为"false"，表示不包括列名。导入CSV类型数据时可指定。                                                                                                                                                                                                                                                                                                                                                                                 |
| delimiter          | 否    | String                                     | 用户自定义数据分隔符，默认为逗号。导入CSV类型数据时可指定。                                                                                                                                                                                                                                                                                                                                                                                                         |
| quote_char         | 否    | String                                     | 用户自定义引用字符，默认为双引号。导入CSV类型数据时可指定。                                                                                                                                                                                                                                                                                                                                                                                                         |
| escape_char        | 否    | String                                     | 用户自定义转义字符，默认为反斜杠。导入CSV类型数据时可指定。                                                                                                                                                                                                                                                                                                                                                                                                         |
| date_format        | 否    | String                                     | 指定特定的日期格式，默认为"yyyy-MM-dd"。日期格式字符定义详见[表3]。导入CSV及JSON类型数据时可指定。                                                                                                                                                                                                                                                                                                                                           |
| bad_records_path   | 否    | String                                     | 作业执行过程中的bad records存储目录。设置该配置项后，bad records不会导入到目标表。                                                                                                                                                                                                                                                                                                                                                                                    |
| timestamp_format   | 否    | String  | 指定特定的时间格式，默认为"yyyy-MM-dd HH:mm:ss"。时间格式字符定义详见[表3]。导入CSV及JSON类型数据时可指定。                                                                                                                                                                                                                                                                                                                                  |
| queue_name         | 否    | String                                     | 指定执行该任务的队列。若不指定队列，将采用default队列执行操作。                                                                                                                                                                                                                                                                                                                                                                                                     |
| overwrite          | 否    | Boolean                                    | 是否覆盖写。默认为"false"，表示追加写。为"true"，表示覆盖写。                                                                                                                                                                                                                                                                                                                                                                                                   |
| partition_spec     | 否    | Object                                     | 表示需要导入到哪个分区。 - 不配置表示动态导入整表数据，导入的数据需要包含分区列的数据；  - 如果导入时，配置所有分区信息，则表示导入数据到指定分区，导入的数据不能包含分区列的数据；  - 如果导入时，配置了部分分区信息，而导入的数据必须包含非指定的分区数据，不能包含指定的分区数据，否则数据导入后，非指定的数据分区字段列会存在null值等异常值。   |
| conf               | 否    | Array of Strings                           | 用户定义适用于此作业的配置参数。目前支持的配置项："dli.sql.dynamicPartitionOverwrite.enabled"默认值为"false"，对于DataSource表，表示动态插入覆盖整表数据，为"true"表示覆盖指定分区数据。 说明： 对于Hive分区表的动态覆盖写，仅支持覆盖涉及到的分区数据，不支持覆盖整表数据。                                                                                                                                                                                                      |
   
 表3日期及时间模式字符定义 
| **模式字符** | **日期或时间元素** | **示例**                                |
|:---|:---|:---|
| G        | 纪元标识符       | AD                                    |
| y        | 年份          | 1996; 96                              |
| M        | 月份          | July; Jul; 07                         |
| w        | 年中的周数       | 27(该年的第27周)                           |
| W        | 月中的周数       | 2(该月的第2周)                             |
| D        | 年中的天数       | 189(该年的第189天)                         |
| d        | 月中的天数       | 10(该月的第10天)                           |
| u        | 星期中的天数      | 1 = 星期一, ..., 7 = 星期日                 |
| a        | am/pm 标记    | pm(下午时)                               |
| H        | 24小时数(0-23) | 2                                     |
| h        | 12小时数(1-12) | 12                                    |
| m        | 分钟数         | 30                                    |
| s        | 秒数          | 55                                    |
| S        | 毫秒数         | 978                                   |
| z        | 时区          | Pacific Standard Time; PST; GMT-08:00 |
   
#### 响应消息
表4响应参数 
| 参数名称       | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| is_success | 否    | Boolean | 请求发送是否成功。"true"表示请求发送成功。                                                                                                                                                                                                     |
| message    | 否    | String  | 系统提示信息，执行成功时，信息可能为空。                                                                                                                                                                                                         |
| job_id     | 否    | String  | 此SQL将生成并提交一个新的作业，返回作业ID。用户可以使用作业ID来查询作业状态和获取作业结果。                                                                                                                                                                            |
| job_mode   | 否    | String  | 作业执行模式： - async：异步  - sync：同步   |
   
#### 请求示例
将存储在OBS的csv类型的数据导入db2.t2。
```
{
    "data_path": "obs://home/data1/DLI/t1.csv",
    "data_type": "csv",
    "database_name": "db2",
    "table_name": "t2",
    "with_column_header": false,
    "delimiter": ",",
    "quote_char": ",",
    "escape_char": ",",
    "date_format": "yyyy-MM-dd",
    "timestamp_format": "yyyy-MM-dd'T'HH:mm:ss.SSSZZ",
    "queue_name": "queue2",
    "overwrite": false,
    "partition_spec":{
      "column1":  "2020-01-01",
      "column2":  "columnPartValue"  
     }
}
```
#### 响应示例
```
{
  "is_success": true,
  "message": "import data to table t2 started",
  "job_id": "6b29eb77-4c16-4e74-838a-2cf7959e9202",
  "job_mode":"async"
}
```
#### 状态码
状态码如[表5]所示。
 表5状态码 
| 状态码 | 描述       |
|:---|:---|
| 200 | 导入成功。    |
| 400 | 请求错误。    |
| 500 | 内部服务器错误。 |
   
#### 错误码
调用接口出错后，将不会返回上述结果，而是返回错误码和错误信息，更多介绍请参见[错误码](https://support.huaweicloud.com/api-dli/dli_02_0056.html)。
