抽象的
一系列开源和商业工具可以提供提取,负载和转换(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 Study和webinar所述,切换到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所示,管道应不久后开始运行。
管道完成将需要一点时间才能完成。
在singlestoredB中,应该创建两个表格,restaurants
和neighborhoods
,以匹配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。