小T导读:本篇文章是“2024,我想和 TDengine 谈谈”征文活动的优秀投稿之一,作者从数据库运维的角度出发,分享了利用 TDengine Cloud 提供的迁移工具,从 PostgreSQL 数据库到 TDengine 进行数据迁移的完整实践过程。文章详细记录了从创建数据库实例、配置代理,到添加数据源、同步数据的每一个步骤,并结合实际操作中遇到的问题与解决经验,展现了 TDengine Cloud 的便利性和研发团队的高效响应能力。对于关注数据库迁移的技术人员来说,这篇文章是一个宝贵的经验分享。
从数据库管理员(DBA)或运维人员的角度来看,判断数据库是否易用,最直观且通常最先面临的问题便是存量数据库的迁移。如果数据库厂商能够提供一款高效便捷的迁移工具,使用户能够快速将源数据库的数据迁移至目标数据库,不仅能为用户留下良好的第一印象,也将大大促进后续工作的顺利开展。由于线下缺乏合适的迁移工具,因此本文将利用 TDengine Cloud 提供的迁移工具,对从 PostgreSQL 数据库迁移至 TDengine 的过程进行初步体验和探索。

创建数据库实例

首先,我们需要在官方 TDengine Cloud 平台(https://cloud.taosdata.com/auth)上完成注册并创建数据库实例。该过程操作简便,此处不再赘述。
图片

创建新的代理

由于我的源数据库位于本地虚拟机,而目标数据库托管于 TDengine Cloud,因此需要在本地虚拟机上安装代理,以确保 TDengine Cloud 能够访问本地虚拟机中的 PostgreSQL 数据库。

  1. 点击左侧数据写入菜单,在该界面中,再次点击创建新的代理。

2c848704c79d6ddc817e249bec6516e3__fallback_source=1&height=1280&mount_node_token=Ar4FdsM76oeHt4xGBIVcM9gMndd&mount_point=docx_image&policy=equal&width=1280.png

  1. 根据实际环境选择适配的代理软件版本进行下载。以官网提供的 Linux 版本为例,本文下载的是 x86 架构的代理程序。下载并安装完成后,通过命令 taosx-agent -V 验证安装是否成功,然后点击“下一步”继续操作。

b6976d2e06af0d3d9399ffb98bae069d__fallback_source=1&height=1280&mount_node_token=QZ8vdDWvlobuy8xa2W8cPq3VnXm&mount_point=docx_image&policy=equal&width=1280.jpg

  1. 在该界面输入代理名称,系统将为它生成一个连接令牌。

648f540d46154fbf871cbcd73eadb476_2c01d5de-b5bc-49ec-a84e-b1ad35a12925.jpg

  1. 在已安装代理程序的服务器上,进入 /etc/taos 目录,找到 agent.toml 文件,将系统生成的端点地址和令牌复制到该文件中进行配置。
endpoint="https://39.97.158.21"
token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEzNywiaWF0IjoxNzI2MTk2NDY3fQ.YmxGvRzlXdOgpXEKiUv-x68TFRzkYhXIRcJgRiWY0xk"

image.png

5.启动代理服务并查看服务器的状态。
图片

添加数据源

1.在数据写入的页面中,点击添加数据源。
f6e3636ad235a7e61ba842ec30075896_ae0c0351-d17d-4073-af60-0f0f06415a7a.png

  1. 在数据源配置界面中,选择数据源类型为 PostgreSQL,代理选择之前创建的代理,目标数据库选择已创建的 demo 数据库(本文直接使用此前创建的数据库)。如果需要,也可参考下一步自行创建新数据库。

d702ee6aa85d8e399736330848a4a32d_1f7288f3-b776-46d6-b715-651fb5c9c64e.jpg

  1. 创建 demo 数据库。

ccffd4fbc0ce0009a6129e2d9f6b7ead_c76a1643-763c-4578-a1b8-219370356bf4.png

  1. 填写 PostgreSQL 数据库 IP、端口、数据库名、用户名、密码等信息。

b8c1ddca47a279866c6e69890c610e79_c4ed5185-880d-4778-9d8f-6fde9cb45fb9.jpg

  1. 检查连通性,如果界面提示“您的数据源可以连通”,就表示配置没什么问题。

7ca74e55d571ec094d4fff40da3542ce_c9cf3486-7997-48b2-b7bf-e76ad1afe274.png

  1. 配置采集数据的 SQL,在 SQL 中必须包括开始时间与结束时间。

4bcad81982af64cc7f97edc6f183a367_83b8f8f9-dc2f-47ec-bf39-7cabb16e92fd.png

  1. 点击从服务器检索,观察是否可以成功获取到数据。如果报错,则根据报错提示,修改 SQL 配置。

d87e11b71c50e1c720c2d26d670740d1_a5e9209b-e450-441a-a310-e8aae4cba62b.jpg

  1. 点击创建超级表,会自动关联刚才识别到的字段信息,根据需要修改字段类型、填写表名称,最后点击确定按钮。

196a70ae7bf8961e3153840b8325bd8a_5257391e-5e9c-48a4-8148-1d603a52fbc6.jpg

  1. 点击确认按钮后,超级表就创建成功了。接下来,我们需要在当前界面填写子表和 tag 列对应数据。

4e9ffa1bb48a9f881c2ab22e1629d237_15c7094c-b698-41d1-a547-9fb451d43886.png

  1. 点击新增按钮,数据源添加成功,并可在数据源列表中查看相关信息。

faf29eb1cba7ab0e2b14ed69e42b55e7_d5ccf8b5-0ce6-404e-bfcd-63711b990e55.png

image.png

查看数据同步情况

点击刚刚接入数据源的“查看”按钮,即可查看同步信息,包括同步时长、写入速度以及已处理的行数等详细数据。
f83a339054dbf5eb401b435f18deaf1b_5a384595-8c91-450a-a5d8-d9658ea9165f.png

核对同步数据

点击数据浏览器,选择对应的数据并查看业务表,就可以看到同步的数据。

67c801ae2ef6a4b860c4ea027162bf77_f2162bec-bc16-4a70-95fd-f024144e3300.jpg

你也可以自行写 SQL 来核对已经同步的数据量。

5e292293dbce80bdb5a6ef373c458dd1_b3599c72-149c-4dee-bb23-96ead09b6be2.png

结语

本次从 PostgreSQL 数据库迁移至 TDengine 的体验整体非常流畅。即使在迁移过程中遇到问题,也能够借助官方提供的支持快速定位并解决,充分展现了 TDengine 工具的便捷性和研发团队的高效响应能力。如果你也对 TDengine 的迁移工具感兴趣,不妨亲自尝试操作,体验其强大的功能。

TDengine 有话说

作为一款专注于时序数据的高效数据库,我们始终致力于简化用户的迁移过程。在 TDengine 3.3.0.0 和 3.3.2.0 版本中,我们进一步增强了数据接入功能,实现了传统关系型数据库向 TDengine 的平滑迁移。这两次重要更新成功打通了 MySQL、PostgreSQL、Oracle 和 SQL Server 到 TDengine 的迁移路径,大幅提升了迁移效率和用户体验。

不仅如此,TDengine 在数据接入方面还支持与多种数据源的无缝对接,包括 AVEVA Historian、OPC、Kafka、MQTT、InfluxDB 和 PI System 等,充分满足用户在多样化场景中的数据管理需求。

未来,我们将继续优化数据接入能力,为用户提供更加便捷、高效的工具,助力大家轻松应对数据管理的各种挑战。如果在迁移过程中遇到任何问题或有其他需求,欢迎添加小T vx(tdengine)寻求帮助,我们的研发团队将第一时间为您提供支持。期待与您共同探索更多数据管理的可能性!


TDengine涛思数据
95 声望34 粉丝

高性能、分布式的物联网、工业大数据平台