在Metabase中使用MongoDB
使用Metabase可视化和探索MongoDB中的数据。运行MongoDB原生查询并分析非表格数据。
在本教程中,我们将使用免费的MongoDB Atlas集群和Metabase Cloud的免费试用版来构建一个探索MongoDB示例数据的仪表板。
步骤1:创建MongoDB Atlas集群
-
访问MongoDB Atlas并创建账户。
-
创建一个免费的M0集群。勾选“预加载示例数据集”框,将示例数据加载到您的集群中——我们将在本教程中使用它。
如果您在创建集群后看到集群连接弹出窗口,现在可以关闭它。在集群配置期间,我们来创建一个将连接到该集群的Metabase Cloud实例。
步骤2:设置Metabase
- 从https://metabase.net.cn/cloud开始。您将被要求创建一个Metabase商店账户。
- 选择“Starter”计划。别担心:无论您选择哪个计划,都将获得14天免费试用,并且您可以随时更改或取消您的计划。
-
为您的Metabase选择别名和区域
别名:您将用来登录Metabase的URL。
区域是您的Metabase将托管的区域(您可以稍后更改)。
- 设置您的Metabase大约需要2分钟。(在此期间,您可以为Atlas集群配置网络访问。)一旦您的Metabase准备就绪,您将被要求为这个新的Metabase创建一个单独的账户(与您的Metabase Cloud商店账户分开)。
您可以在Metabase设置屏幕上输入数据库详细信息,但我们现在跳过这一步,稍后添加数据库。
步骤3:配置您的Atlas集群以允许Metabase连接
为确保Metabase可以读取集群中的数据,您需要允许Metabase使用的IP地址进行访问。
在您的Atlas集群设置中,转到网络访问并添加与您选择的区域对应的Metabase Cloud IP地址。
步骤4:获取MongoDB连接信息
要将Metabase连接到MongoDB,您需要获取连接字符串或连接参数。对于Atlas集群中的数据库,连接字符串选项更方便。
- 在您的Atlas集群界面中,点击连接并选择驱动程序
-
在“在您的应用程序代码中添加连接字符串”中找到连接字符串
此连接将用于整个Atlas集群,但Metabase需要连接到特定的数据库。
-
编辑连接字符串,在
/
后添加数据库名称mongodb+srv://metabot:metapass@metabase-magic.a5ej7.mongodb.net/sample_mflix?retryWrites=true&w=majority&appName=metabase-magic
这里我们使用了Atlas集群中预加载的sample_mflix
数据库。
步骤5:将Metabase连接到MongoDB
您可以在设置Metabase时将其连接到MongoDB,或者在Metabase初始化后通过管理设置 → 数据库连接您的数据库。
在连接界面中,点击“粘贴连接字符串”并粘贴连接字符串(请记住用您的密码替换<password>
占位符!)
如果您在连接时遇到任何问题,请查看我们的MongoDB连接文档和连接故障排除指南。
步骤5:查看您的数据
一旦Metabase连接到您的MongoDB,您就可以开始在Metabase中探索数据了。如果您仍处于管理员模式,请点击右上角的退出管理员。
在左侧导航侧边栏中,转到浏览 → 数据库,找到您新添加的数据库及其中的集合。如果您连接到sample_mflix
数据库,您应该会看到Movies、Theaters、Comments等集合。
点击一个集合以查看其内容
Metabase将以表格形式呈现MongoDB文档。从这个视图中,您可以开始探索数据。例如,尝试点击标题并筛选数据
要处理更复杂的文档,您可以使用Metabase的查询构建器。
步骤6:无需编写代码即可构建查询
Metabase带有一个图形化查询构建器,让您无需编写任何代码即可探索数据。
要开始使用查询构建器,请点击右上角的“+ 新建”按钮,然后选择“问题”。Metabase中的“问题”是我们对查询及其可视化的称呼。
Metabase将解析MongoDB数据的JSON结构,让您可以在单个字段上进行筛选、汇总、连接和排序。
例如,我们可以使用Atlas集群中预加载的电影示例数据,看看人们是否给新电影的评分低于旧电影。Movies
集合包含如下所示的IMDB数据
{
"rating": 7.4,
"votes": 9847,
"id": 439
}
让我们构建一个查询,计算过去50年每年IMDB电影的平均评分
有关查询构建器的更多信息,请查看我们关于如何在查询构建器中提问的分步教程。
请注意,Metabase识别“IMDB”字段中的子字段,并允许您按这些子字段创建汇总。
要以表格形式预览结果,请点击“汇总”块旁边的“播放”按钮。
步骤7:创建图表
要创建图表,请点击可视化。
要自定义图表,请点击左下角的设置齿轮图标。例如,要添加趋势线,请切换到“显示”选项卡并开启“趋势线”。
为了强调评分的变化,您可以在“轴”选项卡中编辑y轴范围。
看起来老电影确实获得了更好的评分!
一旦您对图表满意,点击右上角的“保存”按钮将其保存到集合中。这样您以后就可以重新访问、分享它,并将其添加到仪表板。
步骤8:钻取数据
使用查询构建器构建的图表是交互式的:您可以细化或钻取数据。尝试以下操作
- 点击并拖动以选择时间序列的一部分进行放大;Metabase将限制日期范围。
- 点击一个数据点并选择“查看这些电影”,以查看特定年份的单个电影及其评分。
- 点击一个数据点并选择“按此数据筛选”,以获取所有高评分电影。
步骤9:使用MongoDB查询语言进行查询
Metabase会将您在查询构建器中创建的每个问题转换为MongoDB查询。您可以通过点击右上角的“查看原生查询”按钮在查询构建器中查看它生成的查询,并且您可以将任何查询构建器问题转换为MongoDB查询。
您也可以从头开始创建原生MongoDB查询:点击左上角的“+ 新建 → 原生查询”,选择您的数据库、集合,然后开始编写代码。
例如,电影示例集合在Genres
数组中包含电影类型数据。您可以展开数组并按类型计算平均电影时长
[
{ $unwind: "$genres" },
{
$group: {
_id: {
genres: "$genres",
},
avg: {
$avg: "$runtime",
},
},
},
{
$project: {
_id: false,
genre: "$_id.genres",
avg: true,
},
},
];
运行查询并通过点击左下角的“可视化”按钮来可视化结果。例如,您可以将结果可视化为柱状图
请记住保存您的问题,以便您可以将其添加到仪表板!
后续步骤
接下来您可以在Metabase中尝试以下几点