久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

        手機站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

        千鋒教育

        掃一掃進入千鋒手機站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時隨地免費學(xué)習(xí)課程

        當(dāng)前位置:首頁  >  技術(shù)干貨  > Superset二次開發(fā)詳解

        Superset二次開發(fā)詳解

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

        一、Superset二次開發(fā)技術(shù)

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

        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可擴展通過使用開發(fā)自定義數(shù)據(jù)庫類型等插件

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

        二、Superset二次開發(fā)部署

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

        1、安裝Docker和Docker Compose

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

        2、創(chuàng)建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二次開發(fā)難度

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

        四、Superset二次開發(fā)鉆取

        Superset通過Druid和SQLAlchemy提供了有效和快速的數(shù)據(jù)查詢和可視化功能。例如,您可以通過Superset創(chuàng)建透視表,交叉表,數(shù)字圖表等,并通過鉆取功能在不同的層次上對數(shù)據(jù)進行細(xì)分。以下是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二次開發(fā)登錄

        Superset提供自定義身份驗證和登錄邏輯的方法,將登陸、鑒權(quán)、權(quán)限等實現(xiàn)自己的業(yè)務(wù)邏輯。以下是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提供基本數(shù)據(jù)探索和可視化功能。以下是一些Superset的使用示例:

        1、添加數(shù)據(jù)集:

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

        2、創(chuàng)建透視表:

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

        3、創(chuàng)建圖表:

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

        七、Superset教程

        可以通過官網(wǎng)提供的Superset中文教程來學(xué)習(xí)Superset的基本操作和使用方法,也可以通過Superset社區(qū)中提供的論壇、問答社區(qū)等參與到Superset的討論和交流中。

        八、Superset前端開發(fā)

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

        1、Superset使用React和Redux實現(xiàn)前端交互邏輯

        
        import React from 'react';
        
        class MyComponent extends React.Component {
           constructor(props) {
              super(props);
           }
        
           render() {
              return 

        Hello, Superset!

        ; } }

        2、Superset使用D3.js等可視化庫來實現(xiàn)數(shù)據(jù)的可視化展示

        
        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框架的可視化平臺,可以幫助用戶發(fā)現(xiàn)數(shù)據(jù)、分析數(shù)據(jù)、交互式地探索數(shù)據(jù),完成對數(shù)據(jù)的可視化展示。在Superset的平臺上,用戶不僅可以對已有的數(shù)據(jù)進行探索和可視化,還可以對各類數(shù)據(jù)進行拖拽式的展示,并且進行數(shù)據(jù)鉆取等操作。

        十、Superset中文教程官網(wǎng)

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

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
        免費領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        云和县| 泽普县| 云南省| 和静县| 宝应县| 三门峡市| 剑河县| 会泽县| 阿克陶县| 兴安盟| 涿鹿县| 秀山| 灌阳县| 辰溪县| 闵行区| 平谷区| 湖口县| 固原市| 水城县| 新建县| 红河县| 大兴区| 平乡县| 中牟县| 雷州市| 永宁县| 北京市| 商南县| 岐山县| 柳江县| 信阳市| 兴安县| 新蔡县| 桓仁| 双牌县| 淮安市| 阳高县| 上蔡县| 鹤壁市| 莱芜市| 榕江县|