1. 从表数据集

1.1. 从表数据集说明

1.1.1. 从表数据集定义

需要用某个数据集 b 扩充数据集 a 的字段时,需要创建一个从表数据集 c ,从表数据集 c 的主表是 a,基础表是 b。从表数据集是对一个数据集的引用,只存在于主表的关系中,不可独立使用。

从表数据集结构说明

从表数据集结构和数据集的结构基本相同,详情见数据集结构说明。下表列出从表数据集的特殊结构。 | 字段 | 类型 | 描述 | |---------------------------------------|------------|--------------------------| | options.extendOptions | OBJECT | 从表数据集的引用定义 | | options.extendOptions.baseId | INTEGER | 从表数据集的基础数据集 | | options.extendOptions.upstreamId | INTEGER | 从表数据集的上游数据集,可以是主表或者其它从表数据集 | | options.extendOptions.joinType | STRING | 上游数据集与从表数据集的多表联合关系,见多表联合类型 | | options.extendOptions.joinExpr | HE | 多表联合的关联表达式 | | options.extendOptions.cardinality | OBJECT | 上游数据集对当前数据集的基数关系,见关联关系基数说明 |

多表联合类型说明

状态值 意义
LEFT_JOIN 左联接
RIGHT_JOIN 右联接
INNER_JOIN 内联接
FULL_JOIN 全联接
CROSS_JOIN 交叉联接
LEFT_LOOP_JOIN 左嵌套循环联接,sql server 数据集特有的

关联关系基数说明

状态值 意义
ONE_TO_ONE 1 对 1
ONE_TO_MANY 1 对 多
MANY_TO_ONE 多 对 1
MANY_TO_MANY 多 对 多

1.2. 接口说明

1.2.1. 创建从表数据集

请求URL

POST /api/apps/{appId}/extend-datasets

需要认证:是

请求参数

URL 参数
字段 类型 是否必须 说明
appId INTEGER 是 指定在appId对应的应用中创建数据集
Request Body 参数

见从表数据集结构说明。

返回对象的格式说明

字段 类型 说明
version STRING 当前系统版本哈希值
data OBJECT 见从表数据集结构说明

接口示例: 创建从表数据集

POST /api/v1/apps/1/extend-datasets

{
    "options":{
        "extendOptions":{
            "baseId":2,
            "upstreamId":1,
            "joinType":"LEFT_JOIN",
            "joinExpr":{"kind":"function","op":"=","args":[{"kind":"field","op":"id","dataset":1},{"kind":"field","op":"id"}]}
        }
    },
    "mainDataset":1
}

返回

{
    "version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
    "data": {
        "id": 3,
        "createdBy": 1,
        "createdAt": "2020-05-21 11:22:58",
        "updatedBy": 1,
        "updatedAt": "2020-05-21 11:22:58",
        "appId": 1,
        "options": {
            "extendOptions": {
                "baseId": 2,
                "upstreamId": 1,
                "joinType": "LEFT_JOIN",
                "joinExpr": {
                    "kind": "function",
                    "op": "=",
                    "args": [
                        {
                            "kind": "field",
                            "op": "id",
                            "dataset": 1
                        },
                        {
                            "kind": "field",
                            "op": "id"
                        }
                    ]
                }
            }
        },
        "datasetAcl": {
            "level": "FULLACCESS",
            "dataFilters": []
        },
        "mainDataset": 1
    }
}

1.2.2. 查询主表数据集的从表数据集列表

请求URL

GET /api/apps/{appId}/extend-datasets/{datasetId}

需要认证:是

请求参数

URL 参数
字段 类型 是否必须 说明
appId INTEGER 是 指定在appId对应的应用中创建数据集
datasetId INTEGER 是 指定主表数据集ID
joinExcept STRING 否 是否需要从表数据集的schema信息,默认是需要,不需要就传 schema
needMainDataset BOOL 否 是否需要主表信息,默认是否, 需要就传true
needHideField BOOL 否 是否需要隐藏字段,默认是是, 不需要隐藏字段就传否

返回对象的格式说明

字段 类型 说明
version STRING 当前系统版本哈希值
data OBJECT 见从表数据集结构说明

接口示例: 查询主表数据集的从表数据集列表

GET /api/v1/apps/1/extend-datasets/1?joinExcept=schema&needMainDataset=true

返回

{
    "version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
    "data": [
        {
            "id": 3,
            "title": "2",
            "appId": 2613,
            "options": {
                "cache": false,
                "totalSize": 0,
                "rowCount": 0,
                "refreshHours": [],
                "refreshMinute": 0,
                "transpose": false,
                "header": 0,
                "padHeader": false,
                "extendOptions": {
                    "baseId": 2,
                    "upstreamId": 1,
                    "joinType": "LEFT_JOIN",
                    "joinExpr": {
                        "kind": "function",
                        "op": "=",
                        "args": [
                            {
                                "op": "id",
                                "kind": "field",
                                "dataset": 1
                            },
                            {
                                "op": "id",
                                "kind": "field"
                            }
                        ]
                    }
                },
                "metrics": [],
                "schema": []
            },
            "datasetAcl": {
                "level": "FULLACCESS",
                "dataFilters": []
            },
            "hsVersion": 0,
            "mainDataset": 1,
            "importSwitchable": false,
            "refreshSchema": true,
            "emptyDataset": false
        },
        {
            "id": 1,
            "title": "A_IVT_MOVIE",
            "createdBy": 1,
            "createdAt": "2020-05-21 11:02:56",
            "updatedBy": 1,
            "updatedAt": "2020-05-21 11:02:57",
            "visible": true,
            "appId": 2613,
            "options": {
                "cache": false,
                "type": "connection",
                "totalSize": 57404,
                "rowCount": 250,
                "rowCountValid": true,
                "connectionTitle": "250-pg",
                "refreshHours": [],
                "refreshMinute": 0,
                "connectionId": 261,
                "connectionCategory": "Database",
                "origin": "postgresql",
                "table": "A_IVT_MOVIE",
                "path": [
                    "public"
                ],
                "transpose": false,
                "header": 0,
                "padHeader": false,
                "storageType": "postgresql",
                "dialectOptions": {
                    "dialectName": "PostgresqlDialect",
                    "majorVersion": 10,
                    "minorVersion": 4
                },
                "storageConnectionId": 261,
                "storageConnectionTitle": "250-pg",
                "metrics": []
            },
            "importType": 0,
            "importStatus": 0,
            "importOptions": {},
            "status": 3,
            "refreshStats": {
                "refreshAt": "2020-05-21 11:02:57",
                "executeRefreshAt": "2020-05-21 11:02:57",
                "executeRefreshRowCountAt": 1590030177503
            },
            "datasetAcl": {
                "level": "FULLACCESS",
                "dataFilters": []
            },
            "hsVersion": 5,
            "creator": {
                "id": 1,
                "name": "trial",
                "email": "trial@hengshi.io"
            },
            "updater": {
                "id": 1,
                "name": "trial",
                "email": "trial@hengshi.io"
            },
            "importSwitchable": false,
            "type": "connection",
            "refreshSchema": false,
            "origin": "postgresql",
            "public": true,
            "emptyDataset": false
        }
    ]
}

1.2.3. 编辑从表数据集

请求URL

PUT /api/apps/{appId}/extend-datasets/{datasetId}

需要认证:是

请求参数

URL 参数
字段 类型 是否必须 说明
appId INTEGER 是 指定从表数据集所在的 appId
datasetId INTEGER 是 指定从表数据集的 id
Request Body 参数

见从表数据集结构说明。

返回对象的格式说明

字段 类型 说明
version STRING 当前系统版本哈希值
data OBJECT 从表数据集的id

接口示例: 编辑从表数据集

PUT /api/v1/apps/1/extend-datasets/3

{
    "options":{
        "extendOptions":{
            "baseId":2,
            "upstreamId":1,
            "joinType":"LEFT_JOIN",
            "joinExpr":{"kind":"function","op":"=","args":[{"kind":"field","op":"id","dataset":1},{"kind":"field","op":"id"}]}
        }
    },
    "mainDataset":1,
    "title":"电影1"
}

返回

{
    "version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
    "data": 3
}

1.2.4. 删除从表数据集

请求URL

DELETE /api/apps/{appId}/extend-datasets/{datasetId}

需要认证:是

请求参数

URL 参数
字段 类型 是否必须 说明
appId INTEGER 是 指定从表数据集所在的 appId
datasetId INTEGER 是 指定从表数据集的 id

返回对象的格式说明

字段 类型 说明
version STRING 当前系统版本哈希值
data OBJECT 成功 或者 失败

接口示例: 删除从表数据集

DELETE /api/v1/apps/1/extend-datasets/{datasetId}

返回

{
    "version": "3.2-SNAPSHOT@@git.commit.id.abbrev@#null",
    "code": 0,
    "msg": "success"
}

results matching ""

    No results matching ""

    数据集字段 文件数据集