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

引言

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.rhkb.cn/news/383779.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux嵌入书学习—数据结构——栈(seqstak)

一、栈; 定义: 是限定仅在表尾(栈顶)进行插入和删除操作的线性表 栈又称为 后进先出(Last In First Out) 的线性表,简称 LIFO 结构 栈顶(Top) 栈顶是栈中允许进行添加&…

开源邮箱套件介绍系列1:SOGo

项目网站:SOGo | Free Open Source Webmail 提示:如下内容大部分来自官方网站,通过AI智能翻译而来。 1. SOGo功能概述 SOGo提供了多种访问日历和消息数据的方式。您的用户可以使用网页浏览器、Microsoft Outlook、Mozilla Thunderbird、Ap…

jackson序列化(jackson codec)

Jackson 是一个用于 Java 平台的开源 JSON 库,它提供了灵活且高效的方式来处理 JSON 数据的序列化(Java对象 → JSON字符串)和反序列化(JSON 字符串→ Java对象)。 以下是 Jackson 的一些主要特点和功能: 高性能:Jackson 通过使用基于流的处理…

32单片机开发bootloader程序

一,单片机为什么要使用bootloader 1、使用bootloader的好处 1) 程序隔离:可以同时存在多个程序,只要flash空间够大,或者通过外挂flash,可以实现多个程序共存,在多个程序之间切换使用。 2)方便程…

【树状数组】2659. 将数组清空

本文涉及知识点 树状数组 LeetCode2659. 将数组清空 给你一个包含若干 互不相同 整数的数组 nums ,你需要执行以下操作 直到数组为空 : 如果数组中第一个元素是当前数组中的 最小值 ,则删除它。 否则,将第一个元素移动到数组的…

监测Nginx访问日志状态码,并做相应动作

文章目录 引言I 监测 Nginx 访问日志情况,并做相应动作1.1 前提准备1.2 访问日志 502 情况,重启 bttomcat9服务1.3 其他案例:访问日志 502 情况,重启 php-fpm 服务II 将Shell 脚本check499.sh包装成systemd服务2.1 创建systemd服务2.2 配置service2.3 开机启动2.4 其他常用…

内网对抗-隧道技术篇防火墙组策略FRPNPSChiselSocks代理端口映射C2上线

知识点: 1、隧道技术篇-传输层-工具项目-Frp&Nps&Chisel 2、隧道技术篇-传输层-端口转发&Socks建立&C2上线Frp Frp是专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过…

垃圾桶为什么要装缓冲器?

在我们日常生活中,垃圾桶是一个再常见不过的物品。然而,您是否留意过垃圾桶盖上的缓冲器?这个看似不起眼的小装置,其实有着不可忽视的重要作用。首先,垃圾桶装缓冲器能够有效地降低噪音。想象一下,在一个安…

【文心智能体】00后疯感工牌生成器,低代码工作流的简单应用以及图片快速响应解决方案,干活满满,不容错过哦

背景 文心智能体平台,开启新一轮活动,超级创造营持续百日活动。 在AI 浪潮席卷的今天,如雨后春笋般丛生的 AI 应用,昭告着时代风口显然已随之到来。 如何能把握住时代红利,占据风口,甚至打造新风向&#x…

基于微信小程序+SpringBoot+Vue的自习室选座与门禁系统(带1w+文档)

基于微信小程序SpringBootVue的自习室选座与门禁系统(带1w文档) 基于微信小程序SpringBootVue的自习室选座与门禁系统(带1w文档) 本课题研究的研学自习室选座与门禁系统让用户在小程序端查看座位,预定座位,支付座位价格,该系统让用户预定座位…

人工智能:大语言模型提示注入攻击安全风险分析报告下载

大语言模型提示注入攻击安全风险分析报告下载 今天分享的是人工智能AI研究报告:《大语言模型提示注入攻击安全风险分析报告》。(报告出品方:大数据协同安全技术国家工程研究中心安全大脑国家新一代人工智能开放创新平台) 研究报告…

57 数据链路层

用于两个设备(同一种数据链路节点)之间传递 目录 对比理解“数据链路层” 和 “网络层”以太网 2.1 认识以太网 2.2 以太网帧格式MAC地址 3.1 认识MAC地址 3.2 对比理解MAC地址和IP地址局域网通信MTU 5.1 认识MTU 5.2 MTU对ip协议的影响 5.3 MTU对UDP的…

sql_exporter通过sql收集业务数据并通过prometheus+grafana展示

下载并解压安装sql_exporter wget https://github.com/free/sql_exporter/releases/download/0.5/sql_exporter-0.5.linux-amd64.tar.gz #解压 tar xvf sql_exporter-0.5.linux-amd64.tar.gz -C /usr/local/修改主配置文件 cd /usr/local/ mv sql_exporter-0.5.linux-amd64 s…

Vue 实现电子签名并生成签名图片

目录 前言项目结构代码实现 安装依赖创建签名画布组件生成签名图片 总结相关阅读 1. 前言 电子签名在现代Web应用中越来越普遍,例如合同签署、确认表单等。本文将介绍如何使用Vue.js实现一个简单的电子签名功能,并将签名生成图片。 2. 项目结构 项…

【Simple PIR】单服务器开源最快匿踪查询算法解析

7月17日,我们在《隐私计算匿踪查询技术深入浅出》中介绍了关于隐私计算中匿踪查询的定义和常见算法,并引出了前沿算法Simple PIR的介绍,本次将对Simple PIR进行正式的算法原理介绍。 1. Simple PIR快览 1.1 性能介绍 Simple PIR是Alexandra…

机器学习驱动的智能化电池管理技术与应用

目录 主要内容 电池管理技术概述 电池的工作原理与关键性能指标 电池管理系统的核心功能 SOC估计 SOH估计 寿命预测 故障诊断 人工智能机器学习 基础 人工智能的发展 机器学习的关键概念 机器学习在电池管理中的应用案例介绍 人工智能在电池荷电状态估计中的…

信号的运算

信号实现运算,首先要明确,电路此时为负反馈电路,当处于深度负反馈时,可直接使用虚短虚断。负反馈相关内容可见:放大电路中的反馈_基极反馈-CSDN博客https://blog.csdn.net/qq_63796876/article/details/140438759 一、…

C++ 鼠标轨迹API【神诺科技SDK】

一.鼠标轨迹模拟简介 传统的鼠标轨迹模拟依赖于简单的数学模型,如直线或曲线路径。然而,这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现,使得神诺科技 能够通过深度学习技术,学习并模拟更自然的鼠标移动行为。 二.…

深入学习H264和H265

目录 前言 一 什么是H264/H265? H.264 (MPEG-4 AVC) H.265 (HEVC) 二 为什么要学习H264和H265? 1. 深入理解视频压缩原理 2. 硬件优化与集成 3. 调试与故障排除 4. 持续的技术更新 三 NAL(Network Abstraction Layer)详解…

如何找到最快解析速度的DNS

如何找到最快解析速度的DNS DNS,即域名系统(Domain Name System),是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网,而不用记住能够被机器直接读取的IP数…