页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 8 下一个 »

创建业务视图-SQL查询

  • 接口调用-方式1
/**
 * 创建业务视图-SQL查询示例
 */
public class createBizViewDemo {
	public static void main(String[] args) {
		String user = "admin"; // 用户名
		String password = "admin"; // 密码
		String smartbiURL = "http://10.10.31.49:11000/smartbi"; // Smartbi链接
		ClientConnector conn = null;
		try {
			conn = new ClientConnector(smartbiURL); // 创建Smartbi链接对象
            // 建立此连接时,就对smartbi进行了登录
			conn.open(user, password);
			// POST请求的请求体
			// pid必须是数据源中业务视图下的节点,包括业务视图节点和目录节点
			String body = "{\r\n" + "\"pid\": \"I8a8a4ca2017a18e018e0a2b3017a19209a7c13a3\",\r\n"
					+ "    \"name\": \"SQL查询1\",\r\n" + "    \"alias\": \"SQL查询1\",\r\n"
					+ "    \"sql\": \"select OrderID as a from orders\"\r\n" + "}";
			JSONObject json = JSONObject.fromString(body);
			// 创建业务视图-SQL查询
InvokeResult result = conn.remoteInvoke("AugmentedDataSetForVModule", "createDataModelBizView",
					new Object[] { json });
			if (result != null && result.isSucceed()) {
				JSONObject object = JSONObject.fromObject(result.getResult());
				String id = (String) object.optString("id");
				System.out.println("SQL查询的id: " + id);
			}
		} finally {
			if (conn != null) {
				conn.close();
			}
		}
	}
}


  • 接口调用-方式2(仅支持在已登录的情况下)

http://host:port/smartbi/smartbix/api/dataModel/createBizView

  • 接口请求类型

POST

  • 输入

DataModelBizViewCreatedVO

属性类型说明
pidStirng业务视图的父节点,必须是数据源中业务视图下的节点,包括业务视图节点和目录节点,如果不是会抛异常
idString业务视图的id
nameString业务视图的名称
aliasString业务视图的别名
sqlString业务视图的sql, 暂不支持参数
  • 返回值

CheckResult

属性类型说明
idStirng模型 id
errorCodeString错误码,成功时错误码、错误信息同时为空
errorMessageString错误信息,成功时错误码、错误信息同时为空
detailString错误详细信息,成功时错误码、错误信息同时为空

简单示例

{  
        "name": "SimpleModelDemo",
        "alias": "模型简单示例",
        "views": [{
                "name": "orders",
                "alias": "订单表",
                "type": "BASIC_TABLE",
                "define": {
                        "tableId": "TAB.northwind.null.orders"
                }
        }],
        "dimensions":[{
                "name": "ShipRegion",
                "alias": "区域",
                "viewName": "orders",
                "fieldName": "ShipRegion",
                "valueType": "STRING"
        }],
        "measures": [{
                "name": "Freight",
                "alias": "运费",
                "viewName": "orders",
                "aggregator": "sum",
                "fieldName": "Freight"
        }]
}

简单示例 2:SQL 私有查询

{  
        "name": "SimpleModelDemo2",
        "alias": "模型简单示例2",
        "views": [{
                "name": "orders",
                "alias": "订单表",
                "type": "SQL_VIEW",
                "define": {
                        "dataSourceId": "DS.notthwind",
                        "sql": " select * from orders"
                }
        }]
}

简单示例3:Java私有查询带参数

{  
        "name": "DataModel_java11",
        "alias": "DataModel_java11",
        "views": [{
                "name": "javaDemo",
                "alias": "java示例",
                "type": "JAVA_VIEW",
                "define": {
                        "className": "smartbi.composite.AccessibleFunctionQueryData",
                        "paramDefaultValues": {
                            "Department": "DEPARTMENT",
                            "UserName": "ADMIN"

                        }
                },"extractSetting": {
                    "type": "REALTIME"
                }
        }],
        "dimensions":[{
                "name": "FunctionAlias",
                "alias": "功能别名",
                "viewName": "javaDemo",
                "fieldName": "FunctionAlias",
                "valueType": "STRING"
        }, {
                "name": "UserAlias",
                "alias": "用户别名",
                "viewName": "javaDemo",
                "fieldName": "UserAlias",
                "valueType": "STRING"
        }],
        "measures": [{
                "name": "FunctionId",
                "alias": "功能ID",
                "viewName": "javaDemo",
                "aggregator": "count",
                "fieldName": "FunctionId"
        }]
}

简单示例4:Java私有查询带配置信息

{  
        "name": "DataModel_csv3",
        "alias": "DataModel_csv3",
        "views": [{
                "name": "javaDemo",
                "alias": "java示例",
                "type": "JAVA_VIEW",
                "define": {
                        "className": "smartbi.CSVJavaQuery",
                        "configs": {
                            "FileName": "D:/foodmart_store.csv",
                            "Encoding": "utf-8"

                                                }
                }
        }],
       "dimensions":[{
                "name": "store_street_address",
                "alias": "地址",
                "viewName": "javaDemo",
                "fieldName": "store_street_address",
                "valueType": "ASCII"
        }],
        "measures": [{
                "name": "store_number",
                "alias": "数量",
                "viewName": "javaDemo",
                "aggregator": "sum",
                "fieldName": "store_number"
        }]
}

简单示例5:SQL私有查询带参数

{
    "name": "SimpleModelDemo5",
    "alias": "SQL私有查询带参数",
    "views": [
      {
        "name": "orders",
        "alias": "订单表",
        "type": "SQL_VIEW",
        "define": {
          "dataSourceId": "DS.notthwind",
          "sql": " select * from orders where {[orderId = ${param}]}"
        },
        "parameters": [
          {
            "name": "param",
            "valueType": "STRING",
            "defaultValue": {
              "value": [
                [
                  "SQL参数默认值",
                  ""
                ]
              ],
              "dataSource": "DS.northwind"
            }
          }
        ]
      }
    ]
}

简单示例6:SQL私有查询带参数,有私有参数进行映射

{
    "name": "SimpleModelDemo6",
    "alias": "私有参数映射SQL参数",
    "views": [
      {
        "name": "orders",
        "alias": "订单表",
        "type": "SQL_VIEW",
        "define": {
          "dataSourceId": "DS.notthwind",
          "sql": " select * from orders where {[orderId = ${param}]}"
        },
        "parameters": [
          {
            "name": "param",
            "valueType": "STRING",
            "defaultValue": {
              "value": [
                [
                  "",
                  ""
                ]
              ],
              "dataSource": "DS.northwind"
            }
          }
        ]
      }
    ],
    "parameters": [
      {
        "visible": true,
        "name": "参数-1726717634521",
        "refMapping": [
          {
            "refViewName": "orders",
            "refParamName": "param"
          }
        ],
        "valueType": "STRING",
        "componentType": "LIST_SINGLE",
        "defaultType": "CONSTLIST",
        "defaultValue": {
          "value": [
            [
              "默认值真实值",
              "默认值显示值"
            ]
          ]
        },
        "standByType": "CONSTLIST",
        "standByValue": {
          "value": [
            [
              "备选值真实值",
              "备选值显示值"
            ]
          ]
        },
        "alias": "参数"
      }
    ]
}           

简单示例7:SQL私有查询带参数,有私有参数进行映射(私有参数含有SQL)

{
    "name": "SimpleModelDemo7",
    "alias": "私有参数含SQL映射SQL参数",
    "views": [
      {
        "name": "orders",
        "alias": "订单表",
        "type": "SQL_VIEW",
        "define": {
          "dataSourceId": "DS.notthwind",
          "sql": " select * from orders where {[orderId = ${param}]}"
        },
        "parameters": [
          {
            "name": "param",
            "valueType": "STRING",
            "defaultValue": {
              "value": [
                [
                  "",
                  ""
                ]
              ],
              "dataSource": "DS.northwind"
            }
          }
        ]
      }
    ],
    "parameters": [
      {
        "visible": true,
        "name": "参数-1726717634521",
        "refMapping": [
          {
            "refViewName": "orders",
            "refParamName": "param"
          }
        ],
        "valueType": "STRING",
        "componentType": "LIST_SINGLE",
        "defaultType": "SQL",
        "defaultValue": {
          "SQL": "select * from `orderdetails`",
          "nameColumn": "OrderID",
          "aliasColumn": "OrderID",
          "dataSource": "DS.northwind"
        },
        "standByType": "CONSTLIST",
        "standByValue": {
          "value": [
            [
              "备选值真实值",
              "备选值显示值"
            ]
          ]
        },
        "alias": "参数"
      }
    ]
}                 

简单示例8:创建树形私有参数

{
    "name": "SimpleModelDemo8",
    "alias": "创建树形私有参数",
    "views": [
      {
        "name": "orders",
        "alias": "订单表",
        "type": "SQL_VIEW",
        "define": {
          "dataSourceId": "DS.notthwind",
          "sql": " select * from orders where {[orderId = ${param}]}"
        },
        "parameters": [
          {
            "name": "param",
            "valueType": "STRING",
            "defaultValue": {
              "value": [
                [
                  "",
                  ""
                ]
              ],
              "dataSource": "DS.northwind"
            }
          }
        ]
      }
    ],
    "parameters": [
      {
        "visible": true,
        "name": "参数-1726717634521",
        "refMapping": [
          {
            "refViewName": "orders",
            "refParamName": "param"
          }
        ],
        "valueType": "STRING",
        "componentType": "TREE_SINGLE",
        "defaultType": "SQL",
        "defaultValue": {
          "SQL": "select * from `orderdetails`",
          "nameColumn": "OrderID",
          "aliasColumn": "OrderID",
          "dataSource": "DS.northwind"
        },
        "standByType": "SQL",
        "standByValue": {
            "SQL": "select * from `orderdetails`",
            "nameColumn": "OrderID",
            "aliasColumn": "OrderID",
            "dataSource": "DS.northwind",
            "pidColumn": "OrderID",
            "idColumn": "OrderID",
            "orderBy": [
                {
                    "colName": "ProductID",
                    "type": "asc"
                }
            ]
        },
        "rootType": "SQL",
        "rootValue": {
            "SQL": "select * from `orderdetails`",
            "nameColumn": "OrderID",
            "aliasColumn": "UnitPrice",
            "dataSource": "DS.northwind"
        },
        "alias": "参数"
      }
    ]
}                      

详细示例:2 表关联、定义层次、日期层次、计算度量、计算成员

注意:需要把注释去掉

{  
        "name": "ModelDemo",
        "alias": "模型示例",
        // 私有查询列表
        "views": [{
                "name": "orderdetails",
                "alias": "订单明细表",
                "type": "BASIC_TABLE",
                "define": {
                        "tableId": "TAB.northwind.null.orderdetails"
                }
                /*,
                "storeType": "EXTRACT",
                "extractSetting": {
                    "type": "FULL"
                }*/
        },{
                "name": "orders",
                "alias": "订单表",
                "type": "BASIC_TABLE",
                "define": {
                        "tableId": "TAB.northwind.null.orders"
                }
                /*,
                "storeType": "EXTRACT",
                "extractSetting": {
                    "type": "FULL"
                }*/
        }],
        // 层次结构列表
        "hierarchies": [{
            "name":"hierArea",
            "alias": "地区",
            "levels": [
                {
                    "viewName": "orders",
                    "name": "ShipRegionLevel",
                    "alias": "区域",
                    "fieldName": "ShipRegion",
                    "levelType": "LEVEL"
                },
                {
                    "viewName": "orders",
                    "name": "ShipProvinceLevel",
                    "alias": "省份",
                    "fieldName": "ShipProvince",
                    "levelType": "LEVEL"
                }
            ]
        }],
        // 日期层次结构列表
        "dateHierarchies": [{
            "name":"hierDate",
            "alias": "时间维度",
            "levels": [
                {
                    "viewName": "orders",
                    "name": "orderYear",
                    "alias": "年",
                    "fieldName": "OrderDate",
                    "levelType": "LEVEL_TIME_YEAR"
                },
                {
                    "viewName": "orders",
                    "name": "orderQuarter",
                    "alias": "季",
                    "fieldName": "OrderDate",
                    "levelType": "LEVEL_TIME_QUARTER"
                },
                {
                    "viewName": "orders",
                    "name": "orderMonth",
                    "alias": "月",
                    "fieldName": "OrderDate",
                    "levelType": "LEVEL_TIME_MONTH"
                },
                {
                    "viewName": "orders",
                    "name": "orderDay",
                    "alias": "日",
                    "fieldName": "OrderDate",
                    "levelType": "LEVEL_TIME_DAY"
                }
            ]
        }],
        // 维度结构列表
        "dimensions":[{
                "name": "ShipRegion",
                "alias": "区域",
                "viewName": "orders",
                "fieldName": "ShipRegion",
                "valueType": "STRING"
        }],
        // 表关系图
        "relationGraph": {
                "relations": [{
                        "srcViewName": "orderdetails",
                        "destViewName": "orders",
                        "linkType": "LEFTJOIN",
                        "fieldRelations": [{
                                "srcFieldName": "OrderID",
                                "destFieldName": "OrderID"
                        }]
                }]
        },
        // 度量列表
        "measures": [{
                "name": "Quantity",
                "alias": "Quantity",
                "viewName": "orderdetails",
                "aggregator": "sum",
                "fieldName": "Quantity"
        },{
                "name": "UnitPrice",
                "alias": "UnitPrice",
                "viewName": "orderdetails",
                "aggregator": "sum",
                "fieldName": "UnitPrice"
        }],
        // 计算度量列表
        "calcMeasures": [
            {
                "name":"calc1",
                "alias":"数量加1",
                "expression": "[Measures].[Quantity] + 1"
            }
        ],
        // 计算成员列表
        "calcMembers": [
            {
                "name":"north",
                "alias":"北方",
                "expression": "[hierArea].[东北] + [hierArea].[华北]",
                "hierName": "[ShipRegion]"
            }
        ]
}
  • 接口参数及其说明

pid:父节点 id;

post 内容的结构如下,详细说明如下:

DataModelVO 模型
属性类型说明
idString模型 id,更新时才需要填
nameString模型名称
aliasString模型别名
viewsLIst<DataModelViewVO>私有查询列表
measuresLIst<DataModelMeasureVO>度量列表
relationGraphDataModelRelationGraphVO表关系图
hierarchiesList<DataModelHierarchyVO>层次结构列表
dateHierarchiesList<DataModelDateHierarchyVO>基于日期字段生成时间层次列表
calcMeasuresLIst<DataModelCalcMeasureVO>计算度量列表
calcMembersLIst<DataModelCalcMemberVO>计算成员列表
namedSetsLIst<DataModelNamedSetVO>命名集列表
parametersLIst<DataModelParameterVO>私有参数列表
DataModelViewVO 私有查询
属性类型说明
nameString名称
aliasString别名
typeViewType类型:SQL_VIEW、JAVA_VIEW、BASIC_TABLE,分别代表SQL查询、Java查询、基础表 。以下暂不支持:PROC_VIEW、JS_VIEW、ETL_VIEW、EXCEL_VIEW、COMBINEDQUERY_VIEW、TIME_TABLE
defineObjectNode定义,有对应具体的 VO,如基础表为BasicTableViewDefineVO
storeTypeStoreType存储方式:DIRECT、EXTRACT,分别代表直连、抽取
extractSettingExtractSettingVO抽取设置
parametersList<DataModelParameterFieldVO>参数列表定义,支持设置SQL查询中参数的类型及默认值
ExtractSettingVO 抽取设置定义
属性类型说明
typeExtractType抽取方式:FULL、REALTIME,分别代表全量、按次抽取
DataModelParameterFieldVO 参数列表定义
属性类型说明
nameString参数名称
valueTypeValueType数据类型:INTEGER、DOUBLE、LONG、STRING等
defaultValueObjectNode参数类型,可参考案例5中的定义
BasicTableViewDefineVO 基础表定义
属性类型说明
tableIdString基础表 Id
SQLViewDefineVO SQL查询定义
属性类型说明
dataSourceIdString数据源 Id
sqlStringsql 语句
DataModelMeasureVO 度量
属性类型说明
nameString名称
aliasString别名
aggregatorString聚合方式:SUM、COUNT、 AVG、DISTINCT_COUNT、MAX、MIN
fieldNameString私有查询字段名
viewNameString私有查询名
DataModelRelationGraphVO 表关系图
属性类型说明
relations:List<RelationVO>表关系列表
RelationVO 表关系
属性类型说明
srcViewNameString名称
destViewNameString别名
linkTypeTableLinkType连接方式:LEFTJOIN、RIGHTJOIN、INNERJOIN、FULLJOIN,分别代表 1 对多、多对 1、1 对 1(内连接)、1 对 1(外连接)
fieldRelationsList<FieldRelationVO>私有查询字段名
FieldRelationVO 字段关系
属性类型说明
srcFieldNameString源字段名
destFieldNameString目标字段名
DataModelHierarchyVO 层次结构
属性类型说明
nameString名称
aliasString别名
levelsList<DataModelLevelVO>层次列表
DataModelLevelVO 层次
属性类型说明
nameString名称
aliasString别名
fieldNameString字段名
viewNameString私有查询名
levelTypeFieldTreeNodeType层次类型:LEVEL、LEVEL_TIME_YEAR、LEVEL_TIME_QUARTER、LEVEL_TIME_MONTH、LEVEL_TIME_WEEK、LEVEL_TIME_DAY、LEVEL_GEO,分别代表普通、年、季、月、周、日、地理层次
DataModelDateHierarchyVO 基于日期字段生成层次结构
属性类型说明
nameString名称
aliasString别名
levelsList<DataModelLevelVO>层次列表
DataModelCalcMeasureVO 计算度量
属性类型说明
nameString名称
aliasString别名
expressionString表达式
dataFormatString数据格式名,可以在公共设置-数据格式中查询需要的名
DataModelCalcMemberVO 计算成员
属性类型说明
nameString名称
aliasString别名
expressionString表达式
hierNameString层次结构名,如:[ShipRegion]
parentNameString父成员名:[ShipRegion].[All ShipRegions]
DataModelNamedSetVO 命名集
属性类型说明
nameString名称
aliasString别名
expressionString表达式
hierNameString层次结构名,如:[ShipRegion]
DataModelDimensionVO 字段属性
属性类型说明
viewNameString私有查询名
fieldNameString字段名
visibleString可见性
dataFormatString数据格式名,可以在公共设置-数据格式中查询需要的名
maskingRuleString脱敏规则
valueTypeValueType数据类型:INTEGER、DOUBLE、LONG、STRING 等
DataModelParameterVO 字段属性
属性类型说明
nameString私有查询名
aliasString字段名
visibleboolean可见性
valueTypeValueType控件类型:INPUT、INPUT_MULTIPLE、LIST_SINGLE、TREE_SINGLE(树形)等
defaultTypeParamExprType默认值类型:SQL、CONSTLIST(静态列表)
defaultValueObjectNode参数默认值,有静态列表与SQL,有ConstiListObjectNode 与 SQLObjectNode
standByTypeParamExprType备选值类型
standByValueObjectNode备选值
rootTypeParamExprType根节点类型
rootValueObjectNode根节点值
refMappingList<DataModelParameterMappingVO>映射表参数
ConstiListObjectNode字段属性
属性类型说明
valueList<List > value中有多个List,每个List有两个元素,第一个元素为真实值,第二个元素为显示值
SQLObjectNode字段属性
属性类型说明
SQLStringvalue中有多个List,每个List有两个元素,第一个元素为真实值,第二个元素为显示值
nameColumnString真实值字段
aliasColumnString显示值字段
dataSourceString查询SQL的数据源
pidColumnString父ID
idColumnStringID
orderByList<OrderByVO>排序信息
OrderByVO字段属性
属性类型说明
colNameString排序字段
typeString排序类型:asc、desc
DataModelParameterMappingVO字段属性
属性类型说明
refViewNameString引用参数所在表的名称
refParamNameString引用参数名
  • 无标签