superset 商务智能最新解读

superset 最新稳定版0.28
在开始之前我想强调一点,Superset定位BI,如果你想找的只是一款简单图表工具,那么建议echarts之类工具就能给你满足。否则supserset那些复杂的统计函数和切片配置会让你很是疑惑。
一、superset简介
apache Superset是一个现代的、企业级的商业智能web应用程序。

二、flask appbuilder简介

flask appbuilder是简单快速的应用程序开发框架,建立在flask之上。它提供包括详细的安全性功能,并为您的模型自动CRUD,以及丰富的图表等等,

三、superset项目目录说明
superset采用了flask appbuilder作为其web 框架,其项目目录介绍如下:
superset 商务智能最新解读_第1张图片

  1. 主要文件夹功能如下:
  • assets:前端采用了webpack技术,webpack 是一个模块打包器。webpack 的主要目标是将 JavaScript 文件打包在一起,打包后的文件用于在浏览器中使用,但它也能够胜任转换(transform)、打包(bundle)。
  • models:存放项目的,封装数据库相关操作,包括切片、看板、数据库、日志等等数据操作。
  • static:flask appbuilder用以存放项目静态文件的目录,存放包括测试、react页面文件、css样式表,js,图片等文件。
  • templates:即是flash的模板目录,几乎项目所有的HTML文件都在这里,basic.html提供web整体的样式风格。
  • views:视图文件,定义了url,实现前端路由。
  1. 从MVC角度看:
  • Model,依靠SQLAlchemy(强大且流行的ORM)
  • View,很重(含大量业务逻辑,由于有封装好的很多基类,所以代码量其实不大)
  • Controller,(几乎仅仅用于路由)
    以Menu中的Slice为例,看其简要代码:
    superset/models/core.py (Model层)
    class Dashboard(Model, AuditMixinNullable, ImportMixin):
    “”“The dashboard object!”""
    tablename = ‘dashboards’
    id = Column(Integer, primary_key=True)
    dashboard_title = Column(String(500))
    position_json = Column(utils.MediumText())

superset/views/core.py (Control层)
class DashboardModelView(SupersetModelView, DeleteMixin): # noqa
route_base = ‘/dashboard’
datamodel = SQLAInterface(models.Dashboard)
@expose(’/show/’, methods=[‘GET’])
@has_access
def show(self, pk):
pk = self._deserialize_pk_if_composite(pk)
widgets = self._show(pk)
return self.render_template(self.show_template,
pk=pk,
title=self.show_title,
widgets=widgets,
related_views=self._related_views)
superset/templates/superset/base.html(View层)
{% extends “appbuilder/baselayout.html” %}

{% block head_css %}
{{super()}}

{% for entry in get_unloaded_chunks(css_manifest(‘theme’), loaded_chunks) %}

{% endfor %}
{% endblock %}

{% block head_js %}
{{super()}}
{% with filename=“theme” %}
{% include “superset/partials/_script_tag.html” %}
{% endwith %}
{% endblock %}

{% block tail_js %}
{{super()}}
{% with filename=“preamble” %}
{% include “superset/partials/_script_tag.html” %}
{% endwith %}
{% endblock %}

四、项目配置
根目录下config.py就是flask_appbuilder中的配置,可以实现系统功能的高度配置。
可以通过PYTHONPATH中提供一个super_config来覆盖该文件中的所有配置。
superset 商务智能最新解读_第2张图片

你可能感兴趣的:(BI)