1-3 superset数据模型
在models.py中大部分的class对应数据库中的表,那么我们就从AuditMixinNullable这个类开始我们的模型解析。
AuditMixin:这个类是FAB(Flask AppBuild)中的,它的作用是向子类中加入create_by_fk、create_by、changed_by_fk、changed_by、changed_on、create_on等属性,并且这些值不能为空
AuditMixinNullable:这个类是AuditMixin子类,但是对AuditMixin类的属性进行了修改,让AuditMixin相关属性值可以为空
AuditMixinNullable的子类:AuditMixinNullable的13个子类,对应数据库中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 |
访问datarource和dbs访问请求表 |
Url |
url |
用于短url功能 |
CssTemplate |
css_templates |
css的模板表 |
对比ORM类,查看对应数据库表,我们发现以上16张表除了dashboard_slices、dashboard_user、slice_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_user与ab_role是多对多关系。 |
|
ab_permission_view_role |
权限视图与角色的关联表,ab_permission_view与ab_role是多对多关系 |
Permission |
ab_permission |
权限表 |
PermissionView |
ab_permission_view |
权限与视图菜单的关联表,ab_permission与ab_view_menu是多对多关系 |
ViewMenu |
ab_view_menu |
视图菜单表 |
表之间的关联图