阿里云DTS踩坑经验分享系列|SLS同步至ClickHouse集群

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。

阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。



作者:柚梧


一、导读

作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。

二、SLS 链路能力介绍

1. 链路实现介绍

对于源端每一个 shard,我们会为它建立一条独立的数据通道,将指定时间开始的数据拉到 DTS 的 recordStore 里持久化保存。recordStore 中的所有数据会通过矩阵计算后写入到各自对应目标端的表中(注意,shard 不对应表,SLS 的 Topic 才对应目标端的表)。

2. 链路能力界限

类型

说明

源库限制

  • 须确保待同步Logstore的数据保存时间为7天以上。
  • 待同步的Logstore需要关闭自动分裂Shard功能。
  • DTS实例运行期间,请勿对Shard进行变更操作(如分裂Shard和合并Shard等),否则可能会导致数据丢失。

其他限制

  • 当前仅华北1(青岛)和华北2(北京)地域支持此功能。
  • 不支持DTS Serverless实例。
  • 不支持库表结构同步。
  • 不支持修改同步对象。
  • 不支持同步以__开头并__结尾的索引字段。
  • 若您需要将Logstore中所有Topic的数据同步到ClickHouse集群的同一张表,请在配置同步对象时在表名文本框中填入.*,否则可能会因Topic被过滤而导致相应数据丢失。
  • 重启任务可能会导致少量的数据重复。
  • 实例包含全量同步和增量同步,在任务列表合并显示为增量同步。
  • 待同步数据库的数量符合云数据库ClickHouse的限制,即不超过256个。
  • 若您采用先购买再配置的方式配置实例,在购买实例时需正确选择分布式数据库节点数量

说明

分布式数据库节点数量必须与待同步数据所属Logstore的Shard数一致。

  • 全量数据初始化,DTS将会占用源和目标库一定的读写资源,可能会导致数据库的负载上升。因此建议在执行数据同步前评估源库和目标库的性能,并在业务低峰期执行数据同步(例如源库和目标库的CPU负载在30%以下)。
  • 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。
  • 若实例运行失败,DTS技术支持人员将在8小时内尝试恢复该实例。在恢复失败实例的过程中,可能会对该实例进行重启、调整参数等操作。

说明

在调整参数时,仅会修改实例的参数,不会对数据库中的参数进行修改。可能修改的参数,包括但不限于修改实例参数中的参数。

3. 映射关系

3.1 库表信息映射

SLS 为日志服务,同步到 ClickHouse 这样的数仓,需要有一定的库表映射关系,如下表所示。其中,目标端字段为指定字段,DTS 只会同步指定字段的值,指定字段的数据类型映射参考 2.2 数据类型映射

SLS 基本元素

Clickhouse 映射

地域(Region)

地域(Region)

项目(Project)

实例(Instance)

日志库(Logstore)

数据库(Database)

日志主题(Topic)

表(Table)

日志(Log)

记录(Record)

索引(Index)

字段(Field)


3.2 数据类型映射

日志服务SLS

ClickHouse集群

TEXT

STRING

JSON

STRING

DOUBLE

INT64

LONG

FLOAT64


3.3 数据同步/迁移

在配置任务时,支持选择指定时间开始消费,需确保源端 SLS 在指定时间存有对应数据(如因数据过期被 SLS 清理,则链路配置会失败或从保存最早的数据开始消费)。

SLS 链路只有"增量模块",可通过控制台查看延迟情况来判断数据消费位置,以此来判断是否消费到最新数据。

三、常见问题解答

  1. 为什么需要关闭 Shard 的自动分裂/合并功能?

目前 DTS 侧还不支持 shard 分裂和合并的链路功能,如果不关闭此功能,那么新生产的 shard 将无法被 DTS 消费,导致目标端数据丢失。


  1. 配置同步对象时 Topic 和目标端的表应该如何配置。

SLS 中每一个 Logstore 的 Topic 对应目标端中的每一个表。如果需要同步指定 Topic,需要在配置界面中新增表,表名为需要同步的 Topic,目标端表名为该 Topic 同步到目标端对应的表。如果不需要指定 Topic,则将表名写为 .*(正则表达式),DTS 会同步所有 Topic 到目标端的指定表(这种情况下不允许再新增表,否则可能会导致数据丢失)。


  1. SLS 是日志服务,如何在数据上和 ClickHouse 对应。

DTS 支持将 SLS 中的索引同步到 Clickhouse 的字段,您需要在源端正确地建立索引,同时注意数据类型,确保该索引对应的数据类型能够全部正确地对应到 Clickhouse 中字段的类型,否则会导致数据转换失败,任务中断。


  1. 链路失败、暂停后重启会有数据丢失和数据重复吗?

该链路目前能做到 Exactly Once,重启后会自动过滤掉已经同步的数据;同时,只要源端的数据还在生命周期内,就不会丢失数据。


四、快来关注

  1. 数据传输服务(Data Transmission Service,简称DTS)支持关系型数据库、NoSQL、大数据(OLAP)等数据源,集数据迁移、订阅、实时同步、校验功能于一体,能够解决公共云、混合云场景下,远距离、秒级异步数据传输难题。其底层基础设施采用阿里双11异地多活架构,为数千下游应用提供实时数据流,已在线上稳定运行7年之久,是一款沉淀了丰富实践经验的可靠产品。点击了解更多DTS相关信息
  2. 详细操作步骤可参考:如何将数据从SLS同步至ClickHouse集群
  3. 欢迎加入钉群讨论交流:

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
打赏
0
7
9
0
397
分享
相关文章
阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍
SQL Server 以其卓越的易用性和丰富的软件生态系统,在数据库行业中占据了显著的市场份额。作为一款商业数据库,外部厂商在通过解析原生日志实现增量数据捕获上面临很大的挑战,DTS 在 SQL Sever 数据通道上深研多年,提供了多种模式以实现 SQL Server 增量数据捕获。用户可以通过 DTS 数据传输服务,一键打破自建 SQL Server、RDS SQL Server、Azure、AWS等他云 SQL Server 数据孤岛,实现 SQL Server 数据源的流动。
125 0
阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍
客户说|长桥科技引入阿里云ClickHouse重构行情分析业务,性能提升10倍
客户说|长桥科技引入阿里云ClickHouse重构行情分析业务,性能提升10倍
阿里云DTS踩坑经验分享系列|DTS SelectDB链路最佳实践
大数据时代背景下,高效的数据流转与实时分析能力对于企业的竞争力至关重要。阿里云数据传输服务DTS与SelectDB联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL/PostgreSQL、RDS MySQL/PostgreSQL、PolarDB for MySQL/PostgreSQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
266 3
阿里云DTS踩坑经验分享系列|使用VPC数据通道解决网络冲突问题
阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。本文介绍如何使用VPC数据通道解决网络冲突问题。
230 0
构建高可用性ClickHouse集群:从理论到实践
【10月更文挑战第27天】在数据驱动的时代,构建一个稳定、高效的数据库系统对于企业的业务发展至关重要。作为一名数据工程师,我深知数据库系统的高可用性和可扩展性对于支撑企业应用的重要性。在这篇文章中,我将分享如何构建一个高可用性的ClickHouse集群,从分布式表的设计到数据复制与分片,再到故障恢复机制,确保系统在大规模数据处理中的稳定性和可靠性。
155 0
构建高可用性ClickHouse集群:从单节点到分布式
【10月更文挑战第26天】随着业务的不断增长,单一的数据存储解决方案可能无法满足日益增加的数据处理需求。在大数据时代,数据库的性能、可扩展性和稳定性成为企业关注的重点。ClickHouse 是一个用于联机分析处理(OLAP)的列式数据库管理系统(DBMS),以其卓越的查询性能和高吞吐量而闻名。本文将从我的个人角度出发,分享如何将单节点 ClickHouse 扩展为高可用性的分布式集群,以提升系统的稳定性和可靠性。
538 0
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
4月前
|
ClickHouse安装教程:开启你的列式数据库之旅
ClickHouse 是一个高性能的列式数据库管理系统,适用于在线分析处理(OLAP)。本文介绍了 ClickHouse 的基本使用步骤,包括下载二进制文件、安装应用、启动服务器和客户端、创建表、插入数据以及查询新表。还提到了图形客户端 DBeaver 的使用,使操作更加直观。通过这些步骤,用户可以快速上手并利用 ClickHouse 的强大性能进行数据分析。
248 4
阿里云国际版设置数据库云分析工作负载的 ClickHouse 版
阿里云国际版设置数据库云分析工作负载的 ClickHouse 版