Apache Superset 使用记录

制作一个仪表盘

1. 数据库配置

Apache Superset 使用记录_第1张图片
image.png

添加一个mysql数据库:


Apache Superset 使用记录_第2张图片
image.png

例如macos本机docker环境下 sqlalchemy uri:mysql+mysqldb://root:[email protected]:3306/test?charset=utf8
测试连接成功后可以看到数据表。
数据库的元数据在这里编辑:

Apache Superset 使用记录_第3张图片
image.png

2. 数据表配置

Apache Superset 使用记录_第4张图片
image.png

输入信息后保存:


Apache Superset 使用记录_第5张图片
image.png

数据表的元数据可以点这里进行编辑:


image.png

列列表里的过滤器开关:


Apache Superset 使用记录_第6张图片
image.png

3. 数据表使用

在数据表列表直接点击名称:


Apache Superset 使用记录_第7张图片
image.png

进入一个数据表操作界面:


Apache Superset 使用记录_第8张图片
image.png
Apache Superset 使用记录_第9张图片
image.png

选择数据表和类型

Apache Superset 使用记录_第10张图片
image.png

日期时间型过滤, Is temporal 控制是否下拉列表可见。

Apache Superset 使用记录_第11张图片
image.png

GROUP BY 专门用于聚合数据展示。

Apache Superset 使用记录_第12张图片
image.png

GROUP BYNOT GROUPED BY 不可同时使用。
NOT GROUPED BY用于简单列表数据展示。

Apache Superset 使用记录_第13张图片
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.

内置基础角色

不建议对内置角色进行更改,因为随着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

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

Apache Superset 使用记录_第14张图片
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

你可能感兴趣的:(Apache Superset 使用记录)