将MongoDB Atlas连接到Redshift:2种简单方法

232 阅读10分钟

将MongoDB Atlas连接到Redshift:2种简单方法

Aditya JadononAmazon Redshift,Data Integration,Data Warehouses,Database Management Systems,MongoDB- June 17th, 2022 -Write for Hevo

公司需要分析他们的数据,并将其存储在安全和统一的存储空间。他们需要将数据从SaaS应用程序、内部部署和数据库转移到数据仓库,以组织和更好地利用数据。MongoDB Atlas是一个数据库即服务,允许用户将他们的数据存储在其他云存储空间供应商。

企业可以通过将数据从MongoDB Atlas加载到Redshift(这是一个完全管理的数据仓库),从他们的业务数据中产生洞察力,以做出更好的商业决策。在这篇文章中,你将了解到连接MongoDB Atlas和Redshift的方法。你将通过一种自动化的方式将MongoDB Atlas连接到Redshift,以及一种通过Amazon S3的手动方法。

目录

什么是MongoDB Atlas?

图片来源

MongoDB Atlas是一个完全管理的数据库即服务(DBaaS),它允许公司建立、部署和扩展数据库,而不必担心任何内部硬件和性能配置。它使开发人员能够部署和管理数据库,同时提供在云供应商上建立有弹性和性能的应用程序所需的多功能。它可以在AWS、Azure和GCP上使用。

MongoDB Atlas的主要特点

MongoDB图集的一些主要功能如下。

  • 安全性。MongoDB Atlas通过合规标准和现有协议确保你的数据安全,以便与企业级功能和内置控制进行安全整合。
  • 最佳的性能。MongoDB Altas可以轻松地在任何方向上进行扩展,并提供实时可见的指标和性能组织工具。
  • 可靠性。MongoDB Atlas提供任务控制工作负载,并实现自动数据恢复和分布式容错。

要了解更多关于MongoDB Atlas的信息,请点击这里

什么是亚马逊Redshift?

图片来源

亚马逊Redshift是由AWS(亚马逊网络服务)提供的一个完全管理的云数据仓库服务。它帮助企业存储和分析他们的数据,并帮助他们组织业务数据。亚马逊Redshift可以使用大规模并行处理(MPP)和柱状存储来处理并发查询和PB级的数据。亚马逊Redshift有自己的计算引擎,可以进行计算并产生关键的洞察力。

亚马逊Redshift的主要特点

亚马逊Redshift的一些主要功能列举如下。

  • 规模并行处理。亚马逊Redshift应用MPP,使用分而治之的策略将负载分配给几个处理器。
  • 容错性。Amazon Redshift持续监控集群的健康状况,并自动复制故障驱动器的数据,并根据需要更换节点,以提供容错架构。
  • 灵活的查询。Amazon Redshift配有查询编辑器,允许用户从控制台或连接任何其他SQL客户端工具或BI工具灵活查询数据。

要了解更多关于Amazon Redshift的信息,请点击这里

探索这些方法来连接MongoDB Atlas和Redshift

MongoDB Atlas连接到Redshift 允许用户将他们的MongoDB数据安全地加载到Amazon Redshift中,这可以解决企业的一些最大的数据问题。在这篇文章中,我们介绍了两种方法来实现这一目标。

方法1:使用Hevo简化MongoDB Atlas到Redshift的连接

Hevo Data,一个自动数据管道,为你提供了一个无忧无虑的解决方案,在几分钟内通过一个易于使用的无代码界面连接MongoDB Atlas和Redshift。Hevo是完全管理的,不仅可以从MongoDB Atlas加载数据,还可以丰富数据并将其转化为可分析的形式,而无需编写一行代码。

免费开始使用Hevo

方法2:手动连接MongoDB Atlas到Redshift

这种方法实施起来会很费时,而且有些繁琐。用户需要通过Amazon S3桶手动从MongoDB Atlas加载数据到Redshift。

下面对这两种方法都进行了解释。

连接MongoDB Atlas和Redshift的方法

现在你已经了解了什么是MongoDB Atlas和Amazon Redshift。在本节中,你将了解到将MongoDB Atlas连接到Redshift的步骤。由于你不能直接将数据从MongoDB Atlas转移到Redshift,你必须先将数据加载到Amazon S3,然后再加载到Amazon Redshift,以将MongoDB Atlas连接到Redshift。以下是将数据从MongoDB Atlas加载到Redshift的方法。

方法1:使用Hevo简化MongoDB Atlas到Redshift的连接

图片来源

Hevo Data可以帮助你以一种完全无障碍和自动化的方式连接MongoDB Atlas和Redshift。Hevo支持MongoDB Atlas作为一个源,并在几分钟内从Webhooks加载数据到任何数据仓库。

Hevo是完全管理的,完全自动化的过程,不仅从你想要的来源加载数据,而且还丰富了数据并将其转化为可分析的形式,而不需要写一行代码。Hevo照顾到你所有的数据预处理需求,将MongoDB Atlas连接到Redshift,让你专注于关键业务活动。

使用Hevo数据平台的优势。

  • **最少的设置 -**你将需要最少的设置和带宽来使用Hevo平台从Webhooks加载数据。
  • 没有数据损失 - Hevo 架构是容错的,允许简单、可靠、无缝地将数据从Webhooks转移到任何数据仓库,没有数据损失。
  • **100个开箱即用的集成 -**Hevo平台将数据从其他来源,如SDKs,云应用程序,数据库等引入数据仓库和数据库。因此,Hevo是你所有增长的数据需求的正确合作伙伴。
  • 自动模式检测和映射 - 传入数据的模式被自动扫描。如果检测到有变化,它们会被无缝处理,并将这些变化纳入数据库或数据仓库中。
  • 卓越的**支持 -**Hevo通过电子邮件、电话和聊天提供24×7技术支持。

在这里注册获得14天的免费试用!

方法2:手动连接MongoDB Atlas到Redshift

手动连接MongoDB Atlas到Redshift的过程需要你将数据加载到Amazon S3,然后再将数据加载到Amazon Redshift。以下是手动连接MongoDB Atlas到Redshift的步骤。

步骤1:创建MongoDB Atlas数据湖

  • 首先,你必须通过导航到位于左侧导航菜单的数据湖 选项来创建数据湖。
  • 然后,点击创建数据湖配置一个新的数据湖按钮。

图片来源

  • 现在,通过点击Amazon S3添加一个数据存储来开始。

图片来源

  • 现在,你必须授权AWS的凭证。
  • 如果你已经为MongoDB Atlas创建了一个角色,并授权其对Amazon S3的读写权限。
  • 如果你想创建一个新的角色,那么从数据联盟选项中创建它。
  • 然后,输入Amazon S3的信息。在这里,提供Amazon S3桶的名称,如mongodb-atlas-to-redshift-demo
  • 然后,选择读写权限,以便MongoDB Altas可以读写Parquet文件到Amazon S3桶。
  • 现在,你必须为你的AWS IAM角色分配一个访问策略。为此,进入你的MongoDB Atlas用户界面。你的访问策略应该与此类似,如下图所示。
{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Effect": "Allow",
            "Action": [
               "s3:ListBucket",
               "s3:GetObject",
               "s3:GetObjectVersion",
               "s3:GetBucketLocation"
            ],
            "Resource": [
               <role arn>
            ]
      }
   ]
}
  • 现在,为你在Amazon S3桶中的文件定义路径结构,然后点击下一步按钮。

第2步:将MongoDB数据库连接到你的数据湖

  • 在本教程中,数据存在于MongoDB数据库,我们将把它转移到MongoDB Atlas。
  • 现在添加一个数据存储,并选择MongoDB Atlas集群。

图片来源

  • 然后提供集群的名称,并填写其他基本信息,配置数据湖。

图片来源

第3步:创建MongoDB Atlas触发器以每分钟创建新文档

  • 现在我们要设置一个MongoDB数据库触发器,使其每分钟都能自动生成新的文档,以便连续复制。触发器允许你响应数据库事件或根据时间表执行服务器端逻辑。
  • 我们将创建一个预定的触发器,以确保文档自动归档在Amazon S3桶中。
  • 现在,从屏幕顶部导航到MongoDB Atlas标签,并点击触发器选项。
  • 现在导航到 "触发器 "页面上的 "概述 "选项卡。然后,点击添加触发器,打开触发器配置页面。
  • 你可以为你的触发器输入这些配置值,如下图所示。

图片来源

  • 触发器的功能将如下图所示。
exports = function () {

   const mongodb = context.services.get("NAME_OF_YOUR_ATLAS_SERVICE");
   const db = mongodb.db("NAME_OF_YOUR DATABASE")
   const events = db.collection("NAME_OF_YOUR_COLLECTION");

   const event = events.insertOne(
      {
            time: new Date(),
            aNumber: Math.random() * 100,
            type: "event"
      }
   );

   return JSON.stringify(event);

};
  • 现在你可以运行并检查数据库是否每60秒获得新数据。

图片来源

第4步:创建MongoDB Atlas触发器来复制数据到S3

  • 你可以利用MongoDB Data Lake的$out到Amazon S3的聚合管道。
  • 让我们利用下面显示的这些配置设置来创建一个新的触发器。

图片来源

  • 让我们来分解一下我们的触发器功能。首先,你必须连接到MongoDB Atlas数据湖,并确保数据湖的名字在context.services.get中。
  • 你必须连接你的MongoDB Atlas数据湖,使用$out到Amazon S3。
  • 现在你必须查询超过60秒的数据。所以为此,你必须创建一个聚合管道函数。
  • 然后你必须使用$out聚合运算符,这样你就可以把你的数据从之前的聚合阶段复制到Amazon S3。
  • 现在要通过Amazon S3将你的数据从MongoDB Atlas转移到Redshift,你需要指定Parquet 作为一种格式,并确定maxFileSize和maxRowGroupSize。
  • 接下来,你必须提供Amazon S3的路径,以匹配数据的价值。
exports = function () {

   const datalake = context.services.get("NAME_OF_YOUR_DATA_LAKE_SERVICE");
   const db = datalake.db("NAME_OF_YOUR_DATA_LAKE_DATABASE")
   const events = db.collection("NAME_OF_YOUR_DATA_LAKE_COLLECTION");

   const pipeline = [
      {
            $match: {
               "time": {
                  $gt: new Date(Date.now() - 60 * 60 * 1000),
                  $lt: new Date(Date.now())
               }
            }
      }, {
            "$out": {
               "s3": {
                  "bucket": "mongodb-data-lake-demo",
                  "region": "us-east-1",
                  "filename": "events",
                  "format": {
                        "name": "parquet",
                        "maxFileSize": "10GB",
                        "maxRowGroupSize": "100MB"
                  }
               }
            }
      }
   ];

   return events.aggregate(pipeline);
};
  • 现在你可以在你的Amazon S3桶中看到新的Parquet文件。

图片来源

第5步:使用AWS数据管道来连接Amazon S3和Redshift

  • 我们在这里要使用的是RedshiftCopyActivity。这个活动支持S3作为一个源类型。
  • 在RedshiftCopyActivity中可以有不同的插入模式--KEEP EXISTING, OVERWRITE EXISTING, TRUNCATE, APPEND。
  • KEEP EXISTING和OVERWRITE EXISTING是为了让用户定义具有相同主键的行是被覆盖还是保持原样。

这就是了!你已经成功地将MongoDB Atlas连接到Redshift。

总结

在这篇文章中,你了解了亚马逊Redshift和MongoDB Atlas。你经历了将MongoDB Atlas连接到Redshift的两种方法。从MongoDB Atlas加载数据到Redshift的手动过程涉及许多步骤,这将消耗时间,对于实时数据传输来说不可行。

访问我们的网站来探索Hevo

公司从多个数据源(如MongoDB Atlas)和其他数据仓库(如Amazon Redshift)存储宝贵的数据。将数据从源头转移到目的地的手动过程是一项繁琐的任务。Hevo Data是一个无代码数据管道,可以帮助你从MongoDB Atlas向Redshift传输数据。它可以完全自动化地从100多个数据源加载和转换数据到你选择的目的地,而不需要写一行代码。

想体验一下Hevo吗?在这里注册,获得14天的免费试用,并亲身体验功能丰富的Hevo套件。

在下面的评论区分享你学习MongoDB Atlas与Redshift连接的经验!

你所有的客户数据都在一个地方。

免费试用