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 ""

    数据集字段 文件数据集