完全指南:Basic 与 Advanced Transforms 的能力、启用与计费机制)
Metabase Transform 附加功能Add-ons完全指南Basic 与 Advanced Transforms 的能力、启用与计费机制【免费下载链接】metabaseThe easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:项目地址: https://gitcode.com/GitHub_Trending/me/metabaseMetabase 的 Data Studio 提供了一套完整的T of ETL能力——Transforms数据转换用于在 Metabase 内编写查询或 Python 脚本、将结果写回数据库并同步为可复用的数据源。Transforms 以两种附加功能add-ons形态交付Basic transforms基础转换与Advanced transforms高级转换。本文以 docs/data-studio/transforms/addons.md 为核心结合仓库中 transforms_rest 模块 与 transforms 核心模块 的源码实现系统讲解这两种附加功能的能力边界、启用/取消流程、计费方式以及背后的实现机制帮助你在自托管或 Metabase Cloud 上按需选型并正确配置。附加功能一瞥两种 Transform 形态Metabase 的转换Transforms功能分为两个版本核心差异在于是否支持 Python 脚本、转换检查器Transform inspector和可写连接Writable connection能力Basic transformsAdvanced transforms运行查询型转换SQL / 查询构建器✅✅调度转换任务Jobs✅✅Pro/Enterprise配置转换权限✅✅运行 Python 转换❌✅可写连接用于写操作的独立数据库连接❌✅转换检查器Transform inspector❌✅其中 Advanced transforms 是 Basic transforms 的超集包含 Basic 的全部能力二者都属于付费/增值能力可用性与定价取决于你的 Metabase 订阅计划plan和托管方式自托管或 Cloud。从源码结构看这两种形态在实现上通过 feature 检查统一收口创建与运行转换时都会调用 transforms/crud.clj 中的check-feature-enabled!校验当前实例的 premium feature token确认对应附加功能已启用后才允许继续操作。Basic transforms查询型数据转换能力范围Basic transforms 面向纯查询型数据加工场景你可以编写并运行查询型转换Query-based transforms——用 SQL 或 Metabase 图形化查询构建器编写SELECT查询将结果写回数据库生成持久化表调度与运行任务Jobs——通过标签tags将转换编组按计划批量执行Pro/Enterprise 计划配置转换权限——包括面向非管理员的 Data Analyst 组以及按数据库细分的转换执行权限。但 Basic transforms不支持Python 转换也不包含转换检查器与可写连接。启用 Basic transforms启用方式取决于托管形态自托管 MetabaseSelf-hostedBasic 转换功能默认包含在自托管实例中无需额外购买。只需登录 Metabase按照 Enable transforms 的步骤开启即可使用。Metabase CloudStarter / Pro / EnterpriseBasic 转换功能在 Cloud 上按每次成功转换运行收取少量额外费用具体价格以官方定价页面为准。由于涉及按量计费只有使用 Metabase Store 管理员邮箱登录的人注意是 Store 管理员而非仅仅是 Metabase实例管理员才能启用 Basic transforms。Store 管理员相关概念见 accounts-and-billing.md。取消 Basic transforms需要特别注意一旦在 Metabase Cloud 实例上启用了 Basic transforms就无法再关闭。因此在 Cloud 上启用前请先确认按次计费的成本是否符合预期。Advanced transformsPython 工作流与诊断能力能力范围Advanced transforms 在 Basic transforms 的全部能力之上额外提供Python transforms——在独立执行环境中运行 Python 脚本基于 pandas DataFrame支持更灵活的数据处理逻辑Writable connection——为写操作单独配置的数据库连接可将转换的写入流量与查询流量隔离Transform inspector——诊断视图分析转换输入/输出的数据分布、join 匹配率等。适用订阅计划Advanced transforms 附加功能可在以下场景购买任意 Metabase Cloud 实例Starter、Pro、Enterprise自托管的 Pro 或 Enterprise 实例。自托管 Open Source社区版计划目前无法使用 Advanced transforms 功能这一点在选择部署形态时需要提前规划。与 Basic 类似Advanced 也按每次成功转换运行计费且费率高于 Basic。同样由于涉及额外费用启用时要求操作者使用与 Metabase Store 管理员一致的邮箱登录。启用 Advanced transforms启用 Advanced transforms 的前置条件是实例上已经启用了 Basic transforms见上文 Enable basic transforms。自托管的完整搭建流程参见 Set up transforms on a self-hosted Metabase。启用途径有两种从 Metabase 实例内直接升级导航到需要高级功能的地方如 Python transforms 或转换检查器页面按界面提示完成升级。此方式同样要求你登录实例所用的邮箱与 Metabase Store 管理员 一致因为 Advanced transforms 会产生额外费用。从 Metabase Store 购买登录 Metabase Store注意你的 Metabase Store 账户可能与 Metabase 实例账户不同在需要添加 Advanced transforms 的实例旁边点击Manage plan在Manage Add-ons下找到Advanced transforms点击Upgrade完成升级。升级完成后会发生两件事你获得 Advanced transforms 的全部功能访问权你现有所有查询型转换的计费方式会自动切换到 Advanced transforms 费率。取消降级Advanced transformsAdvanced transforms 支持降级回 Basic transforms登录 Metabase Store账户可能不同于实例账户点击含 Advanced transforms 的实例旁的Manage plan在Manage Add-ons下找到Advanced transforms点击三个点菜单选择Downgrade to basic。降级后的影响你的Python 转换将不再运行并会被移除转换及其他写功能将停止使用可写连接如果你此前配置过的话。转换的计费机制按成功运行次数计费除非你处于 Enterprise 计划否则转换功能Cloud 上的 Basic或 Advanced均按成功转换运行successful run的次数计费。关于运行的完整定义手动运行、计划运行、状态、日志等参见 Jobs and runs最新价格以官方定价页面为准。几个计费相关的关键规则从 Basic 升级到 Advanced 时所有转换包括既有转换都会按 Advanced 费率计费Enterprise 计划用户如对计费有疑问可通过官方支持渠道联系 Metabase 团队。计费与运行在源码中的体现从源码可以印证按运行计费的设计并非文档层面的说辞而是落到了数据模型与 API 中models/transform_run.clj 中的转换运行记录包含metered_as字段用于记录该次运行按哪种费率Basic 或 Advanced计量api/transform.clj 中TransformRunResponseschema 同样暴露metered_as并在查询参数中支持按run-methodsmanual/cron、statusesstarted/succeeded/failed/timeout等维度过滤运行记录运行状态枚举:started :succeeded :failed :timeout :canceled :canceling与文档中成功运行的定义一一对应——只有succeeded的运行才计入成功运行计费。试用配额与锁定机制对于采用试用配额trial quota的实例源码中还有一层保护当转换的试用配额用尽时实例会暂时锁定转换功能。transforms/core.clj 中的transform-locked?与 usage.clj 共同实现该判断api/transform.clj 中的check-feature-and-lock!在手动运行与 DAG 重跑POST /:id/run、POST /:id/run-dag前都会校验被锁定时 API 返回 HTTP 402错误码为metabase_transforms_locked提示Transforms are temporarily locked because the trial quota has been reached。这也解释了为什么付费附加功能与运行行为强绑定。附加功能背后的整体架构要理解 add-ons 文档中反复出现的查询型转换在数据库内运行Python 转换在独立环境运行需要把两个能力分支串起来看查询型转换你在 Metabase 中写 SQL 或使用查询构建器运行时代理将查询下推到目标数据库执行由数据库完成SELECT→ 建表 → 覆写目标表的过程见 query-transforms.md。因此数据库账号需要具备建表、删表、写入的权限文档建议配合可写连接使用。Python 转换需要一个独立的 Python 执行环境runner。自托管场景下需配置 Python runnerDocker 容器 S3 兼容存储Metabase 将源数据以 pandas DataFrame 形式安全复制到该环境脚本在内存中执行后返回结果文件再由 Metabase 写回数据库并同步表。注意Python 转换依赖 Advanced transforms 附加功能因此 add-ons 文档将其列为 Advanced 的核心卖点。两者共用的调度与编排层包括标签tags、任务jobs与运行runs这部分与附加功能本身的选型无关但决定着你启用转换后如何真正让数据流动起来建议一并阅读 jobs-and-runs.md。选型建议你的诉求推荐形态仅需要 SQL/查询构建器清洗、join、预聚合写入数据库Basic transforms自托管默认包含需要 Python 脚本做更灵活的处理Advanced transforms Python runner需要分析转换的 join 匹配率、列分布等数据质量问题Advanced transforms 的 Transform inspector希望写操作与查询操作走不同数据库连接Advanced transforms 的 Writable connection需要为非管理员配置转换权限Pro/Enterprise 计划两种附加功能均支持相关文档Transforms overview——转换功能总览、启用与权限配置Query-based transforms——查询型转换的创建与增量配置Python transforms——Python 转换的编写规范与限制Transform inspector——转换检查器Python runner——自托管 Python 执行环境配置Jobs and runs——调度任务与运行历史Writable connection——可写连接【免费下载链接】metabaseThe easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:项目地址: https://gitcode.com/GitHub_Trending/me/metabase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考