metabase技术调研

1. 背景与需求

为了让运营团队更直观地获取相关数据,我们计划部署一个BI平台,并尽可能地将其集成在Admin运营平台中。这样,运营团队不仅能查看数据,还能通过图形化界面进行更深入的分析。


2. BI 平台介绍 - Metabase

2.1 选型原因

Metabase以其用户友好性、多样化的数据可视化工具和丰富的社区资源而受到青睐。此外,该平台提供不同版本以适应各种组织需求,包括具有高级功能和扩展性的商业版本,为未来可能的需求提供了灵活性。

2.2 功能介绍

  • 数据可视化:提供直观和高度可定制的图表和仪表板,以更有效地分析和解释数据。

  • 自定义报表:允许用户根据特定需求创建个性化的报表,支持多维度分析。

  • 查询灵活性:无论是SQL专家还是数据库新手,Metabase都提供了强大的SQL和非SQL查询选项。

  • 多语言支持:内建多语言功能,方便全球团队的统一使用。

  • 数据库兼容性:支持多种流行的数据库类型,无缝集成现有数据源。

  • 嵌入功能:可轻松嵌入到其他业务平台或应用中,以便进行统一的数据分析和展示。

  • 通知集成:支持与Slack和电子邮件进行集成,可自动发送关键数据和报表。

2.3 版本介绍

  • Open Source

  • Starter

  • Pro

  • Enterprise

具体详见: Metabase Pricing


3. 集成方案与分析

3.1 嵌入式集成到运营Admin平台

在这种方式下,每个Metabase生成的BI报表都会嵌入到运营Admin平台的特定功能区域中。

优点

  • 无缝集成:用户可以在运营平台内直接查看各类数据报表,无需跳转。

缺点

  • 限制交互:免费版本的嵌入报表不支持交互功能。

  • 开发复杂度:需要进行功能/UI设计,确定报表在Admin平台的布局和交互体验。

  • 前后端开发需求:尽管使用iframe简化了集成,但依然需要前后端的适配和开发。

效果如图(简单页面,无交互):

 

截屏2023-09-12 17.56.35.png

3.2 跳转到Metabase平台

用户点击Admin平台中的链接,跳转到部署好的Metabase平台进行数据查看和分析。

优点

  • 功能丰富:用户可使用Metabase平台上更丰富的交互功能。

  • 简化集成:无需在Admin平台进行额外的功能/UI设计和开发。

缺点

  • 多重登录:用户需要在Metabase平台进行额外登录,可能影响使用体验。

效果如图(独立平台,可交互):

 

截屏2023-09-12 17.58.44.png

 


4. 下一步行动计划

4.1 AWS 服务配置

  • 准备部署Metabase的相关AWS服务环境,确保所有必要的资源和设置都已就绪。

4.2 Metabase 部署与账号设置

  • 在AWS服务上部署Metabase应用,并配置相应的权限和账户信息。

4.3 报表开发

  • 根据运营需求,在Metabase平台上进行报表的设计和开发。

4.4 集成方案实施(如选择第一种集成方式)

4.4.1 Admin运营平台的交互与UI设计
  • 规划和设计Metabase报表在Admin运营平台中的布局以及交互体验。

4.4.2 前后端集成开发
  • 针对选定的集成方案,在前后端进行相应的开发工作,包括但不限于iframe嵌入、API接口对接和页面适配。


5. AWS部署方式

按照Metabase官方文档:Installation and operation overview

Metabase提供Jar包、Docker、以及官方云服务的部署方式。但根据我们的需求,只有前两种适合,所以结合AWS的服务,提供以下可能性组合:

5.1 使用Jar包和Amazon EC2

优点:

  • 简单:不需要了解Docker或Kubernetes。

  • 可控:直接在虚拟机上运行,便于手动管理和调试。

缺点:

  • 缺乏自动扩展:如果需要更多资源,你需要手动进行扩展。

  • 需要手动管理:包括安全更新、补丁、和监控。

5.2 使用Docker和Amazon EC2

优点:

  • 稍微标准化:使用Docker容器进行部署。

  • 灵活:容易迁移到其他支持Docker的平台。

缺点:

  • 需要一些Docker经验。

  • 同样缺乏自动扩展。

5.3 使用Docker和Amazon ECS

优点:

  • 容器管理:更易于管理多个容器实例。

  • 部分自动化:AWS ECS有一些自动化功能,如自动扩展。

缺点:

  • 更复杂:需要了解ECS的工作方式。

  • 有一些额外的成本。

5.4 使用Docker和Amazon EKS (Kubernetes)

优点:

  • 强大的自动化:自动扩展、自我修复等。

  • 高度可配置和可扩展。

缺点:

  • 高复杂性:需要了解Kubernetes。

  • 成本高:Kubernetes集群通常比其他选项更昂贵。

5.5 使用AWS Elastic Beanstalk和Jar包

优点:

  • 简单和自动化:提供了很多自动化功能,如扩展和更新。

  • 集成:与其他AWS服务(如RDS、ElastiCache等)很好地集成。

缺点:

  • 限制:某些高级配置可能不太容易实现。

  • 可能有额外成本:虽然Elastic Beanstalk本身是免费的,但它会自动创建一些可能产生费用的AWS资源。

  • github地址 https://github.com/metabase/metabase
posted @ 2024-05-10 13:46  Οo白麒麟оΟ  阅读(74)  评论(0编辑  收藏  举报