本例以 MySQL 数据库为例。

2.1 连接 FineDB 数据库

2.1.1 为 FineBI 设置外接数据库

1)新建「finedb」数据库,数据库名必须为「finedb」,设置默认字符集排序规则为 utf_bin( mysql 数据库需要设置排序规则为 utf8_bin),如下图所示:

2) FineBI 连接外接数据库,如下图所示:

3)在 FineBI 中新建数据连接,连接到外接数据库,测试连接成功,点击保存,如下图所示:

详情参见:配置数据连接 。

4)在数据准备界面可查看数据库以及数据库表,如下图所示:

5)在外接数据库中新建「fine_data_dictionary」数据库表,表字段、类型、注释如下图所示:

注:这张表是数据字典维护表, IT 和业务维护的数据字典会存入这张表中。其中业务包名、表名、字段名是必须的,其余字段可以修改,按实际使用增加,填报时拉入字段即可。

2.1.2 获取相关数据

1)添加 SQL 数据集,获取 BI 中所有表原始信息。

输入 SQL 语句如下所示:select MID(A.id,32,16) as tableId ,A.VALUE as origName,A.T_ID, REPLACE( REPLACE(B.className,'com.finebi.common.internalimp.config.conf.entryinfo.',' ') , 'EntryInfoConf',' ' ) as tableType from

(

SELECT

REPLACE(id,".name","") as id, `value` , UCASE( CONCAT("T_",mid(id,32,6)) ) as T_ID

FROM

fine_conf_entity

WHERE ID IN

(

SELECT

CONCAT(id,'.name') as nameId

from

fine_conf_classname

where

id like 'DirectEntryConfStore.mapHolder.________________' and #对应配置表名

className like 'com.finebi.common.internalimp.config%' #数据表过滤

)

) as A

left join

fine_conf_classname as B

on A.id = B.id

得到 BI 数据原始信息如下图所示:

2)添加 SQL 数据集,获取 BI 数据表显示名。

SQL 语句如下所示:

SELECT mid(AA.id,32,16) as tableId ,AA.`value` AS tableName

from

fine_conf_entity AA

where

AA.id like 'DirectEntryConfStore.mapHolder.%.escapeMap.________________'

得到 BI 数据显示名如下图所示:

3)添加 SQL 数据集,获取 BI 所有业务包信息。

SQL 语句如下所示:

SELECT CC.tableId,CC.PackId, DD.`value` as PackName

from

fine_conf_entity DD ,

(

SELECT REPLACE(AA.id,"tableIds","name") as PackId , BB.tableId as tableId

from fine_conf_entity AA ,

(select MID(A.id,32,16) as tableId ,A.VALUE as origName,A.T_ID, REPLACE( REPLACE(B.className,'com.finebi.common.internalimp.config.conf.entryinfo.',' ') , 'EntryInfoConf',' ' ) as tableType from

(

SELECT

REPLACE(id,".name","") as id, `value` , UCASE( CONCAT("T_",mid(id,32,6)) ) as T_ID

FROM

fine_conf_entity

WHERE ID IN

(

SELECT

CONCAT(id,'.name') as nameId

from

fine_conf_classname

where

id like 'DirectEntryConfStore.mapHolder.________________' and #对应配置表名

className like 'com.finebi.common.internalimp.config%' #数据表过滤

)

) as A

left join

fine_conf_classname as B

on A.id = B.id

) as BB

where

AA.id like 'DirectPackageConfStore%' and LOCATE(BB.tableId,AA.`value`) > 0

) as CC

where DD.id = CC.PackId

得到 BI 数据业务包信息如下图所示:

4)添加 SQL 数据集,获取 BI 数据表字段信息。

SQL 语句如下所示:

SELECT A.*,C.fieldnam  from (select id,substring_index((substring(id,32)),'.',1) as tableID,mid(id ,56,8) as scrname ,value as

filename  from  fine_conf_entity  where id like '%DirectFieldConfStore.mapHolder%name') as A

LEFT JOIN

(select id,substring_index((substring(id,32)),'.',1) as tableID,mid(id ,56,8) as scrname,value as b from  fine_conf_entity  where id like '%DirectFieldConfStore.mapHolder%fieldId') as B

ON A.tableID=B.tableID  AND A.scrname=B.scrname

LEFT JOIN

(select id,substring_index((substring(id,32)),'.',1) as tableID,substring_index(id, '.', -1) as b,value as fieldnam from  fine_conf_entity  where id like

'DirectEntryConfStore.mapHolder.%.escapeMap.%') AS C

ON A.tableID=C.tableID and B.b=C.b

得到 BI 数据表字段信息如下图所示:

5) 合并「BI数据原始信息」、「BI数据表显示名」、「BI数据表业务包信息」、「数据表字段信息」为一个自助数据集。

实现步骤:

选择「BI数据原始信息」下的所有字段,如下图所示:

选择「BI数据表显示名」所有字段,点击左合并,合并依赖为 tableId ,如下图所示:

选择「BI数据表业务包信息」内的所有字段,点击左合并,合并依赖为 tableId ,如下图所示:

选择「数据表字段信息」内的所有字段,点击左合并,合并依赖为 tableId ,如下图所示:

创建新增列并命名为表显示名,输入公式IF(ISNULL(tableName),tableName,origName),如下图所示:

创建新增列并命名为字段显示名,输入公式IF(ISNULL(fieldnam),filename,fieldnam),如下图所示:

选择 tableId、tableName、PackName、fieldnam、表显示名、字段显示名作为最终字段,并重命名为 表ID 、表名_原始、业务包名_原始、字段名_原始、表名_显示名、字段名_显示名。如下图所示:

过滤掉表名_原始为空的数据(表名为空是 FineReport 模板),输出最终字典自助数据集「BI数据表信息_处理」,如下图所示:

6)将「BI数据表信息_处理」与数据库中创建的「fine_data_dictionary」左合并,合并依据为表名、字段名、业务包名,合并为「BI数据字典」数据集,作为 FineReport 填报模板连接的 Spider 数据集,此后只需要使用模板填报以及自动更新 BI 中的「数据字典」业务包即可。如下图所示:

7)为数据字典整个业务包设置定时更新,以设置每小时更新一次为例,如下图所示:

注:设置步骤详情参见:业务包更新 。若需要实时以及其他更新频率可根据实际情况修改。

2.2 数据字典报表创建与维护

2.2.1 FineReport 远程连接 FineBI 获取字典自助数据集

2.2.2 创建 Spider 数据集

1)创建 BI数据字典 Spider 数据集,如下图所示:

2)创建表名过滤控件 Spider 数据集如下图所示:

2.2.3 创建数据字典填报模板

1)将 BI 数据字典数据集下的所有字段按照顺序拖入单元格并设置单元格颜色和单元格框,如下图所示:

2)对数据示例、业务计算逻辑、应用范围单元格设置 填报控件 和 报表填报属性 ,并给单元格设置编辑结束事件,如下图所示:

3)在模板>报表填报属性中添加内置 SQL ,如下图所示:

4)在插入>单元格元素>插入富文本下,添加富文本,如下图所示:

5)在参数面板中设置标签控件、下拉复选框控件 以及查询按钮,如下图所示:

2.3 数据字典模板使用与数据字典维护

1)登录数据决策系统,挂出该填报模板,如下图所示:

详情参见:管理目录 。

2)在目录中查看该模板并填报,如下图所示:

3)若填报模板正常,则可以给不同用户开放权限,共同维护数据字典。详情参见:分级权限分配 。

以mysql为例的数据字典_建立数据字典相关推荐

  1. mysql创建零件供应商表_● 建立一个供应商、零件数据库。其中“供应商”表 S(Sno,Sname,Zip,City)分别表示: 供应商代码、 供应 - 赏学吧...

    ● 建立一个供应商.零件数据库.其中"供应商"表 S(Sno,Sname,Zip,City)分别表示: 供应商代码. 供应商名. 供应商邮编. 供应商所在城市, 其函数依赖为: S ...

  2. Spark _24 _读取JDBC中的数据创建DataFrame/DataSet(MySql为例)(三)

    两种方式创建DataSet 现在数据库中创建表不能给插入少量数据. javaapi: package SparkSql;import org.apache.spark.SparkConf; impor ...

  3. mysql存储字典,详解MySQL-8.0数据字典

    1. 引言 数据字典(Data Dictionary)中存储了诸多数据库的元数据信息如图1所示,包括基本Database, table, index, column, function, trigge ...

  4. p2p mysql 数据的拆分 案例_浅析: P2P网贷系统数据库设计

    许多人对于P2P网贷系统的技术环境并不熟悉,导致不少运营商被开发商忽悠的情况屡见不鲜.今天我们就从数据库出发,给大家讲一讲有关P2P数据库技术的知识.首先,数据库架构的设计是开发一套P2P网贷系统的前 ...

  5. (数据库系统概论|王珊)第三章关系数据库标准语言SQL-第零节:MYSQL环境安装和表的建立以及一些注意事项

    文章目录 一:注意事项 二:MYSQL环境 (1)下载 (2)安装 (3)MYSQL可视化工具Navicat 安装 三:连接数据库 五:建立练习所需基本表 一:注意事项 本章是整个数据库中最重要的一章 ...

  6. mysql数据库资源池是否耗尽_高性能数据库连接池的内幕

    何涛 唯品会平台架构师 何涛,现任职于唯品会平台架构部,要负责数据访问层,网关,数据库中间件,平台框架等开发设计工作.在数据库性能优化,架构设计等方面有着大量的经验积累.热衷于高可用,高并发及高性能的 ...

  7. mysql程序员面试题_程序员面试备战篇:18个经典MySQL面试专题解析(干货分享答案)...

    欢迎关注专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦. 微信公众号:慕容千语的架构笔记.欢迎关注一起进步. 1.数据库三范式是什么? 第一范式(1 ...

  8. SQL进阶挑战(MySQL为例)

    1. 插入记录 1.1 明确只插入一条Value ​INSERT INTO t1(field1,field2) VALUE(v001,v002); 1.2 插入批量数据 INSERT INTO t1( ...

  9. mysql update 几万 非常慢_如何解决mysql 查询和更新速度慢

    在做客户关系管理系统的时候遇到联表查询,速度特别慢,导致页面加载时间过长而出现错误.在上网查询后发现建立索引可以优化查询 在没有建立索引的时候 select c.*,s.* from crm_cu_r ...

  10. mysql数据库空闲时间设定_关于数据库连接池的最大空闲时间的配置

    关于数据库连接池的最大空闲时间的配置 java的所有的连接池 无论是c3p0.dbcp还是druid,都有一个类似maxIdleTime配置项.具体含义就是当连接长时间没有向服务器发请求的时候,断开这 ...

最新文章

  1. 自己动手重新实现LINQ to Objects: 9 - SelectMany
  2. 跨浏览器图像灰度(grayscale)解决方案
  3. 在Apache Tomcat 7设置redis作为session store
  4. Linux-手动释放linux内存cache
  5. mysql的最佳索引攻略
  6. 制作ubuntu 18.04 U盘启动盘
  7. 在Linux系统的命令行中为MySQL创建用户的方法
  8. Flume实操(三)【实时读取目录文件到HDFS案例】
  9. js面试题:创建一个json对象people,并追加属性:姓名、性别、年龄,追加run方法...
  10. LinkedList源码
  11. 机器字长 存储字长 指令字长 机器字长
  12. 鼠标悬停显示不同内容_数字标牌的A到Z:C代表CMS(内容管理系统)
  13. 查看Hadoop的版本号
  14. docker 中文文档
  15. Access、Foxpro、Foxbase,2023年找到完美代替,有Excel基础即可
  16. canva五角星空html,使用canvas绘制一个五角星
  17. 一日一次 算法 (一) 插入排序
  18. 【嵌入式模块】常用扩展芯片及数据手册总结
  19. keras非线性回归代码专题
  20. 设置EditText输入的文字全部变成大写或小写

热门文章

  1. lcd显示c语言程序,LCD1602液晶显示(51单片机c语言)
  2. 蜂鸣器驱动电路 自主开发设计
  3. python中string.digits_Python3基础:String模块ascii_letters和digits
  4. Pycharm代码跳转
  5. Word转换成pdf文件之修改pdf虚拟打印机设置
  6. Java垃圾回收机制知识点总结
  7. java学习心得与体会(自我鼓励)
  8. win8优化(win8优化大师设置开始界面)
  9. 在iPhone任何界面截图完整图文教程
  10. AD18等长线、蛇形线的设置