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简化了集成,但依然需要前后端的适配和开发。
效果如图(简单页面,无交互):
3.2 跳转到Metabase平台
用户点击Admin平台中的链接,跳转到部署好的Metabase平台进行数据查看和分析。
优点:
-
功能丰富:用户可使用Metabase平台上更丰富的交互功能。
-
简化集成:无需在Admin平台进行额外的功能/UI设计和开发。
缺点:
-
多重登录:用户需要在Metabase平台进行额外登录,可能影响使用体验。
效果如图(独立平台,可交互):
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