让决策更智能
新一代智能数据分析平台

数据上传/下载

观远产品部发表于:2021年03月21日 21:35:59更新于:2021年07月07日 14:34:49

1. 数据上传

    通过API将数据上传到观远数据分析平台。

    home_url:要上传数据的观远数据分析平台主地址

1.1. 用户名密码方式登录获取合法Token

    URL

$home_url/public-api/sign-in

    method

POST

    Parameters

NameLocation类型含义是否必填备注
Content-TypeHeaderString内容类型
domainBodyString域名在观远系统中的域名,非网址的域名
emailBodyString登录的邮箱如果开启了账号登录模式则该参数不传,传loginId和对应的内容
passwordBodyString密码原始密码经过Base64编码后的字符串

    Header 示例

{
    "Content-Type": "application/json; charset=utf-8"
}

    POST Body 示例

{
  "domain":"demo",
  "email":"123@456.com",
  "password":"my_password_base64_encoded"
}

    注意:参数中password需要base64 encode。

    Response

{
  "result":"ok",
  "response":
  {
    "token":"guanyuan token", /* 该token在后面调用其他接口时使用 */
    "expireAt":"2018-02-06 00:11:12.13"
  }
}

1.2. 上传数据

    URL

$home_url/public-api/upload-dataset

    method

POST

    Parameters

NameLocation类型含义是否必填备注
Content-TypeHeaderString内容类型
X-Auth-TokenHeaderString登录用的Token调用登录API获取
tableNameBodyString数据集名称
dsIdBodyString数据集ID若tableName有重名可以指定dsId
overwriteExistingDataBodyBoolean是否覆盖原始数据
默认为false,即追加数据
columnsBodyJSON设置上传数据集各列属性
name:列名 type:字段类型 isPrimaryKey:是否是主键
allColumnsSpecifiedBodyBoolean是否选择所有列

dataBodyJSON待上传的数据
displayTypeBodyString标识的格式

batchFinishBodyBoolean是否最后一批
batchFinish 设为true会更新该数据集,注意不要频繁更新数据集。

    Header 示例

{
    "Content-Type": "application/json"
    "X-Auth-Token": "guanyuan token"
}

    POST Body 示例

{
  "tableName": "my_table_name",        /* 必选,如果需要向已存在数据集追加数据,设置相同的tableName即可。*/
  "overwriteExistingData": false,      /* 可选,默认为false,设置为true时,先删除原来的数据,再上传。*/
  "columns": [                         /* 可选,设置各字段 */
    {
      "name": "column1",
      "type": "string",                /* 可选, 如果没有设置, 则系统会自动读取前1000行来推测其列的数据类型,  string, integer, double, timestamp, long, short, float, date */
      "isPrimaryKey": true             /* 可选,默认为false,设置主键,设置了primaryKey后,多次上传时会更新原有数据,否则,会追加到原有数据后 */
    }
  ],
  "allColumnsSpecified": false,        /* 可选,默认false。为false时,会自动检查data中的字段并推测类型上传到观数,为true时,表示columns中指定了所有字段,那么,data中的多余字段会过滤掉。 */
  "data": [
    {
      "column1": "data1_1",
      "column2": "data1_2"
    },
    {
      "column1": "data2_1",
      "column2": "data2_2"
    }
  ],
  "displayType": "CSV",               /* 可选,标示在观数的显示格式,包括 CSV, EXCEL, DATAFUSION, DATAFLOW, MYSQL, KR3000, PUBLIC, WEIXIN, POSTGRESQL, GREENPLUM, CARD*/
  "batchFinish": false                /* 可选,默认为false,分批上传时,表示是否是最后一批。设置为false时,不更新行数,也不刷新card缓存 */
}

    Response

{
    "result": "ok",
    "response": {
        "status": "finish",
        "dsId": "c5bf77bf02ef54b848164c1a"
    }
}

2. 数据下载(接口返回数据上限5w行)

2.1 获取数据集下载授权

$home_url/api/data-source/{dsId}/data-fetch-token?action={action}

    method

GET

Parameters

NameLocation类型含义是否必填备注
dsIdPathString数据集ID授权的目标数据集ID,在Web端打开对应的数据集,可以在地址栏里获取,为长度为24的字符串
actionPathSting授权动作缺省:如果数据集已经被授权则返回已有token,否则创建新token;
reset:更新数据集已有授权token,返回新token;
disable:授权被清除
Content-TypeHeaderString内容类型
tokenHeaderString登录用的Token调用登录API获取

    您可以使用以上接口调用的方式获得数据集授权token。由于该token是长期有效的,很多时候你可能并不需要在程序里反复获取,因此也可以在浏览器端登录系统后,输入以上接口地址获得授权token,并将token固化在您获取数据的程序内。 鉴于授权token是长期有效的,请注意数据安全,妥善保管。若发生token泄露,可调用以上接口,将action设置为reset进行重置。

    Response样例

{
    "dataFetchToken":"guanyuan_data_fetch_token"
}

2.2 数据下载

$home_url/public-api/data-source/{dsId}/token/{token}

    method

Post

    Parameters

NameLocation类型含义是否必填备注
dsIdPathString数据集ID目标数据集ID
tokenPathString授权token用于数据获取的token,即为以上2.1中获得的token
colsBodyArray需获取的列指定欲获取的列
filtersBodyJSON过滤条件指定过滤条件,包括name,filterType,filterValue name:过滤的列名; filterType:过滤类型;filterValue:过滤值

    说明:

  • 该api一次最多返回5万行数据,若数据集较大,请指定过滤条件

  • 如果cols和filters都没有指定,则请求返回数据集所有列和行。注意,即使两个参数都没有指定,请求体也不能省略,即{}

  • 其中,filterType支持以下形式: GT (>), GE (>=), LT (<), LE(<=), EQ (==), NE (!=), IN (IN LIST), NI (NOT IN LIST), STARTSWITH, NOT_STARTSWITH, ENDSWITH, NOT_ENDSWITH, CONTAINS, NOT_CONTAINS,

    IS_NULL, NOT_NULL

    POST Body示例

{
    "cols": ["Category", "Item", "Price"],
    "filters": [
        {
            "name": "Price",
            "filterType" : "GT",
            "filterValue" : ["100"]
        }
    ]
}

    Response

{
    "result": "ok",
    "response": {
        "columns": [
            "Category",
            "Item",
            "Price"
        ],
        "data": [
            [
                "Electronics",
                "Apple TV",
                "200"
            ],
            [
                "Books",
                "Red and Black",
                "128"
            ],
            [
                "Electronics",
                "Iphone X",
                "800"            
            ],
            [
                "Books",
                "The story of the stone",
                "256"
            ],
        ]
    }
}


    您需要登录后才可以回复