‧
5 分钟阅读
如何在生产环境中运行 Metabase
Metabase 团队
‧ 5 分钟阅读
分享此文章
我们提供了本文的新版本和改进版本。
Metabase 有两个版本:开源版和企业版。在生产环境中运行它们有两种基本方式
- Metabase Cloud,这是最简单的方式。
- 自托管,无论是本地部署还是使用第三方云提供商。
我们将详细介绍每种方式的优缺点,以便您为自己的组织做出正确的选择。由于自托管 Metabase 的方式不止一种,我们将提供一些指导,帮助您选择最适合您的设置。最后,我们将回顾一些设置 Metabase 的最佳实践,无论您选择哪种方式。
不用担心——您随时可以迁移到不同的 Metabase 设置。
Metabase Cloud
我们从最简单的选项开始:Metabase Cloud。我们为您托管 Metabase,这样您就可以专注于使用它,而不是运行它。我们提供的每个层级都易于迁移,并且没有麻烦:我们处理设置、备份和升级,因此您只需获得无忧的 Metabase 体验,并受益于新功能的发布。
Metabase Cloud 的优势
- 即插即用。
- 可能比处理和支付自托管解决方案更经济实惠
Metabase Cloud 的权衡
- 比起设置自己的基础设施,控制力更弱。
- 如果您的组织有 HIPAA 等数据合规性要求,这不是正确的选择。
自托管 Metabase
我们努力让自托管 Metabase 尽可能简单,特别是因为我们知道有法规和合规性要求的组织确实(而且应该)自托管。
要自托管,您需要
- 用于运行 Metabase Docker 镜像或 JAR 文件的服务器。
- 一个应用程序数据库来存储问题、仪表盘和用户。
自托管的优势
- 对您的基础设施有更多控制权。
- 可能会更便宜,具体取决于您团队的经验和资源。
自托管的权衡
- 您将承担额外开销:您将负责迁移到生产应用程序数据库,然后自行设置、维护、备份和升级 Metabase。
如何自托管 Metabase
如果您决定自托管 Metabase,您需要就如何在生产环境中运行 Metabase 做出一些决定。
- Metabase Docker 镜像还是 JAR 文件?
- 生产应用程序数据库应使用哪种数据库?
- 如何备份您的应用程序数据?
- 本地部署还是云端?
Docker 镜像还是 JAR 文件?
Metabase 提供两种打包方式:Docker 镜像和 JAR 文件。两者提供相同的体验:您的用户不会察觉到区别。
您不会做出错误选择:这两种方式都能让您的 Metabase 平稳运行,并且都易于扩展。从底层来看,它们都运行 Metabase JAR。我们提供这两种选项的原因是为了在生产环境中运行 Metabase 时提供灵活性。
关于在 Docker 容器中运行 Metabase 还是作为 JAR 文件运行,我们的建议是:如果您的团队熟悉容器,并且了解服务器和网络,您可能会更喜欢运行 Docker。否则,请运行 JAR 文件。如果您对 Docker 和 Java 都不熟悉,我们建议您运行 JAR 文件,因为学习的内容会少很多。
运行 Docker 容器有一些优势,因为容器只打包了运行 Metabase 所需的一切。这种应用程序隔离可以使其更容易管理和编排您的应用程序。而且由于 Docker 打包了 Metabase 所需的一切,您甚至无需知道如何安装 Java 和运行 JAR 文件。Docker 镜像打包了运行 JAR 所需的 JVM,并为您运行 JAR 文件。
运行 JAR 文件的优势在于,您只需安装 Java 并运行 JAR 文件即可启动并运行 Metabase。您无需了解 Docker 容器的工作原理。
将应用程序数据库迁移到生产数据库
您需要将 Metabase 附带的应用程序数据库(H2 数据库)迁移到生产 SQL 数据库。应用程序数据库存储您所有的用户、问题、仪表盘和其他 Metabase 应用程序数据。
Metabase 默认附带 H2 数据库是为了让您轻松地在机器上启动和运行 Metabase。但 H2 数据库不适合在生产环境中运行 Metabase。
我们建议您迁移到 PostgreSQL、MySQL 或 MariaDB。
备份您的应用程序数据库
您还将负责备份您的应用程序数据库,以免丢失您的问题、仪表盘和其他报告数据。一些云提供商提供作为服务的 SQL 数据库,可以为您处理备份。
第三方云提供商
您可以使用 Amazon Web Services、Google Cloud Platform、Microsoft Azure 等提供商的云服务来运行 Metabase 和您的应用程序数据库。
安装 Metabase 后
无论您选择哪种选项——Metabase Cloud 或自托管,Docker 或 JAR——您仍然需要设置您的 Metabase
您的 Metabase 将尽力猜测数据库的键和数据类型,这样您就不必填写所有内容,但您仍应确认 Metabase 猜测正确。根据您的数据库如何格式化其数据,Metabase 可能会将日期字段归类为文本字段。拥有正确的元数据对于确保您的可视化按预期工作至关重要。
配置好 Metabase 后,是时候进行测试了