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

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 作为强大的日志服务引擎,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
409
分享
相关文章
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
357 67
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里云可观测官方发布了Observable MCP Server,提供了一系列访问阿里云可观测各产品的工具能力,包含阿里云日志服务SLS、阿里云应用实时监控服务ARMS等,支持用户通过自然语言形式查询
338 0
阿里云发布可观测MCP!支持自然语言查询和分析多模态日志
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
阿里云个人博客外网访问中断应急指南:从安全组到日志的七步排查法
1. 检查安全组配置:确认阿里云安全组已开放HTTP/HTTPS端口,添加规则允许目标端口(如80/443),授权对象设为`0.0.0.0/0`。 2. 本地防火墙设置:确保服务器防火墙未阻止外部流量,Windows启用入站规则,Linux检查iptables或临时关闭防火墙测试。 3. 验证Web服务状态:检查Apache/Nginx/IIS是否运行并监听所有IP,使用命令行工具确认监听状态。 4. 测试网络连通性:使用外部工具和内网工具测试服务器端口是否开放,排除本地可访问但外网不可的问题。 5. 排查DNS解析:确认域名A记录指向正确公网IP,使用`ping/nslookup`验证解析正
173 2
阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍
SQL Server 以其卓越的易用性和丰富的软件生态系统,在数据库行业中占据了显著的市场份额。作为一款商业数据库,外部厂商在通过解析原生日志实现增量数据捕获上面临很大的挑战,DTS 在 SQL Sever 数据通道上深研多年,提供了多种模式以实现 SQL Server 增量数据捕获。用户可以通过 DTS 数据传输服务,一键打破自建 SQL Server、RDS SQL Server、Azure、AWS等他云 SQL Server 数据孤岛,实现 SQL Server 数据源的流动。
257 0
阿里云DTS踩坑经验分享系列|DTS打通SQL Server数据通道能力介绍
网络安全视角:从地域到账号的阿里云日志审计实践
网络安全视角:从地域到账号的阿里云日志审计实践
客户说|长桥科技引入阿里云ClickHouse重构行情分析业务,性能提升10倍
客户说|长桥科技引入阿里云ClickHouse重构行情分析业务,性能提升10倍
127 0
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
100 0

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等