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

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据管理 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日志并进行多维度分析。
相关文章
|
5天前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
|
12天前
|
存储 NoSQL 关系型数据库
|
24天前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
|
1月前
|
SQL 关系型数据库 MySQL
阿里云DTS踩坑经验分享系列|DTS SelectDB链路最佳实践
大数据时代背景下,高效的数据流转与实时分析能力对于企业的竞争力至关重要。阿里云数据传输服务DTS与SelectDB联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL/PostgreSQL、RDS MySQL/PostgreSQL、PolarDB for MySQL/PostgreSQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
136 3
|
2月前
|
弹性计算 安全 容灾
阿里云DTS踩坑经验分享系列|使用VPC数据通道解决网络冲突问题
阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。本文介绍如何使用VPC数据通道解决网络冲突问题。
133 0
|
3月前
|
SQL 存储 人工智能
阿里云日志服务的傻瓜式极易预测模型
预测服务有助于提前规划,减少资源消耗和成本。阿里云日志服务的AI预测服务简化了数学建模,仅需SQL操作即可预测未来指标,具备高准确性,并能处理远期预测。此外,通过ScheduledSQL功能,可将预测任务自动化,定时执行并保存结果。
107 3
|
3月前
|
存储 分布式计算 NoSQL
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
大数据-136 - ClickHouse 集群 表引擎详解1 - 日志、Log、Memory、Merge
89 0
|
3月前
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
8月前
|
关系型数据库 MySQL 数据挖掘
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
DTS 作为阿里云核心的数据交互引擎,以其高效的实时数据流处理能力和广泛的数据源兼容性,为用户构建了一个安全可靠、可扩展、高可用的数据架构桥梁。阿里云数据库 SelectDB 通过与 DTS 联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL / RDS MySQL / PolarDB for MySQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
|
8月前
|
SQL 分布式计算 监控
在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
【2月更文挑战第32天】在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
82 6

热门文章

最新文章