提供面向客户的分析的策略
比较不同数据共享方法的开发工作量、可定制性和安全性。
目标:提供自助式分析
首先,让我们确保我们有一个明确的目标:向客户提供自助式分析。我们所说的分析,是指为您的客户提供合适的工具(例如图表和仪表盘)和材料(相关数据),以帮助他们理解数据并做出更好的决策;而我们所说的自助式,是指让您的客户能够分析自己的数据——不仅仅是预先构建好的图表和仪表盘。
一些背景信息:许多公司找到 Metabase,表示他们想在自己的应用程序中嵌入分析功能,并询问 Metabase 是否能实现。答案是肯定的!嵌入是实现面向客户分析的最流行方式之一。但是,这并不是为人们提供所需工具和材料进行分析的唯一(或最佳)方式。
如果您想构建面向客户的报告或数据可视化(而不给人们自己操作数据的选项),请查看在网络上发布数据可视化。
高质量外部分析的标准
您实施自助式面向客户分析的方式将取决于客户的需求和您的开发资源,但从根本上说,您需要交付一个满足以下条件的解决方案:
- 让客户能够分析自己的数据。
- 限制他们只能分析其有权查看的数据。
- 提供卓越的用户体验。
我们将介绍一系列实施策略,从低投入高回报到高投入高可定制性。
总的来说,我们推荐能够满足客户分析需求的最简单选项。一旦您获得了一些客户的采用和反馈,您就可以加大投入,提升用户体验。
使用 Metabase 交付面向客户的分析策略
以下策略按工作量从低(1)到高(5)排序
- 从您的应用链接到独立的 Metabase(从这里开始)
- 在 iframe 中嵌入整个 Metabase
- 使用 Metabase React 组件自定义您的分析
- Fork Metabase 源代码
- 构建您自己的分析平台
1. 从您的应用链接到独立的 Metabase
在这种策略中,Metabase 位于您的应用程序旁边;您不将其嵌入到您的应用中。您设置 Metabase,使用单点登录 (SSO) 为客户提供直接访问 Metabase 的权限,通过行和列安全为每个人自定义数据访问权限,并使用白标(品牌化)使 Metabase 与您的其他产品感觉协调一致。然后,您只需在您的应用中添加指向独立 Metabase 的链接。
流程大致如下:您启动一个 Metabase 实例,添加您的徽标和品牌颜色,并连接您的数据库。然后,您实施行和列安全,以便客户只看到他们有权查看的内容,并使用 SSO 对用户进行身份验证,这样您的应用和 Metabase 就可以协调权限。
设置好您的品牌化独立 Metabase 后,您所需要做的就是在您的应用中放置指向 Metabase 的链接,您的客户就能拥有美观、品牌一致的仪表盘和图表,他们可以使用 Metabase 易于使用的查询构建器和钻取功能自行探索。您还可以设置自定义目标,将用户引导至其他仪表盘、问题,甚至是自定义 URL。您的客户可以开箱即用地获得出色的用户体验,并可以在您为他们设置的任何标准仪表盘之上进行自己的分析——无需嵌入。
这种方法的优点是设置和部署速度快,而且(也许更重要的是)您不必预见客户会向他们的数据提出什么样的问题。Metabase 自带一个图形化查询构建器工具,可以帮助人们自行查找、筛选和聚合数据。您仍然可以创建标准仪表盘作为起点,或对数据进行编辑性的呈现,但重点是您不必这样做。
此外,选择将 Metabase 应用作为您应用的“sidecar”可以降低项目风险。如果您发现 Metabase 不符合您的需求,您也不会浪费任何时间去研究如何将其集成到您的应用中。
优势
- 设置快速。
- 为您的用户提供真正强大的分析基础功能。
权衡
- 您的客户需要离开您的应用才能查看图表和仪表盘。
- 有限的定制性:您只能使用 Metabase 的 UI 和功能。
2. 在 iframe 中嵌入整个 Metabase
交互式嵌入是我们客户中最受欢迎的策略。这种嵌入方式将整个 Metabase 应用放在您的应用内的 iframe 中,让用户可以使用分析功能,例如用于下钻的操作菜单和用于自助数据访问的查询构建器。
您在交互式嵌入上投入的精力可以有很大差异,这取决于您想构建多广泛的体验。您可以指定一组供客户导航的屏幕,并且可以将这些屏幕或仪表盘链接在一起。如果您的屏幕集小而直接,那么工作量可能不会比 sidecar 实现多多少。但由于您掌控着自己的应用,您可以通过更多的努力为客户创造一个可能更丰富的体验。
优势
- 您的客户可以探索自己的数据。
- 您可以通过在任何 Metabase 屏幕、图表或仪表盘之间设置特定的导航路径来自定义用户体验。
权衡
- 工作量更大:您需要设计容纳嵌入式 Metabase 屏幕的页面。
- 您只能嵌入整个应用程序,不能选择性地包含或排除某些部分(例如,您不能禁用查询构建器)。
- Metabase 提供固定数量的外观设置,因此您的应用设计与嵌入的 Metabase 组件之间可能存在一些美学差异。
3. 使用 Metabase React 组件自定义您的分析
通过嵌入式分析 SDK,您可以使用 React 嵌入单个 Metabase 组件(如独立的图表、仪表盘、查询构建器等)。您可以管理每个组件的访问和交互性,并可以进行高级定制以实现无缝的样式设计。
这里的工作量与交互式嵌入类似;您可以投入更多精力来定制更多体验,但并非必须。一旦您在应用中设置好组件,它就应该“开箱即用”。
优势
- 您可以选择要嵌入哪些组件。
- 您可以完全控制面向客户的分析的外观。
权衡
- 目前仅适用于 React 应用!
- 如果您真的想自定义分析功能,可能需要更多的 Web 开发工作。
4. Fork Metabase 源代码
Metabase Pro 和 Enterprise 版本是源代码可用的,因此您可以审查代码或 fork 它并随心所欲地使用它。图表设计?网格系统与您的网格冲突?您将可以访问 CSS、图形基元——完整的源代码。
如果您真的想调整嵌入式 Metabase 应用的设计以创造无缝体验,您可以选择这条路。即使您从未走这条路,知道有这个可用的空间来改变设计或添加功能也是很好的,以防您将来遇到标准 Metabase 无法解决的分析挑战。
优势
- 对用户体验的精细控制,以实现与您应用的无缝集成。
- 能够为仪表盘、图表等添加功能。
- 完全控制 Metabase 及其图表的设计。
权衡
- 您必须维护一个 fork;随着新 Metabase 版本的发布,您需要将这些更改集成到您的 fork 中。
- 工作量很大。比构建自己的分析平台工作量要少很多,但比交互式嵌入或 SDK 要多得多。
5. 构建您自己的分析平台
太多公司承担了构建自己的分析软件的工作,原因往往不明确。这些公司花费大量时间和金钱(数百万到数千万美元)来构建次等的工具,而 Metabase 开箱即用的功能已经超越了这些工具,他们本可以将这些资源用于其核心业务和开发。
话虽如此,构建自己的分析平台也有其正当理由。在这种情况下,您可能已经有了一个第三方分析解决方案,但它未能满足您的需求。您确切地知道需要构建什么(以及为什么需要构建它),并拥有足够的工程资源来投入该项目。例如,您可能需要解决一个 Metabase(或其他产品)无法解决的权限问题,这不仅仅是添加功能和提交拉取请求那么简单。只要确保您打算通过编写自己的平台解决的问题是关键任务,并且现有产品缺乏处理这些问题的功能。
优势
- 完全控制体验,而无需维护一个 fork。
- 处理其他解决方案(如 Metabase)无法解决的用例。
权衡
- 最昂贵的选择,投资回报不明朗。
哪种选择适合您的组织?
大多数公司选择交互式嵌入(将整个 Metabase 嵌入 iframe),因为他们希望通过额外的可定制性为客户提供更精选的屏幕集。但交互式嵌入并不是使用 Metabase 提供分析的唯一选择。它可能不是最好的起点,特别是如果您是一家试图在有限资源下实现最大效益的初创公司。在这种情况下,可以考虑使用独立的 Metabase——这是向客户交付价值的最快方式。您可以在迭代过程中随时过渡到嵌入式解决方案,但在此期间,您已经为客户提供了他们可以使用的数据,并且您将对他们所需的分析有更深入的了解。
对于大公司来说,fork 源代码可能更有意义。这是一项更大的投资,但您将能够提供比从头开始构建分析平台更具成本效益的解决方案。
当然,如果您不想维护一个 fork,Metabase 接受拉取请求!利用 Metabase 内置的功能集,为完成您的分析产品所需的最后一点功能提交一个 PR,您将以构建自己的平台所需成本的一小部分获得所需的定制解决方案,同时还能为每个人改进 Metabase。