Create Download Request

创建文件下载任务。

前提条件

已启动数据读取通道,用于创建文件下载任务,且数据读取通道未启用跨源分析功能。详细信息,参见 下载文件

请求格式

POST https://{apigw-address}/data-federation/v2.0/channels/read/{channelId}/download-request

请求参数(URI)

名称 位置(Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 用户所属的组织ID。如何获取orgId信息>>
channelId Path 必需 String 通道ID。

请求参数(Body)

名称 必需/可选 数据类型 描述
taskName 必需 String 指定文件下载任务名称。
sourceName 必需 String 指定读通道绑定的数据源别名(目前支持HIVE(EnOS)数据源)。
querySql 必需 String 指定下载文件的SQL语句。
filePackageName 必需 String 指定下载文件的名称。
files 非必需 JSONObject 下载文件配置信息,详见 文件配置结构体
callbackURL 可选 String 通过 URL 回调下载结果,接口请求方法为 POST。返回参数详见 下载任务回调函数请求结构体
selfDefineQueuePara 可选 String 设置Hive下载任务参数,分隔符为 ;

文件配置结构体

名称 必需/可选 数据类型 描述
split 必需 Boolean 指定是否启用分区下载文件(true:分区;false:不分区)。
encoding 必需 String 指定文件编码方式(可选 utf-8 或 gbk)。
delimiter String Boolean 指定字段分隔符(可选 \t,、或 ;)。
fileHeader 必需 List<String> 指定文件表头,分隔符为 ,
fileRename 可选 List<JSONObject> 启用分区下载文件时,指定分区文件的名称,详见 分区文件名结构体

下载任务回调函数请求结构体

名称 数据类型 描述
id String 下载任务ID。
returnCode String 0:下载成功,返回 URL 为下载数据的链接;非 0:下载失败,返回的 URL 为对应下载失败的链接。
download_url String 如果成功,则返回文件下载路径。
log_url String 如果失败,则返回错误日志路径。
dataSize String 数据文件大小。

分区文件名结构体

名称 必需/可选 数据类型 描述
file1 必需 String 指定分区文件的名称。
file2 必需 String 指定分区文件的名称。
file3 必需 String 指定分区文件的名称。

响应参数

名称 数据类型 描述
data List<JSONObject> 返回文件下载任务信息,详见 下载任务信息结构体

下载任务信息结构体

名称 数据类型 描述
taskId String 创建的文件下载任务ID。

示例

请求示例

url: https://{apigw-address}/data-federation/v2.0/channels/read/{channelId}/download-request?orgId={}

method: POST

request body

{
  "taskName": "test_federation_download_openapi",
  "sourceName": "hive_enos"
  "querySql": "select * from students",
  "filePackageName": "studentsOpenAPI",
  "callbackURL":"http://localhost:8080",
  "selfDefineQueuePara":"set mapreduce.map.memory.mb=1024;set mapreduce.reduce.memory.mb=2048",
  "files": {
    "split": true,
    "encoding": "utf-8",
    "delimiter": ",",
    "fileHeader": [
      "c1",
      "c2",
      "c3",
      "c4",
      "c5",
      "c6"
    ],
    "fileRename": {
      "1": "group1",
      "2": "group2",
      "3": "group3",
      "4": "group4"
    }
  }
}

返回示例

{
  "msg": "OK",
  "code": 0,
  "data": {
    "taskId": "3049d82e949e47958246ff0136a77fba"
  }
}

SDK 示例


你可以在 Github 上获取数据联邦的 SDK 示例: