导入数据(废弃)
功能介绍
该API用于将数据从文件导入DLI或OBS表,目前仅支持将OBS上的数据导入DLI或OBS中。
 
 
   - 当前接口已废弃,不推荐使用。
- 该API为异步操作。
- 导入数据时,可选择已存在的OBS桶路径或新建OBS桶路径,但只能指定一个OBS桶路径。
- 若需新建OBS桶,需遵守以下命名规则:
      - 需全局唯一,不能与已有的任何桶名称重复。
- 长度范围为3到63个字符,支持小写字母、数字、中划线(-)、英文句号(.)。
- 禁止两个英文句号(.)或英文句号(.)和中划线(-)相邻,禁止以英文句号(.)和中划线(-)开头或结尾。
- 禁止使用IP地址。
- 如果名称中包含英文句号(.),访问桶或对象时可能会进行安全证书校验。
 
- 导入源文件时,如果源文件中的某一列与目标表列类型不匹配,将会导致该行数据的查询结果为null 。
- 不支持并发导入同一张表。
调试
您可以在API Explorer中调试该接口。
URI
- URI格式:
- 参数说明 
    表1 URI参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 
请求消息
| 参数名称 | 是否必选 | 参数类型 | 说明 | 
|---|---|---|---|
| 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 | 表示需要导入到哪个分区。 
 | 
| conf | 否 | Array of Strings | 用户定义适用于此作业的配置参数。目前支持的配置项:“dli.sql.dynamicPartitionOverwrite.enabled”默认值为“false”,对于DataSource表,表示动态插入覆盖整表数据,为“true”表示覆盖指定分区数据。 
         说明: 
         对于Hive分区表的动态覆盖写,仅支持覆盖涉及到的分区数据,不支持覆盖整表数据。 | 
| 模式字符 | 日期或时间元素 | 示例 | 
|---|---|---|
| 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 | 
响应消息
| 参数名称 | 是否必选 | 参数类型 | 说明 | 
|---|---|---|---|
| is_success | 否 | Boolean | 请求发送是否成功。“true”表示请求发送成功。 | 
| message | 否 | String | 系统提示信息,执行成功时,信息可能为空。 | 
| job_id | 否 | String | 此SQL将生成并提交一个新的作业,返回作业ID。用户可以使用作业ID来查询作业状态和获取作业结果。 | 
| job_mode | 否 | String | 作业执行模式: 
 | 
请求示例
将存储在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"
}
 错误码
调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码。
 
  