Apache Superset 使用記錄

制作一個儀表盤

1. 數(shù)據(jù)庫配置

image.png

添加一個mysql數(shù)據(jù)庫:


image.png

例如macos本機docker環(huán)境下 sqlalchemy urimysql+mysqldb://root:xxx@docker.for.mac.localhost:3306/test?charset=utf8。
測試連接成功后可以看到數(shù)據(jù)表。
數(shù)據(jù)庫的元數(shù)據(jù)在這里編輯:

image.png

2. 數(shù)據(jù)表配置

image.png

輸入信息后保存:


image.png

數(shù)據(jù)表的元數(shù)據(jù)可以點這里進行編輯:


image.png

列列表里的過濾器開關:


image.png

3. 數(shù)據(jù)表使用

在數(shù)據(jù)表列表直接點擊名稱:


image.png

進入一個數(shù)據(jù)表操作界面:


image.png
image.png

選擇數(shù)據(jù)表和類型

image.png

日期時間型過濾,Is temporal 控制是否下拉列表可見。

image.png

GROUP BY 專門用于聚合數(shù)據(jù)展示。

image.png

GROUP BYNOT GROUPED BY 不可同時使用。
NOT GROUPED BY用于簡單列表數(shù)據(jù)展示。

image.png

自定義查詢條件。

切片

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.

內(nèi)置基礎角色

不建議對內(nèi)置角色進行更改,因為隨著Superset升級,這些內(nèi)置角色的元數(shù)據(jù)會被 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

數(shù)據(jù)管理者。
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

數(shù)據(jù)消費者。
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

image.png

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

image.png

Supports templating using the Jinja templating language which allows for using macros in your SQL code

參考文章:

Python模塊學習 - jinja2
使用SQLAlchemy

架構

https://segmentfault.com/a/1190000005083953

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容