首页 > 代码库 > 1-3 superset数据模型

1-3 superset数据模型

在models.py中大部分的class对应数据库中的表,那么我们就从AuditMixinNullable这个类开始我们的模型解析。

AuditMixin:这个类是FABFlask  AppBuild中的,它的作用是向子类中加入create_by_fkcreate_bychanged_by_fkchanged_bychanged_oncreate_on等属性,并且这些值不能为空

AuditMixinNullable:这个类是AuditMixin子类,但是对AuditMixin类的属性进行了修改,让AuditMixin相关属性值可以为空

技术分享

AuditMixinNullable的子类:AuditMixinNullable13个子类,对应数据库中13张表,类与表的对应关系如下:

Model

数据表

说明

Database

dbs

对应superset中对数据库连接配置。

SqlaTable

tables

dbs中数据库引入到superset中的表,与dbs表是一对多的关系。

TableColumn

table_columns

对应tables中表的数据字段,与tables表是一对多的关系。

SqlMetric

sql_metrics

对表字段进行可聚合纬度度量,与tables表是一对多的关系。

Slice

slices

切片表。

 

slice_user

slices与ab_user的关联表,slices与ab_user多对多关系

Dashboard

dashboards

仪表盘表。

 

dashboard_slices

仪表盘与切片之间的关联表,由此可以看出,slices表与dashboards表是多对多的关系。

 

dashboard_user

dashboards与ab_user的关联表,dashbaoards与ab_user是多对多关系。

DruidCluster

clusters

druid集群配置表

DruidDatasource

datasources

druid的数据源配置,clusters是一对多关系

DruidColumn

columns

druid数据源的字段表,与datasource是一对多关系

DruidMettic

metrics

druid数据源的度量表,与datasource是一对多关系

DatasourceAccessRequest

access_request

访问datarourcedbs访问请求表

Url

url

用于短url功能

CssTemplate

css_templates

css的模板表

对比ORM类,查看对应数据库表,我们发现以上16张表除了dashboard_slicesdashboard_userslice_user关联表之外,其余13张表中都有created_by_fk和changed_by_fk这2个字段,AuditMixin及其子类AuditMixinNullable的功能不言而喻。

技术分享

Datasource不对应数据库中的表,它的功能是提供其子类SqlaTable、DruidDatasource类公用的的部分。

技术分享

技术分享

Model

数据表

说明

Query

query

记录在SQL Lab菜单中,SQL Query子菜单中执行Run Query的查询历史

FavStar

favstar

用于记录用户喜欢的仪表盘或切片

Log

logs

记录superset对数据库的操作

KeyValue

keyvalue

用户任何类型的键值对存储

 

此外,在models.py中还有其它单独的类需要介绍,请看下面:

 

Model

说明

QueryResult

此类用于在SQL Lab菜单中,SQL Query子菜单中执行Run Query时对查询结果的反馈。

JavascriptPostAggregator

 

 

下面介绍下fab中的用户权限的实体类:8

技术分享

Model

数据表

说明

User

ab_user

用户表。

RegisterUser

ab_register_user

注册用户表。

Role

ab_role

角色表。

 

ab_user_role

用户与角色的关联表,ab_userab_role是多对多关系。

 

ab_permission_view_role

权限视图与角色的关联表,ab_permission_viewab_role是多对多关系

Permission

ab_permission

权限表

PermissionView

ab_permission_view

权限与视图菜单的关联表,ab_permissionab_view_menu是多对多关系

ViewMenu

ab_view_menu

视图菜单表

 

表之间的关联图

技术分享

 

1-3 superset数据模型