快速提示:使用HEVO数据复制MongoDB Atlas数据库以singlestoredB云
#singlestoredb #mongodb #mongodbatlas #elt

抽象的

一系列开源和商业工具可以提供提取,负载和转换(ELT)功能。这些工具提供源和目标连接器,并可以使用自动数据格式转换。本文将使用商业ELT工具将MongoDB Atlas数据库复制到SinglestoredB Cloud。

介绍

previous article中,我们使用开源Airbyte在SinglestoredB和Apache Pulsar之间创建了ELT管道。在another article中,我们还看到了几种方法,可以将MongoDB JSON数据摄入SINGLESTOREDB。在本文中,我们将评估一种名为Hevo Data的商业ELT工具,以在MongoDB Atlas和SinglestoredB Cloud之间创建管道。如Captain Metrics Customer Case Studywebinar所述,切换到SinglestoredB有很多好处。

SINGLESTOREDB配置

previous article显示了创建免费的SinglestoredB云帐户所需的步骤。我们将使用 HEVO DEMO Group 作为我们的工作空间组名称,而Hevo-Demo 则用作我们的工作空间名称。我们会记下我们的密码主机名称。最后,我们将使用 sql编辑器
创建一个新数据库

CREATE DATABASE hevo_demo;

MongoDB配置

我们将在AWS上使用MongoDB Atlas共享集群部署。这将为我们提供一个3节点群集(一个主要和两个次要)。部署群集后,我们将加载示例数据集。我们还将创建一个名为hevo的用户,并将readAnyDatabase特权分配给本用户进行初始测试。

HEVO数据配置

1.配置源

我们将搜索并选择 mongodb atlas 作为来源。

我们将填写配置您的MongodB Atlas Source 表格,如下:

  • 管道名称: mongodb atlas source
  • 一般连接设置:
    • 选择粘贴连接字符串
    • 连接URI: mongodb+srv://hevo:<password>@<cluster>
  • 选择摄入模式:更改流
  • 高级设置:禁用加载所有数据库,然后从列表中选择sample_restaurants

我们将用MongoDB Atlas的值代替<password><cluster>

还列出了几个HEVO数据IP地址,应将其添加到MongoDB Atlas中的 IP访问列表

我们将使用测试连接按钮,并且连接应成功。

接下来,我们将单击测试并继续

2.选择对象

在下一页上,我们将检查()选中的所有对象,然后单击继续

3.配置目标

我们将搜索并选择 mysql 作为目的地。

我们将填写配置您的MySQL目标表格,如下:

  • 目的地名称: SinglestoredB目标
  • 数据库主机: <主机>
  • 数据库端口: 3306
  • 数据库用户: admin
  • 数据库密码: <密码>
  • 数据库名称: hevo_demo

我们将用我们的singlestoredB云帐户中的值替换<host><password>

还列出了几个HEVO数据IP地址,这些地址应添加到SingleStoredB Cloud Firewall中的入站IP允许列表

我们将使用测试连接按钮,并且连接应成功。

接下来,我们将单击保存并继续

4.最终设置

我们将使用自动映射将JSON字段复制到JSON列

接下来,我们将单击继续

如图1所示,管道应不久后开始运行。

Figure 1. Hevo Data Pipeline.

图1. HEVO数据管道。

管道完成将需要一点时间才能完成。

在singlestoredB中,应该创建两个表格,restaurantsneighborhoods,以匹配mongodb中的两个集合。

我们可以快速检查SinglestoredB中的每个表格,以查看HEVO数据管道生成的内容。这是restaurants表中的一个示例:

*************************** 1. row ***************************
                       _id: 5eb3d669b31de5d588f4754d
                   address: {"building":"7015","coord":[-74.026271,40.634328],"street":"3 Avenue","zipcode":"11209"}
                   borough: Brooklyn
                   cuisine: Ice Cream, Gelato, Yogurt, Ices
                    grades: [{"date":1401494400000,"grade":"A","score":10}]
                      name: Uncle Mikes Ices
             restaurant_id: 50001556
     __hevo__database_name: sample_restaurants
                 __hevo_id: ef392c2550f086e4e22680e2b9753383ff6e9ae0747c5634b1c4188978815eaf
       __hevo__ingested_at: 1667930442414
    __hevo__marked_deleted: 0
__hevo__source_modified_at: NULL

这是neighborhoods表的截断示例:

*************************** 1. row ***************************
                       _id: 55cb9c666c522cafdb053ab3
                  geometry: {"coordinates":[[[-73.74016951762782,40.73848189750691],[-73.74144628592867,40.736938746807425],[-73.74151636839602,40.73686036104047],
...
[-73.74055585492765,40.73858718262385],[-73.74029081629884,40.73851667014021],[-73.74016951762782,40.73848189750691]]],"type":"Polygon"}
                      name: Oakland Gardens
     __hevo__database_name: sample_restaurants
                 __hevo_id: b75f4ff0eddfff963f8a983274c856cf1d433806a536fddf36bfe1bb8c9def76
       __hevo__ingested_at: 1667930426142
    __hevo__marked_deleted: NULL
__hevo__source_modified_at: NULL

最终,restaurants表中应有25,359行,而neighborhoods表中应有195行。这些数字与MongoDB Atlas的数​​字匹配。

概括

这篇简短的文章显示了使用商业ELT平台自动复制到单骨架的数据库的一个示例。总体而言,结果非常有前途。自动映射成功工作,所有数据均从MongoDB Atlas复制到SinglestoredB Cloud。