开源BI工具Metabase安装

安装Metabase:

Metabase是作为Java jar文件构建和打包的,可以在有Java环境的任何地方运行。下面我们提供有关如何在各种常见配置中安装和运行Metabase的详细说明。

本篇只介绍jar安装方式,其他方式请参考官方文档:https://www.metabase.com/docs/latest/operations-guide/start.html#installing-and-running-metabase

运行jar文件:

这是运行Metabase的最简单和最基本的方式。这里将介绍运行Metabase的一般要求,并介绍如何定制安装。

要运行Metabase jar文件,需要在系统上安装Java。目前Metabase需要Java 7或更高版本,并且可以在OpenJDK或Oracle JDK上运行。

Metabase团队倾向于尽可能使用开源解决方案。

下载 Metabase

下载地址:http://www.metabase.com/start/jar.html

验证Java已安装

在启动应用程序之前,必须验证是否安装了Java:

java -version

你应该看到如下输出:

java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

如果你没有看到上面的输出,而是看到一个错误或者你的Java版本低于1.7,那么你需要安装Java运行时。

启动Metabase

现在您已经有了一个可运行的Java Runtime,现在可以通过以下方式从终端运行jar:

java -jar metabase.jar

很简单,使用默认设置启动Metabase应用程序,应该看到一些日志条目开始在终端窗口中运行,显示应用程序启动时的进度。一旦Metabase完全启动,将看到如下确认信息:

2015-10-14 22:17:50,960 [INFO ] metabase.core :: Metabase Initialization COMPLETE
2015-10-14 22:17:51,004 [INFO ] metabase.core :: Launching Embedded Jetty Webserver with config:
{:port 3000, :host "localhost"}
2015-10-14 22:17:51,024 [INFO ] org.eclipse.jetty.server.Server :: jetty-9.2.z-SNAPSHOT
2015-10-14 22:17:51,049 [INFO ] org.eclipse.jetty.server.ServerConnector :: Started ServerConnector@30aba609{HTTP/1.1}{localhost:3000}
2015-10-14 22:17:51,050 [INFO ] org.eclipse.jetty.server.Server :: Started @35910ms

此时最简单的安装方式已经完成了,现在访问 localhost:3000 试试吧!

第一次启动Metabase,会看到:

第一次启动Metabase

这个时候我们可以去试用Metabase了,但是还不能在生产环境运行,如果好奇心重,可以点击Let’s get started 按钮,如果想更深入的了解,请继续往下看。

配置应用程序数据库

应用程序数据库是Metabase存储用户信息,保存的问题,仪表板以及运行应用程序所需的任何其他数据的地方。默认设置使用嵌入式H2数据库,但这是可配置的。

注:在应用程序运行时,您无法更改应用程序数据库。这些值在应用程序启动时只读一次,并在应用程序的整个运行过程中保持不变。

注意:目前Metabase不提供将数据从一个应用程序数据库迁移到另一个应用程序数据库的自动化支持,所以如果您从H2开始然后想要迁移到Postgres,则必须从H2中转储数据并将其导入Postgres,然后再重新启动应用。

H2(默认)

Metabase实例使用H2数据库,不需要做其他配置。当应用程序首次启动时,它将尝试在启动应用程序的相同文件系统位置创建一个新的H2数据库。

您可以从终端看到这些数据库文件:

ls metabase.*

您应该看到以下文件:

metabase.db.h2.db  # Or metabase.db.mv.db depending on when you first started using Metabase.
metabase.db.trace.db

如果出于任何原因想要在启动Metabase的位置的单独位置使用H2数据库文件,则可以使用环境变量。例如:

export MB_DB_TYPE=h2
export MB_DB_FILE=/the/path/to/my/h2.db
java -jar metabase.jar

需要注意的是H2自动追加.mv.db或.h2.db将路径指定; 不要包括你的路径!换句话说,MB_DB_FILE应该是类似的东西/path/to/metabase.db,而不是类似的东西/path/to/metabase.db.mv.db(尽管这是实际创建的文件)。

Postgres

对于Metabase的生产安装,我们建议用户用更强大的选项(如Postgres)替换H2数据库。当Metabase与许多用户一起运行时,这提供了更高程度的性能和可靠性。

您可以使用几个简单的环境变量来更改应用程序数据库以使用Postgres。例如:

export MB_DB_TYPE=postgres
export MB_DB_DBNAME=metabase
export MB_DB_PORT=5432
export MB_DB_USER=<username>
export MB_DB_PASS=<password>
export MB_DB_HOST=localhost
java -jar metabase.jar

这将告诉Metabase使用提供的Postgres连接信息查找其应用程序数据库。

MySQL

如果你更喜欢使用MySQL,我们已经介绍了你。您可以使用这些环境变量将应用程序数据库更改为使用MySQL。例如:

export MB_DB_TYPE=mysql
export MB_DB_DBNAME=metabase
export MB_DB_PORT=3306
export MB_DB_USER=<username>
export MB_DB_PASS=<password>
export MB_DB_HOST=localhost
java -jar metabase.jar

这将告诉Metabase使用提供的MySQL连接信息来查找其应用程序数据库。

自定义Metabase Jetty Web服务器

在大多数情况下,没有理由修改Metabase运行其嵌入式Jetty Web服务器来托管应用程序的任何设置,但是如果您希望直接使用Metabase服务器运行HTTPS,或者需要在另一个端口上运行,那就是全部可配置。

在另一个端口上运行Metabase

默认情况下,Metabase将在端口3000上启动,但是如果您希望在另一个端口上运行应用程序,则可以通过设置以下环境变量来实现:

export MB_JETTY_PORT=12345
java -jar metabase.jar

在本例中,一旦应用程序启动,您将在端口上访问它,12345而不是默认端口3000。

监听特定的网络接口

默认情况下,元数据库将在侦听localhost。在某些生产环境中,您可能想要在不同的界面上进行监听,这可以通过使用MB_JETTY_HOST环境变量来完成:

export MB_JETTY_HOST=0.0.0.0
java -jar metabase.jar
处理Metabase中的时区

元数据库尽最大努力确保在您想要的任何时区进行正确和准确的报告,但时区是一个复杂的野兽,所以遵守下面列出的一些建议以确保您的报告按预期发布非常重要。

以下设置时区的地方都会影响您看到的数据:

Database - 包括全局数据库时区设置,特定列类型设置,甚至包括单个数据值。
OS & JVM - 在任何运行Metabase的系统上,操作系统的时区设置以及Java虚拟机都会影响您的报告。
Metabase - 在Metabase中报告时区设置(如果设置)将影响您的数据报告方式。
为了确保正确的报告,重要的是在所有地方始终如一地设置时区。配置数据库推荐以下设置:

确保所有数据库列都已正确设置,以包含时区知晓。

除非您有特殊需要,否则最好将数据库报告时区设置为UTC并将所有与日期/时间相关的值存储为UTC。
配置您的JVM以使用您想要用于报告的相同时区,这在理想情况下也应该与数据库的时区匹配。
将元数据库设置Report Timezone为与要查看报告的时区相匹配,再次,这应该与您所做的其他时区设置相匹配。
常见陷阱:

您的数据库使用的日期/时间列没有任何时区信息。通常,当发生这种情况时,您的数据库将假定所有数据来自数据库配置的任何时区,或者可能只是默认为UTC(请检查数据库供应商是否确定)。
您的JVM时区与您的元数据库Report Timezone选择不同。这是一个非常常见的问题,可以通过启动java来-Duser.timezone=<timezone>正确地设置选项来匹配元数据库报告时区。

配置日志记录级别

默认情况下,Metabase会记录相当多的信息。幸运的是,Metabase使用了Log4j,意味着日志记录是完全可配置的。

元数据库的默认日志配置可以在这里找到。您可以覆盖此属性文件,并-Dlog4j.configuration在运行Metabase时通过传递参数来告诉Metabase使用您自己的日志记录配置文件:

java -Dlog4j.configuration=file:/path/to/custom/log4j.properties -jar metabase.jar
开始自定义日志记录的最简单方法是使用log4j.properties与上面链接的默认文件的副本并进行调整以满足您的需求。请记住,您需要重新启动Metabase才能使文件的更改生效。

通过JMX监控

诊断性能相关问题可能是一个挑战。幸运的是,JVM附带了可以帮助诊断许多常见问题的工具。启用JMX并使用像VisualVM这样的工具可以帮助诊断与内存耗尽,挂起的元数据库实例以及响应时间缓慢相关的问题。有关设置的更多信息,请参阅通过JMX监控。

Java版本

配置数据库将运行在Java版本7或更高版本上,但Java 8是最简单和最常见的chioce。Java 7已于2015年4月由Oracle终身使用,因此,Metabase对Java 7的支持已被弃用。我们鼓励用户升级到Java 8,因为我们将在未来版本中放弃对Java 7的支持。有关安装/升级Windows或MacOS系统的更多信息,请参阅Oracle安装说明。Linux用户可能会发现OpenJDK更易于安装/升级,更多信息可在OpenJDK安装页面上找到。

在Java 7上运行

在Java版本7上运行Metabase需要Java调用的附加参数:

java -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=256m -jar metabase.jar

请注意,这些额外的参数在Java 8上不是必需的。对Java 7的支持已被弃用,并且鼓励用户进行升级。

在Java 8上运行

在Java 8上运行是运行Metabase的最简单途径。没有额外的参数要求,如果从Jar启动,下面的调用将会起作用:

java -jar metabase.jar
在Java 9上运行

Java版本9引入了一个新的模块系统,对类加载有一些额外的限制。元数据库(和它的依赖)仍然依赖于旧的行为。Metabase在Java 9上运行,但需要额外的参数才能解决模块系统中的这些更改:

java --add-opens=java.base/java.net=ALL-UNNAMED -jar metabase.jar

生产环境配置建议:

export MB_DB_TYPE=mysql
export MB_DB_DBNAME=metabase
export MB_DB_PORT=3306
export MB_DB_USER=<username>
export MB_DB_PASS=<password>
export MB_DB_HOST=localhost
java -jar -Duser.timezone=UTC metabase.jar

更详细的配置请参考官方文档:https://www.metabase.com/docs/latest/operations-guide/start.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,063评论 6 510
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,805评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,403评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,110评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,130评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,877评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,533评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,429评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,947评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,078评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,204评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,894评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,546评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,086评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,195评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,519评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,198评论 2 357

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,674评论 18 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,941评论 2 89
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,832评论 6 342
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_X自主阅读 15,982评论 3 119
  • 就在兰曦兀自整理思绪的时候,屋内有个人轻轻地咳嗽了一声:“咳咳,我说,你叫姜兰曦是吧?” 这个声音、这个问话就犹如...
    晨寤夕寐阅读 248评论 0 0