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

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介: 作为强大的日志服务引擎,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日志并进行多维度分析。
相关文章
|
7月前
|
监控 Serverless 数据库
Serverless 应用引擎常见问题之biphon-education-配置了SLS后一直重启如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
|
NoSQL MongoDB SQL
MongoShake最佳实践
mongoshake最佳实践,到底该怎么玩?
19781 0
|
SQL 存储 分布式计算
ODPS跨集群迁移与数据同步经验分享
集团业务的迅猛发展带来数据量的激增,存储容量告急,迫切需要将生产集群PA上的大量数据迁移到其它集群。如何安全地跨集群迁移几十PB的数据和其上相关业务,是我们面临的第一个挑战。数据迁移之后,两个集群间存在大量的数据依赖,需要互相访问最新的数据,如何安全快速地实现跨集群数据同步,这是紧跟其后的第二个挑战
4079 0
|
3月前
|
NoSQL 安全 容灾
阿里云DTS踩坑经验分享系列|Redis迁移、同步
阿里云数据传输服务DTS在帮助用户迁移Redis数据、同步数据时,在某些复杂场景下会出现报错,或者源库与目标库数据不一致的问题,给用户带来困扰。本文介绍了DTS Redis到Redis迁移、同步过程中的典型问题,以帮助用户更好地使用DTS。
230 2
|
4月前
|
Web App开发 数据采集 DataWorks
DataWorks产品使用合集之增量同步任务没有启动,该如何排查
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之ClickHouse超时,该如何处理
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
分布式计算 DataWorks NoSQL
DataWorks产品使用合集之怎么离线同步MongoDB的增量数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
SQL 负载均衡 安全
阿里云DTS踩坑经验分享系列|全量迁移加速方法指南
阿里云数据传输服务DTS是一个便捷、高效的数据迁移和数据同步服务。一般而言,一个完整的DTS数据迁移任务主要包括预检查、结构迁移,全量迁移,增量迁移等阶段,其中全量迁移会将源数据库的存量数据全部迁移到目标数据库。面对各种各样的用户场景, 本文将重点介绍如何使用阿里云DTS实现全量数据迁移加速,以缩短迁移时间,确保数据迁移的效率和稳定性。
568 0
|
7月前
|
NoSQL MongoDB 数据安全/隐私保护
实时计算 Flink版产品使用合集之与OceanBase进行数据同步时遇到用户名和密码失败的问题,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
分布式计算 DataWorks NoSQL
DataWorks产品使用合集之DataWorks 中同步 MongoDB 数据的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
82 4