Superset二次开发之筛选器native Filters 水平布局

news2024/9/20 1:14:13
引言

Apache Superset作为一个功能强大的开源数据探索和可视化平台,提供了丰富的配置选项来定制化用户体验。其中,HORIZONTAL_FILTER_BAR 是一个重要的配置项,专注于优化和改进Superset中的筛选器条布局与交互。

什么是HORIZONTAL_FILTER_BAR

HORIZONTAL_FILTER_BAR 是Superset中用于控制筛选器条(Filter Bar)水平布局的配置项。默认情况下,Superset的筛选器条是垂直排列的,即筛选器以列的形式堆叠在仪表板或图表的左侧或右侧。而当配置项 HORIZONTAL_FILTER_BAR 被启用时,筛选器条将以水平的方式显示在仪表板的顶部或底部,以更好地适应特定的布局需求和用户偏好。

效果展示

配置前

配置后

重点  "HORIZONTAL_FILTER_BAR": True,

FEATURE_FLAGS = {
    **FEATURE_FLAGS,
    "foo": "bar",
    "KV_STORE": True,
    "SHARE_QUERIES_VIA_KV_STORE": True,
    "ENABLE_TEMPLATE_PROCESSING": True,
    "ALERT_REPORTS": True,
    "DASHBOARD_NATIVE_FILTERS": True,
    "DRILL_TO_DETAIL": True,
    "DRILL_BY": True,
    "HORIZONTAL_FILTER_BAR": True,
}

 

从技术角度来看,Superset 的 HORIZONTAL_FILTER_BAR 功能涉及几个关键组件和概念:

1. 前端组件和布局

  • FilterBox组件:这是一个主要的前端组件,用于显示和管理过滤器。HORIZONTAL_FILTER_BAR 实际上是对 FilterBox 组件布局的调整,从传统的垂直布局改为水平布局。

  • CSS 样式:水平过滤器栏的实现依赖于自定义的 CSS 样式。通过调整 FilterBox 组件的 CSS 属性,如 display, flex-direction, margin, 和 padding 等,可以实现水平排列过滤器。

  • 布局配置:在仪表板的JSON配置中,可以定义布局方式和组件排列。这需要开发人员在配置中明确指定使用水平过滤器栏。一个典型的配置可能包括调整过滤器组件的 positionsize 参数。

2. 过滤器的管理和交互

  • 状态管理:前端使用 Redux 或类似的状态管理库来管理过滤器的状态。用户在水平过滤器栏中选择或修改过滤器时,这些更改会更新 Redux 状态树,并触发相关的重新渲染或数据请求。

  • URL参数同步:Superset 通常通过 URL 参数来保持过滤器的状态,以便用户可以共享特定过滤条件下的仪表板视图。启用 HORIZONTAL_FILTER_BAR 后,过滤器的状态依然需要与 URL 参数同步,这需要对前端代码进行适当的调整和处理。

3. 后端逻辑和数据处理

  • 查询生成:当用户在水平过滤器栏中选择或更改过滤器时,Superset 的后端需要重新生成 SQL 查询。这涉及解析前端传来的过滤器条件,并将它们转换为数据库查询的一部分。

  • 数据缓存和优化:为提高性能,后端可能会对常见的过滤条件进行数据缓存。启用 HORIZONTAL_FILTER_BAR 后,可能会增加特定过滤组合的查询频率,因此需要有效的缓存策略来减少数据库压力。

4. 可扩展性和定制化

  • 插件机制:Superset 允许通过插件机制扩展和定制功能。如果需要进一步定制 HORIZONTAL_FILTER_BAR 的行为或样式,可以开发自定义插件。这些插件可以包括新的前端组件、定制的过滤器逻辑或新的数据处理方法。

  • API集成:在某些场景中,可能需要集成外部API来获取或处理过滤器数据。例如,如果过滤器涉及动态获取数据选项(如下拉列表),则可能需要与后端API交互来实时更新这些选项。

5. 安全性和权限控制

  • 基于角色的访问控制(RBAC):对于不同用户或角色,可能需要限制他们可以看到或使用的过滤器。例如,某些敏感数据的过滤器可能只对特定权限的用户开放。

  • 审计和日志记录:为了确保数据安全和系统稳定性,可以在后端记录用户使用 HORIZONTAL_FILTER_BAR 的操作日志,包括哪些过滤器被使用、何时使用等信息。这有助于在出现问题时进行追溯和分析。

总的来说,HORIZONTAL_FILTER_BAR 的实现需要前端和后端的协同工作,以及对性能、安全性和用户体验的综合考虑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1948734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day4 vue2以及ElementUI

创建vue2项目 可能用到的命令行们 vue create 项目名称 // 创建项目 cd 项目名称 // 只有进入项目下,才能运行 npm run serve // 运行项目 D: //切换盘符 更改 Vue项目的端口配置 基础语法 项目创建完成之后,会有一个组件HelloWorld.vue,…

前后端项目打包对比——关于Spring Boot Maven Plugin配置的问题

Spring Boot Maven Plugin 配置详解 Spring Boot Maven Plugin 配置详解1. 添加插件到 pom.xml2. 插件配置2.1 基本配置2.2 配置参数详解默认行为说明简单配置示例为什么这样的配置能工作?进一步说明 2.3 高级配置 3. 使用插件打包应用程序3.1 打包成 JAR 文件3.2 打…

使用 XRDP 远程linux主机

一、简介 XRDP是一个开源的远程桌面协议(Remote Desktop Protocol,RDP)服务器,采用的是标准的RDP。 官网地址:https://www.xrdp.org/ github地址: https://github.com/neutrinolabs/xrdp/releases XRDP也是C/S架构&…

主成分分析算法

一、算法介绍 主成分分析:用较少的综合变量尽可能多地反映原来信息地统计方法 原理: PCA的主要目标是将特征维度变小,同时尽量减少信息损失。就是对一个样本矩阵,一是换特征,找一组新的特征重新标识;二是减少特征&a…

探索Perl的奇妙世界:入门学习与实战指南

一、Perl语言概述 1.1 Perl的起源与发展 Perl(Practical Extraction and Reporting Language)是一种高级、解释型、动态编程语言,由Larry Wall于1987年发明。Perl的初衷是作为一种文本处理工具,帮助系统管理员在Unix系统中处理报…

grep命令搜索部分命令

首先 然后可以输入|以及grep命令 比如 bjobs| grep "3075*"bjobs| grep "3075"这个结果是这样的,

「12月·长沙」第四届机器人、自动化与智能控制国际会议(ICRAIC 2024)

随着科技的飞速发展,智能机器人在当今社会的重要性愈发凸显。从制造业的自动化生产线,到医疗领域的手术机器人,再到家庭生活中的智能助手,机器人与人工智能的融合正在改变着我们的生产和生活方式。第四届机器人、自动化与智能控制…

反转链表java实现

力扣206 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 class Solution {public ListNode reverseList(ListNode head) {ListNode pre null;while(head!null){ListNode next head.next;head.nextpre;pre head;head next;}…

matlab仿真 数字信号载波传输(上)

(内容源自详解MATLAB/SIMULINK 通信系统建模与仿真 刘学勇编著第七 章内容,有兴趣的读者请阅读原书) clear all nsymbol100000;%每种信噪比下的发送符号数 T1;%符号周期 fs100;%每个符号的采样点数 ts1/fs;%采样时间间隔 t0:ts:…

分类常用的评价指标-二分类/多分类

二分类常用的性能度量指标 精确率、召回率、F1、TPR、FPR、AUC、PR曲线、ROC曲线、混淆矩阵 「精确率」查准率 PrecisionTP/(TPFP) 「召回率」查全率RecallTP/(TPFN) 「真正例率」即为正例被判断为正例的概率TPRTP/(TPFN) 「假正例率」即为反例被判断为正例的概率FPRFP/(TNFP)…

GPT-4o Mini:探索最具成本效益的小模型在软件开发中的应用

随着人工智能技术的迅猛发展,自然语言处理(NLP)领域也取得了显著的进步。OpenAI 最新发布的 GPT-4o Mini 模型,以其卓越的性能和极具竞争力的价格,成为了广大开发者关注的焦点。作为一名长期关注人工智能及其在软件开发…

基于JSP、java、Tomcat三者的项目实战--校园交易网(1)-项目搭建(前期准备工作)

这是项目的初始页面 接下来我先写下我的初始项目搭建 技术支持:JAVA、JSP 服务器:TOMCAT 7.0.86 编程软件:IntelliJ IDEA 2021.1.3 x64 首先我们打开页面,准备搭建项目的初始准备 1.New Project 2.随后点击Next,勾…

自定义 RAG 工作流:在 IDE 中结合 RAG 编排,构建可信的编码智能体

构建编码智能体并非一件容易的事。结合我们在 AutoDev、ArchGuard Co-mate、ChocoBuilder 等智能体项目的经验,我们开始思考在 Shire 语言中提供一种新的 RAG 工作流。结合我们先前构建的 IDE 基础设施(代码生成、代码校验、代码执行等接口)&…

【SQL 新手教程 1/20】SQL语言MySQL数据库 简介

💗 什么是SQL?⭐ (Structured Query Language) 结构化查询语言,是访问和处理关系数据库的计算机标准语言 无论用什么编程语言(Java、Python、C……)编写程序,只要涉及到操作关系数据库都必须通过SQL来完成 …

蚂蚁集团Android一面凉经(2024)

蚂蚁集团Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《蚂蚁集团Android一面凉经(2024)》。 面试职位: 蚂蚁集团-Android/iOS开发工程师-支…

优秀需求缺陷管理工具推荐及选购技巧

国内外主流的10款需求缺陷管理工具对比:PingCode、Worktile、禅道、Teambition、TAPD、Trello、简道云、Jira 、Bugzilla、Asana。 在选择需求缺陷管理工具时,面对众多选项,许多人可能感到困惑。不管是初创公司还是大型企业,都需要…

N3 - Pytorch文本分类入门

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 文本分类的基本流程常用的数据清洗方法如何使用jieba实现英文分词如何构建文本向量代码实践数据准备构建词典生成数据批次和迭代器模型设计模型创建模型训…

【vluhub】zabbix漏洞

介绍: zabbix是对服务器资源状态例如、内存空间、CPU、程序运行状态进行检测、设置预警值、短信设置等功能等一款开源工具。配置不当存在未授权,SQL注入漏洞 弱口令 nameadmin&passwordzabbix nameguest&password POST /index.php HTTP/1.1 Host: 192.1…

[C++实战]日期类的实现

💖💖💖欢迎来到我的博客,我是anmory💖💖💖 又和大家见面了 欢迎来到C探索系列 作为一个程序员你不能不掌握的知识 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成本搭建个人网站…

软件测试--测试管理与缺陷管理

文章目录 目标重点/难点 案例引入软件测试管理定义测试组织的定义独立组织测试的优缺点 测试管理——测试计划定义测试计划的持续活动 测试管理的准则出口准则入口准则 软件测试管理 | 测试用例的管理测试用例管理的重要性测试用例管理要解决的问题如何组织测试用例如何报告测试…