云原生数据仓库AnalyticDB MySQL版湖仓版(3.0)支持SLS数据源实时入湖建仓分析。本文介绍SLS实时入湖建仓分析的操作。
功能介绍
湖仓版(3.0)SLS实时入湖是通过数据湖技术重构数仓、分析数据,将日志服务采集的数据入湖,以支持近实时产出、全量历史归档、弹性分析等需求。湖仓版(3.0)SLS实时入湖支持从指定时间位点,实时同步日志服务LogStore中的数据入湖。
前提条件
注意事项
- 目前AnalyticDB MySQL版集群中的一张表仅支持同步日志服务中的一个LogStore。
- 实时入湖需要日志服务的Project与AnalyticDB MySQL湖仓版(3.0)实例属于相同地域。
使用流程
创建湖仓
如果您需要在已有湖仓中进行实时数据接入,可跳过该步骤,直接创建工作负载,详情请参见创建工作负载。
- 登录云原生数据仓库AnalyticDB MySQL控制台。
- 在页面左上角,选择集群所在地域。
- 在左侧导航栏,单击集群列表。
- 在湖仓版(3.0)页签下,单击目标集群ID。
- 在左侧导航栏,单击 。
- 在实时数据接入页面的湖仓列表页签,单击右上角创建新湖仓。
- 在新建湖仓页面进行参数配置。参数说明如下表所示:
参数名称 参数说明 湖仓名称 AnalyticDB MySQL湖仓的名称。 描述信息 湖仓备注描述,例如湖仓应用场景、应用业务限制等。 存储类型 AnalyticDB MySQL湖仓数据的存储介质,当前仅⽀持OSS类型。 存储路径 AnalyticDB MySQL湖仓数据在OSS中的存储路径。展示出的Bucket是与AnalyticDB MySQL集群同地域下的所有Bucket,您可以任意选择其中一个。 警告 请谨慎规划存储路径,创建后不允许修改。请选择一个空目录,且不能与之前创建的湖仓目录有相互前缀关系,防止历史数据被覆盖。编码 存储数据的编码类型,当前仅⽀持⽬标存储数据编码为UTF8。 - 参数配置完成后,单击创建。
湖仓创建成功后,湖仓列表页签中将展示创建成功的湖仓任务。

创建工作负载
- 在实时数据接入页面的湖仓列表中,单击操作列的创建工作负载。
- 在新建工作负载页面,选择数据源为SLS数据源。
- 进行数据源的基础配置、源端及目标端配置、同步配置、目标库表配置。
- 基础配置的参数说明如下:
参数名称 参数说明 工作负载名称 工作负载的名称。 Job型资源组 需要保证Job型资源组的计算预留资源的资源数大于或等于2 ACU。 - 源端及目标端配置的参数说明如下:
配置项 参数名称 参数说明 源端配置 SLS Project所在地域 SLS Project所在地域。 是否跨阿里云主账号 SLS实时入湖支持跨阿里云账号同步SLS数据到AnalyticDB MySQL。 - 不跨账号:同步当前账号下的SLS数据到AnalyticDB MySQL。
- 跨账号:同步非当前账号下的SLS数据到AnalyticDB MySQL。选择跨账号同步数据时,需要填写跨阿里云主账号和跨阿里云主账号角色名。
跨阿里云主账号 源端SLS所属的阿里云账号的ID。 跨阿里云主账号角色名 可信实体为阿里云账号的RAM角色。如何创建RAM角色,请参见创建可信实体为阿里云账号的RAM角色。 RAM角色中已将AnalyticDB MySQL所属阿里云账号设置为SLS所属阿里云账号的信任云账号。
SLS Project 源端SLS的Project。 重要 SLS Project列表中会展示阿里云账号(主账号)与RAM用户(子账号)下所有的Project。若选择阿里云账号的Project,请确保RAM用户有该Project的权限,否则数据无法同步到AnalyticDB MySQL中。SLS Logstore 源端SLS的Logstore。 目标端配置 目标端类型 目前仅支持数据湖-OSS存储。 目标端湖仓 目标端湖仓名称。 输出数据格式 目前仅支持数据格式为HUDI。 高级配置 高级配置 高级配置可以让您对湖仓任务进行个性化的配置。如需进行个性化配置,请联系技术支持。 - 同步配置的参数说明如下:
参数名称 参数说明 增量同步所需ACU数 指定任务运行所需的Job型资源组ACU数。最小ACU数为2,最大ACU数为集群剩余可用计算预留资源数。建议多指定一些ACU数,可以提升入湖性能及任务稳定性。 说明 创建数据同步任务时,使用Job型资源组中的计算预留资源,系统会从资源组中扣除该任务占用的该部分资源。例如Job资源组的计算预留资源为48 ACU,已创建了一个8 ACU的同步任务,在该资源组中继续创建另一个同步任务时,可选的最大ACU数为40。增量同步起始消费位点 同步任务启动时会从选择的时间点开始消费SLS数据。取值说明: - 最早位点(begin_cursor):自动从SLS数据中最开始的时间点消费数据。
- 最近位点(end_cursor):自动从SLS数据中最近的时间点获取数据。
- 自定义点位:您可以选择任意一个时间点,系统则会从SLS中第一条大于等于该时间点的数据开始消费。
- 目标库表配置参数说明如下:
参数名称 参数说明 库名 同步到AnalyticDB MySQL的数据库名称。数据库名称长度不能超过64个字符。如果不存在同名数据库,将新建库;如果已存在同名数据库,数据会同步到已存在的数据库中。 表名 同步到AnalyticDB MySQL的表名称。表名称长度不能超过128个字符。如果库中不存在同名表,将新建表;如果库中已存在同名表,数据同步会失败。 Schema字段映射 默认会从日志服务的投递任务配置中获取字段,如LogStore没有配置投递任务,会默认根据最近的日志数据获取字段。 - 支持的数据类型:BOOLEAN、INT、BIGINT、FLOAT、DOUBLE、STRING。
- 支持同步SLS保留字段,详情请参见保留字段。
重要- 暂不支持修改目标端字段名。
- 若任务启动运行过(包含启动运行中和已启动运行完成),不支持修改已有列信息,但支持添加新列。若任务仅创建但未启动运行,则可正常修改。
分区键设置 为目标表设置分区字段。建议按日志时间或者业务逻辑配置分区,以保证入湖与查询性能。如不设置,则目标表默认没有分区。 目标表分区字段的格式处理方法分为:时间格式化和指定分区字段。- 指定时间格式化处理方法时,需要选择一个时间字段(如时间戳)。按指定的时间字段和格式进行分区。例如,源字段为gmt_created,源字段格式为yyyy-MM-dd,目标字段为year,目标字段分区配置为yyyy,表示按年进行分区。
- 指定分区字段方式时,直接按列分区。
- 基础配置的参数说明如下:
启动工作负载
- 在工作负载列表页签中,选择创建成功的入湖负载,在操作列单击启动。
- 单击右上角刷新,状态变为RUNNING即工作负载启动成功。
数据分析
同步任务完成后,您可以通过Spark Jar 开发对同步到AnalyticDB MySQL的数据库进行数据分析。Spark开发的相关操作,请参见Spark开发编辑器和Spark应用配置指南。
- 在左侧导航栏,单击 。
- 在默认模板中输入示例语句,并单击立即执行。
-- Here is just an example of SparkSQL. Modify the content and run your spark program. conf spark.driver.resourceSpec=medium; conf spark.executor.instances=2; conf spark.executor.resourceSpec=medium; conf spark.app.name=Spark SQL Test; conf spark.adb.connectors=oss; -- Here are your sql statements show tables from lakehouse20220413156_adbTest;
说明 您可以编辑SQL语句,对数据库的表进行查询(SELECT)、更新(UPDATA)、插入(INSERT)等操作。 - 可选:在应用列表页签中,单击操作列的日志,查看Spark SQL运行的日志。
管理工作负载
在实时数据接入页面的工作负载列表页签中,您可以在操作列执行以下操作。
操作按钮 | 说明 |
---|---|
暂停 | 停止当前同步任务。 |
删除 | 删除当前同步任务。 |
变配 | 修改同步任务使用的ACU数。 |
修改位点 | 修改当前同步任务的起始消费位点。 |