尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Apache Superset 1.1.0 发布特性深度解析:Dashboard 权限模型、原生筛选器与数据库连接能力

Apache Superset 1.1.0 发布特性深度解析:Dashboard 权限模型、原生筛选器与数据库连接能力 Apache Superset 1.1.0 发布特性深度解析Dashboard 权限模型、原生筛选器与数据库连接能力【免费下载链接】supersetApache Superset is a Data Visualization and Data Exploration Platform项目地址: https://gitcode.com/gh_mirrors/supers/supersetApache Superset 1.1.0 在 1.0 版本的基础上围绕用户体验、仪表板级安全Dashboard Level Security与数据库连接能力三条主线持续推进。本文以官方发布说明RELEASING/release-notes-1-1/README.md为核心骨架结合当前仓库的源码实现系统拆解本版本引入的力导向图、Dashboard RBAC、原生筛选器改进、新数据库引擎支持等关键能力并给出对应的源码位置与配置要点帮助读者快速理解该版本的技术全貌。版本概览Superset 1.1.0 是对 1.0 的延续性版本其核心主题体现在三个方面User Experience用户体验继续向 SIP-34 规划的方向演进向 Apache ECharts 全面迁移UI 组件测试覆盖持续增加Dashboard Level Security仪表板级安全依据 SIP-51 的提案迈出仪表板级访问控制read / write / granter / owner 多级权限的关键一步但该能力仍处于 feature flag 之后属于活跃开发区域Database Connectivity数据库连接扩大既有数据库引擎的支持范围并为 Trino、CrateDB、Apache Pinot 等新数据库建立基础支持。从当前仓库的版本演进看1.1.0 之后相继发布了 1.4.x、1.5.x、2.x、3.x 与 4.x参见 CHANGELOG 目录本版本中的许多能力Dashboard RBAC、原生筛选器在后继版本中逐步走向成熟而本发布说明恰好记录了它们最初的形态与边界。用户体验向 ECharts 迁移与图表交互增强1.1.0 继续推进 Apache ECharts 迁移新增了力导向图Force Directed Graph图表类型同时将内置 ECharts 库升级到 5.0.2包含对饼图的若干修复并为主要图表补充了 sort by排序依据控件。力导向图Graph Chart / Force Directed Graph力导向图用于展示实体之间的连接关系节点大小与连线权重可编码业务语义适合表达网络、依赖关系与关键节点识别等场景。本版本通过 PR #13111 引入该图表类型其效果如下图所示从当前仓库源码看该图表已成为 ECharts 插件族中的一等公民。其实现位于 superset-frontend/plugins/plugin-chart-echarts/src/Graph/index.ts以EchartsGraphChartPlugin注册元数据中标注了 Flow 分类、ECharts 图源行为上支持InteractiveChart、DrillToDetail与DrillBycontrolPanel.tsx查询配置面板以Source源节点、Target目标节点为必填实体字段并可叠加 metric 与可选的source_category源节点分类用于编码节点颜色与大小buildQuery.ts 与 transformProps.ts分别负责查询构建与 ECharts option 的转换EchartsGraph.tsx图表渲染组件其配套测试见 test/Graph/transformProps.test.ts。文档描述中亦明确该图表可配置为力导向force-directed或环形circulate布局若数据带有地理空间属性官方建议改用 deck.gl Arc 图表——这体现了不同图表类型在 Superset 中的分工。ECharts 5.0.2 与 Sort By 控件本版本将 ECharts 升级至 5.0.2PR #13052修复了饼图相关问题为后续图表选项与质量的持续改进铺路。同时PR #13049 与 PR #13057 为多指标图表引入了 sort by metric 控件配套实现见 PR #13058 的单指标版本使图表排序不再依赖默认聚合顺序。在 Explore 交互方面1.1.0 还针对数据集切换场景做了一系列体验优化详见下文PR Highlights切换数据集时重置指标PR #12782、清空搜索PR #12909并将时间选择器默认回退到上一周PR #12609。Dashboard 原生筛选器Native Filters仪表板原生筛选器在 1.1.0 中仍然处于 feature flag 之后关于 feature flag 的说明详见 1.0 发布说明但功能已显著增强、可以实际测试。本版本新增了时间类型原生筛选器、筛选器默认值、筛选器作用域scoping等能力界面效果如下图所示与原生筛选器相关的核心 PR 包括时间原生筛选器PR #12992为原生筛选器弹窗增加默认值PR #12199将原生筛选器作用域scoping应用到整个 DashboardPR #12716筛选器指示器filter indicator与数据源可选化PR #13148编辑模式下隐藏 filterBar 与切换图标PR #13108。Dashboard 级安全SIP-51 与 Dashboard RBAC面向拥有大量子组织的企业场景Dashboard 提供方需要管理用户对 Dashboard 的访问并支持不同层级的权限read、write、granter、owner。这一需求在 SIP-51 Dashboard Level Access #10408 中被正式提出并获得批准提案截图如下1.1.0 向 SIP-51 的愿景迈出了关键几步。注意该功能仍隐藏在 feature flag 之后属于活跃开发领域。相关 PR 集中在一个dashboard-rbac前缀下Dashboard 列表PR #12680支持相关角色related rolesPR #13035Dashboards API 支持角色的创建/更新与角色校验PR #12865dashboard_view访问强制access enforcementPR #12875。从当前仓库配置看该能力至今仍以 feature flag 形式存在。在 superset/config.py 中可以确认DASHBOARD_RBAC: False,也就是说Dashboard 级 RBAC 默认关闭需要运维/开发者自行开启 feature flag 才能使用且该能力在后继版本中持续迭代。读者若要在自己的环境中验证该能力应先在配置中开启对应 feature flag再通过 Dashboards API 关联角色。数据库连接既有引擎增强与新数据库基础支持Superset 的能力上限取决于它能查询的数据库范围。1.1.0 在数据库连接方面同时做了两件事扩大既有引擎支持、为一批新数据库建立基础支持。官方列出的引擎包括OpendistroPR #12602TrinoPR #13105CrateDBPR #13152Apache PinotPR #13163PrestoPR #13214BigQueryPR #12581PostgresPR #11720Google SheetsPR #13185AthenaPR #13201引擎支持的源码印证这些引擎规格在当前仓库的 superset/db_engine_specs/ 目录中均有对应实现可以相互印证TrinoTrinoEngineSpec定义于 trino.pyengine trino、engine_name Trino继承自PrestoBaseEngineSpec并实现了get_extra_table_metadata含索引与最新分区探测等能力CrateDBCrateEngineSpec定义于 crate.pyengine crate实现了从 SECOND 到 YEAR 的完整_time_grain_expressions时间粒度表达式映射以及epoch_to_dttm/epoch_ms_to_dttm/convert_dttm等时间转换逻辑Apache PinotPinotEngineSpec定义于 pinot.pyPrestoPrestoEngineSpec定义于 presto.py同样继承自PrestoBaseEngineSpec说明 1.1 时代 Trino 与 Presto 在引擎层共享了大量基础实现。由此可以看出Superset 的数据库适配遵循基础规格BaseEngineSpec 引擎专项覆盖的层次化设计新数据库通常先继承基础类建立可用连接再逐步补充时间粒度表达式、DDL 转换、分区探测等差异化能力。PR Highlights按主题梳理的关键改动发布说明将 1.1.0 的重要 PR 分为四类便于按主题检索Dashboard 原生筛选器进展feat(chart-data): 增加 rowcount、timegrain 与 column 结果类型PR #13271feat(native-filters): 启用筛选器指示器并令数据源可选PR #13148feat(native-filters): 编辑模式下隐藏 filterBar 与切换图标PR #13108feat(native-filters): 为 select filter 增加 storybook 条目PR #13005feat(native-filters): 时间原生筛选器PR #12992feat(native-filters): 为原生筛选器弹窗增加默认值PR #12199feat(native-filters): 将原生筛选器作用域应用到整个 DashboardPR #12716Dashboard 级访问控制进展feat(dashboard-rbac): dashboard 列表PR #12680feat(dashboard-rbac): 支持相关角色PR #13035feat(dashboard-rbac): Dashboards API 支持角色创建/更新与角色校验PR #12865feat(dashboard-rbac):dashboard_view访问强制PR #12875Explore 体验改进feat: 为多指标图表增加按指标排序PR #13057feat: 为单指标图表增加sort_by_metricPR #13058feat: 为分布条形图增加排序PR #13049feat: 数据集变更时重置指标PR #12782feat: 数据集变更时清空搜索PR #12909feat: 数据集变更时默认将时间选择器设为上一周PR #12609开发者体验改进chore: 增加非开发模式的 docker-compose 工作流PR #13143feat(style-theme): 支持自定义 Superset 主题PR #12858feat: 将 SQLAlchemy URL 引用迁移到配置PR #13182feat(helm): 将 configOverrides 作为模板求值PR #13130feat(helm): 为报表与告警提供 Celery beat 的 Helm 模板PR #13116feat: 自定义superset_config.py与密钥环境变量PR #13096feat: 配置变更时强制 Pod 重启PR #13056feat: 增加独立端点用于获取函数名以实现自动补全PR #12840feat: 在 API 相关端点上增加请求 IDPR #12663feat: 为set_database_uriCLI 命令增加选项PR #12740feat: 增加守卫公开 API 的装饰器PR #12635Breaking Changes 与完整变更日志发布说明明确提示了本版本的两个必读入口完整变更日志changelog见仓库根目录的 CHANGELOG.md覆盖本版本全部 commit 级别的改动向后不兼容变更backwards incompatible changes见仓库根目录的 UPDATING.md其中列出了升级到 1.1 时需要注意的破坏性改动。对于计划升级的生产环境建议按以下顺序执行先阅读 UPDATING.md 确认破坏性变更再对照 CHANGELOG.md 检索本版本涉及的模块若使用 Docker 部署可参考 docker-compose-non-dev.yml 与本版本新增的非开发模式工作流验证升级结果若使用 Helm 部署则需关注 configOverrides 模板化与 Celery beat 模板等改动helm/superset/templates 目录下的模板文件即对应实现。小结Apache Superset 1.1.0 是一个典型的承上启下版本它延续了 1.0 打下的 ECharts 迁移路线力导向图 ECharts 5.0.2在 Dashboard 原生筛选器上补足了时间筛选、默认值与作用域能力依据 SIP-51 为 Dashboard RBAC 迈出第一步dashboard_view访问强制、角色关联 API并在数据库层面对 Trino、CrateDB、Pinot、Presto、BigQuery、Postgres、Google Sheets、Athena、Opendistro 等引擎进行了扩展。读者可将本文作为阅读 1.1.0 发布说明的向导结合 superset/db_engine_specs/ 与 superset-frontend/plugins/plugin-chart-echarts/src/Graph/ 等源码位置深入验证每一项能力。【免费下载链接】supersetApache Superset is a Data Visualization and Data Exploration Platform项目地址: https://gitcode.com/gh_mirrors/supers/superset创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表