国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Superset二次開發詳解

Superset二次開發詳解

來源:千鋒教育
發布人:xqq
時間: 2023-11-23 16:58:27 1700729907

一、Superset二次開發技術

Apache Superset是一個基于Python的可視化數據探索平臺,是由Airbnb開源,為現代化的數據分析工具,提供用于探索,可視化和分享數據的直觀界面。Superset的二次開發可輕松擴展其內置功能,提供更多自定義需求。以下是一些常用的Superset二次開發技術:

1、Superset使用Python Flask Web框架


from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
   return 'Hello World’

if __name__ == '__main__':
   app.run()

2、Superset可擴展通過使用開發自定義數據庫類型等插件


class MyEngineSpec(BaseEngineSpec):
    engine = 'my_engine'
    max_column_name_length = 63
    max_table_name_length = 63

espec = MyEngineSpec()

二、Superset二次開發部署

Superset是一個基于Python Flask Web框架的開源Web應用程序,使用Docker部署非常方便,推薦使用Docker Compose。以下是Superset二次開發部署的簡單步驟:

1、安裝Docker和Docker Compose


$ sudo apt-get install docker.io
$ sudo pip install -U docker-compose

2、創建Superset Docker-compose.yml文件


version: '2.1'
services:
   superset:
      build: .
      command: bash -c "/app/docker-entrypoint.sh && superset runserver -d"
      ports:
         - "8088:8088"
      environment:
         - SUPERSET_LOAD_EXAMPLES=yes
      volumes:
         - .:/app
         - ./superset_home:/app/superset_home

3、運行Superset


$ docker-compose up -d

三、Superset二次開發難度

Superset二次開發有一個特點:擴展易,理解難。理解Superset底層框架的架構是必須的,例如sqlalchemy、flask、celery、werkzeug等等。此外,學習前端開發技術及JavaScript語言也是必不可少的。

四、Superset二次開發鉆取

Superset通過Druid和SQLAlchemy提供了有效和快速的數據查詢和可視化功能。例如,您可以通過Superset創建透視表,交叉表,數字圖表等,并通過鉆取功能在不同的層次上對數據進行細分。以下是Superset鉆取的代碼示例:


query_obj = (
    db.session.query(
        column1, column2, func.sum(column3),
        func.sum(column4)
    )
    .filter(Column1 == x)
    .group_by(column1, column2)
    .having(func.sum(column3) > 5)
)

return PivotTableBuilder().table_name("Results").pivot_query(query_obj).\
    add_column(column1).add_column(column2).add_metric(
        "sum_column3", func.sum, column3,
    ).add_metric(
        "sum_column4", func.sum, column4,
    ).build()

五、Superset二次開發登錄

Superset提供自定義身份驗證和登錄邏輯的方法,將登陸、鑒權、權限等實現自己的業務邏輯。以下是Superset自定義身份驗證的代碼示例:


from flask import request
from flask_appbuilder.security.views import UserDBModelView
from wtforms import Form, StringField

class CustomLogin(UserDBModelView):

    def _handle_user(self, user, next_url):
        self.update_redirect()

        if user.auth_provider_type == 'ldap':
            return self.render_template(
                'superset/ldap_error.html',
                providers=[
                    p for p in self.appbuilder.sm.auth_user_registration.
                    get_auth_providers() if p.auth_type != 'ldap'])

        if self.appbuilder.sm.force_password_change_on_first_login and user \
                and user.password == conf.get('DEFAULT_PASSWORD'):
            self.appbuilder.sm.session.add(
                self.appbuilder.sm.UserSecurity(
                    user=user, password=generate_password_hash(
                        request.form['new_password'], method='sha256')))
            self.appbuilder.sm.session.commit()
            flash("Please login with new password", "warning")
            return redirect(self.appbuilder.get_url_for_login)

        return redirect(next_url)

class CustomAuthDBView(AuthDBView):

    login_template = 'superset/custom_login.html'

    def create_form(self):
        class LoginForm(self.orig_form):
            username = StringField(validators=[validators.InputRequired()], default='')
            password = PasswordField(validators=[validators.InputRequired()], default='')
        setattr(LoginForm, 'next', HiddenField())
        self.form_class = LoginForm

    def is_token_valid(self, token):
        return True # token validation code

flask_appbuilder_flaskappbuilder.add_view_no_menu(CustomLogin)
flask_appbuilder_flaskappbuilder.add_view_no_menu(CustomAuthDBView)

六、Superset使用

Superset提供基本數據探索和可視化功能。以下是一些Superset的使用示例:

1、添加數據集:

進入Superset的主頁面,點擊“Sources” -> ”+” -> “Database”,選擇要添加的數據源類型,并填寫相關信息,如數據庫類型、連接信息等。

2、創建透視表:

在Superset的主頁面,點擊“Explore” -> “Table” -> 選擇要展現的數據表,選擇數據表后,可以選擇透視表選項進行設置,并進行數據展示。

3、創建圖表:

在Superset的主頁面,點擊“Explore” -> “Chart” -> 選擇要展現的數據表,選擇數據表后,可以選擇圖表類型并進行數據展示。

七、Superset教程

可以通過官網提供的Superset中文教程來學習Superset的基本操作和使用方法,也可以通過Superset社區中提供的論壇、問答社區等參與到Superset的討論和交流中。

八、Superset前端開發

前端開發是Superset二次開發不可缺少的一部分,通過掌握相關的前端技術,可以實現Superset的定制化需求和自定義開發。以下是一些常用的Superset前端開發技術:

1、Superset使用React和Redux實現前端交互邏輯


import React from 'react';

class MyComponent extends React.Component {
   constructor(props) {
      super(props);
   }

   render() {
      return 

Hello, Superset!

; } }

2、Superset使用D3.js等可視化庫來實現數據的可視化展示


var svg = d3.select("body")
   .append("svg")
   .attr("width", w)
   .attr("height", h)
   .append("g")
   .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

九、Superset可視化平臺

Superset作為一個基于Python Flask Web框架的可視化平臺,可以幫助用戶發現數據、分析數據、交互式地探索數據,完成對數據的可視化展示。在Superset的平臺上,用戶不僅可以對已有的數據進行探索和可視化,還可以對各類數據進行拖拽式的展示,并且進行數據鉆取等操作。

十、Superset中文教程官網

Superset的官方網址是https://superset.incubator.apache.org/,目前提供了中文版的文檔和教程。通過這個網站,用戶可以了解最新的Superset的版本和相關特性,并且可以隨時下載最新版本。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT