通过数据同步功能同步SLS数据至湖仓版
通过数据同步功能,您可以将SLS中指定时间点之后产生的数据实时同步至云原生数据仓库 AnalyticDB MySQL 版集群,以满足日志数据实时分析的需求。
前提条件
AnalyticDB for MySQL集群的产品系列为企业版或湖仓版。
AnalyticDB for MySQL集群与日志服务SLS的Project和Logstore位于同一地域。具体操作,请参见创建集群和快速入门。
已在AnalyticDB for MySQL集群中创建Job型资源组。具体操作,请参见新建资源组。
已创建AnalyticDB for MySQL集群的数据库账号。
如果是通过阿里云账号访问,只需创建高权限账号。具体操作,请参见创建高权限账号。
如果是通过RAM用户访问,需要创建高权限账号和普通账号并且将RAM用户绑定到普通账号上。具体操作,请参见创建数据库账号和绑定或解绑RAM用户与数据库账号。
AnalyticDB for MySQL集群中已创建目标库表。具体操作,请参见CREATE TABLE。
注意事项
目前AnalyticDB for MySQL集群中的一张表仅支持同步日志服务中的一个Logstore。若您需要同步多个Logstore,请创建多个数据表。
费用说明
该功能目前在免费公测中,公测结束时间为2024年5月30日,公测期间内,通过数据同步功能同步SLS数据时不收取费用。
使用流程
步骤一:配置RAM授权(可选)。
步骤二:新建数据源。
步骤三:创建同步链路。
步骤四:启动数据同步任务。
步骤五:管理数据源。
配置RAM授权(可选)
如果您仅同步当前账号下的SLS数据,可跳过该步骤,直接新建数据源,详情请参见新建数据源。
跨账号同步SLS数据到AnalyticDB for MySQL时,您需要在源端创建RAM角色,并为RAM角色精确授权、修改RAM角色的信任策略。
创建RAM角色。具体操作,请参见创建可信实体为阿里云账号的RAM角色。
说明配置选择信任的云账号参数时,选择其他云账号,填写AnalyticDB for MySQL集群所属的阿里云账号ID。您可以登录账号中心,在概览页面查看账号ID。
通过精确授权,为RAM角色授予AliyunAnalyticDBAccessingLogRolePolicy权限。具体操作,请参见为RAM角色精确授权。
修改RAM角色的信任策略,允许指定阿里云账号下的AnalyticDB for MySQL集群可以扮演该RAM角色。具体操作,请参见修改RAM角色的信任策略。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里云账号ID>:root" ], "Service": [ "<阿里云账号ID>@ads.aliyuncs.com" ] } } ], "Version": "1" }
说明阿里云账号ID为步骤1中填写的AnalyticDB for MySQL集群所属的阿里云账号ID,配置时无需填写尖括号(<>)。
新建数据源
如果您已添加了SLS数据源,可跳过该步骤,直接新建同步链路,详情请参见创建同步链路。
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版或湖仓版页签下,单击目标集群ID。
在左侧导航栏,单击数据接入>数据源管理。
单击右上角新建数据源。
在新建数据源页面进行参数配置。参数说明如下表所示:
参数名称
参数说明
数据源类型
选择数据源类型SLS。
数据源名称
系统默认按数据源类型与当前时间生成名称,可按需修改。
数据源描述
数据源备注描述,例如应用场景、应用业务限制等。
部署模式
目前仅支持阿里云实例。
SLS Project所在地域
SLS Project所在地域。
SLS Project所在地域。
说明目前仅支持选择AnalyticDB for MySQL集群所在地域。
是否跨阿里云主账号
AnalyticDB for MySQL集群支持同步相同阿里云账号或其他阿里云账号(跨账号)的SLS数据。
不跨账号:同步当前阿里云账号下的SLS数据到AnalyticDB for MySQL集群。
SLS Project
源端SLS的Project。
SLS Logstore
源端SLS的Logstore。
参数配置完成后,单击创建。
创建同步链路
在左侧导航栏,单击SLS/Kafka数据同步。
在右上角,单击新建同步链路。
在新建同步链路页面,配置数据源及目标端配置、目标库表配置和同步配置,参数说明如下表:
数据源及目标端配置的参数说明如下:
参数名称
参数说明
数据链路名称
数据链路名称。系统默认按数据源类型与当前时间生成名称,可按需修改。
数据源
选择已有的SLS数据源,也可新建数据源。
选择已有的SLS数据源,也可新建数据源。
目标端类型
选择数仓-ADB存储。
ADB账号
AnalyticDB for MySQL集群的数据库账号。
ADB密码
AnalyticDB for MySQL集群数据库账号的密码。
目标库表配置的参数说明如下:
参数名称
参数说明
库名
AnalyticDB for MySQL集群的数据库名称。
表名
AnalyticDB for MySQL集群的数据表名称。
源端数据预览
单击点击查看最近10条LogStore数据,可以查看源端SLS的10条数据。
Schema字段映射
AnalyticDB for MySQL集群表的字段自动填充目标字段和源字段。如果目标字段与源字段的映射关系不正确,请手动修改。
例如:AnalyticDB for MySQL集群数据表的字段名为name,源端SLS数据字段名为user_name,系统会自动以name填充源字段和目标字段,此时您需要手动修改源字段为user_name。
同步配置的参数说明如下:
参数名称
参数说明
投递起始位点
同步任务启动时会从选择的时间点开始消费SLS数据。
例如:投递起始位点选择为2024-04-09 13:10,系统则会从2024年4月9日13:10之后的第一条数据开始消费。
脏数据处理模式
同步数据时,若目标表中的字段类型与源端实际同步的SLS数据类型不匹配,则会导致同步失败。例如源端的数据是
abc
,而目标表中的字段类型是int
,此时会因为无法转换而导致同步异常。脏数据处理模式取值如下:
中断同步(默认值):数据同步终止,您需修改目标表的字段类型或修改为其他脏数据处理模式,再重启同步任务。
按NULL处理:脏数据按NULL值写入目标表,并丢弃脏数据。
例如:SLS数据总共有10行,某一字段中有2行是脏数据,则该2行数据转为NULL值写入,其他8行数据正常写入。
Unix时间戳转datetime
若SLS源字段是Unix时间戳(例如1710604800),而目标字段类型是DATETIME或TIMESTAMP,需开启此功能进行转换。开启后,您可根据SLS数据的时间戳精度选择秒级精度时间戳、毫秒级精度时间戳和微秒级精度时间戳。
上述参数配置完成,单击提交。
启动数据同步任务
在数据同步页面,选择创建成功的数据同步任务,在操作列单击启动。
单击右上角查询,状态变为正在运行即数据同步任务启动成功。
管理数据源
在数据同步页面,您可以在操作列执行以下操作。
操作按钮 | 说明 |
启动 | 启动数据同步作业。 |
执行详情 | 查看数据同步作业的详情,包括源和目的配置信息,运行日志以及运行监控。 |
编辑 | 可以编辑作业的起始位点,字段映射等。 |
暂停 | 暂停数据同步作业。暂停后的作业可以再次点击启动恢复同步,恢复同步会自动从暂停时所处的位点继续同步。 |
删除 | 删除数据同步作业。删除后无法恢复,请谨慎操作。 |