制作一個儀表盤
1. 數據庫配置
添加一個mysql數據庫:
例如macos本機docker環境下 sqlalchemy uri:mysql+mysqldb://root:xxx@docker.for.mac.localhost:3306/test?charset=utf8
。
測試連接成功后可以看到數據表。
數據庫的元數據在這里編輯:
2. 數據表配置
輸入信息后保存:
數據表的元數據可以點這里進行編輯:
列列表里的過濾器開關:
3. 數據表使用
在數據表列表直接點擊名稱:
進入一個數據表操作界面:
選擇數據表和類型
日期時間型過濾,
Is temporal
控制是否下拉列表可見。
GROUP BY
專門用于聚合數據展示。
GROUP BY
和 NOT GROUPED BY
不可同時使用。NOT GROUPED BY
用于簡單列表數據展示。
自定義查詢條件。
切片
In Superset, a saved query is called a Slice.
Security
Superset的權限設計基于Flask AppBuilder (FAB).
FAB is a “Simple and rapid application development framework, built on top of Flask.”
FAB provides authentication, user management, permissions and roles. Please read its Security documentation.
內置基礎角色
不建議對內置角色進行更改,因為隨著Superset升級,這些內置角色的元數據會被 superset init
還原。
建議 compose 基礎角色和自定義角色 來構建自己的權限體系。
Admin
最高權限。
Admins have all possible rights, including granting or revoking rights from other users and altering other people’s slices and dashboards.
Alpha
數據管理者。
Alpha have access to all data sources, but they cannot grant or revoke access from other users. They are also limited to altering the objects that they own. Alpha users can add and alter data sources.
Gamma
數據消費者。
They can only consume data coming from data sources they have been given access to through another complementary role. They only have access to view the slices and dashboards made from data sources that they have access to. Currently Gamma users are not able to alter or add data sources. We assume that they are mostly content consumers, though they can create slices and dashboards.
sql_lab
sql_lab使用者。
The sql_lab role grants access to SQL Lab. Note that while Admin users have access to all databases by default, both Alpha and Gamma users need to be given access on a per database basis.
Public
公共訪問者。
It’s possible to allow logged out users to access some Superset features.
By setting PUBLIC_ROLE_LIKE_GAMMA = True
in your superset_config.py
, you grant public role the same set of permissions as for the GAMMA role. This is useful if one wants to enable anonymous users to view dashboards. Explicit grant on specific datasets is still required, meaning that you need to edit the Public role and add the Public data sources to the role manually (這里對public進行了修改).
granter
定制化
The permissions exposed by FAB are very granular and allow for a great level of customization. FAB creates many permissions automagically for each model that is create (can_add, can_delete, can_show, can_edit, …) as well as for each view. On top of that, Superset can expose more granular permissions like all_datasource_access.
We do not recommend altering the 3 base roles as there are a set of assumptions that Superset build upon. It is possible though for you to create your own roles, and union them to existing ones.
Permissions categories
Roles are composed of a set of permissions, and Superset has many categories of permissions. Here are the different categories of permissions:
Model & action:
models are entities like Dashboard, Slice, or User. Each model has a fixed set of permissions, like can_edit, can_show, can_delete, can_list, can_add, and so on. By adding can_delete on Dashboard to a role, and granting that role to a user, this user will be able to delete dashboards.
Views:
views are individual web pages, like the explore view or the SQL Lab view. When granted to a user, he/she will see that view in the its menu items, and be able to load that page.
Data source:
For each data source, a permission is created. If the user does not have the all_datasource_access permission granted, the user will only be able to see Slices or explore the data sources that are granted to them
Database:
Granting access to a database allows for the user to access all data sources within that database, and will enable the user to query that database in SQL Lab, provided that the SQL Lab specific permission have been granted to the user
Customizing
The permissions exposed by FAB are very granular and allow for a great level of customization. FAB creates many permissions automagically for each model that is create (can_add, can_delete, can_show, can_edit, …) as well as for each view. On top of that, Superset can expose more granular permissions like all_datasource_access.
We do not recommend altering the 3 base roles as there are a set of assumptions that Superset build upon. It is possible though for you to create your own roles, and union them to existing ones.
Permissions
Roles are composed of a set of permissions, and Superset has many categories of permissions. Here are the different categories of permissions:
- Model & action:
models are entities like Dashboard, Slice, or User. Each model has a fixed set of permissions, like can_edit, can_show, can_delete, can_list, can_add, and so on. By adding can_delete on Dashboard to a role, and granting that role to a user, this user will be able to delete dashboards. - Views:
views are individual web pages, like the explore view or the SQL Lab view. When granted to a user, he/she will see that view in the its menu items, and be able to load that page. - Data source:
For each data source, a permission is created. If the user does not have the all_datasource_access permission granted, the user will only be able to see Slices or explore the data sources that are granted to them - Database:
Granting access to a database allows for the user to access all data sources within that database, and will enable the user to query that database in SQL Lab, provided that the SQL Lab specific permission have been granted to the user
Restricting access to a subset of data sources
Restricting the access to some metrics
SQL Lab
SQL Lab is a modern, feature-rich SQL IDE written in React.
Connects to just about any database backend
A multi-tab environment to work on multiple queries at a time
A smooth flow to visualize your query results using Superset’s rich visualization capabilities
Browse database metadata: tables, columns, indexes, partitions
Support for long-running queries
- uses the Celery distributed queue to dispatch query handling to workers
- supports defining a “results backend” to persist query results
A search engine to find queries executed in the past
Supports templating using the Jinja templating language which allows for using macros in your SQL code
參考文章:
Python模塊學習 - jinja2
使用SQLAlchemy