欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

以mysql为例的数据字典_建立数据字典

发布时间:2023/12/10 数据库 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 以mysql为例的数据字典_建立数据字典 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

本例以 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为例的数据字典_建立数据字典的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。