云原生数据仓库AnalyticDB MySQL版湖仓版(3.0)支持SLS数据源实时入湖建仓分析。本文介绍SLS实时入湖建仓分析的操作。

功能介绍

湖仓版(3.0)SLS实时入湖是通过数据湖技术重构数仓、分析数据,将日志服务采集的数据入湖,以支持近实时产出、全量历史归档、弹性分析等需求。湖仓版(3.0)SLS实时入湖支持从指定时间位点,实时同步日志服务LogStore中的数据入湖。

前提条件

  • AnalyticDB MySQL集群为湖仓版集群。
  • 已创建Job型资源组,且计算预留资源需大于等于8 ACU以供入湖负载使用。详情请参见新建资源组
  • 已开通日志服务,并创建Project和LogStore。详细信息,请参见快速入门

注意事项

  • 目前AnalyticDB MySQL版集群中的一张表仅支持同步日志服务中的一个LogStore。
  • 实时入湖需要日志服务的Project与AnalyticDB MySQL湖仓版(3.0)实例属于相同地域。

使用流程

创建湖仓

如果您需要在已有湖仓中进行实时数据接入,可跳过该步骤,直接创建工作负载,详情请参见创建工作负载

  1. 登录云原生数据仓库AnalyticDB MySQL控制台
  2. 在页面左上角,选择集群所在地域。
  3. 在左侧导航栏,单击集群列表
  4. 湖仓版(3.0)页签下,单击目标集群ID
  5. 在左侧导航栏,单击数据接入 > 实时数据接入
  6. 实时数据接入页面的湖仓列表页签,单击右上角创建新湖仓
  7. 新建湖仓页面进行参数配置。参数说明如下表所示:
    参数名称参数说明
    湖仓名称AnalyticDB MySQL湖仓的名称。
    描述信息湖仓备注描述,例如湖仓应用场景、应用业务限制等。
    存储类型AnalyticDB MySQL湖仓数据的存储介质,当前仅⽀持OSS类型。
    存储路径AnalyticDB MySQL湖仓数据在OSS中的存储路径。展示出的Bucket是与AnalyticDB MySQL集群同地域下的所有Bucket,您可以任意选择其中一个。
    警告 请谨慎规划存储路径,创建后不允许修改。请选择一个空目录,且不能与之前创建的湖仓目录有相互前缀关系,防止历史数据被覆盖。
    编码存储数据的编码类型,当前仅⽀持⽬标存储数据编码为UTF8。
  8. 参数配置完成后,单击创建
湖仓创建成功后,湖仓列表页签中将展示创建成功的湖仓任务。2

创建工作负载

  1. 实时数据接入页面的湖仓列表中,单击操作列的创建工作负载
  2. 新建工作负载页面,选择数据源为SLS数据源
  3. 进行数据源的基础配置源端及目标端配置同步配置目标库表配置
    • 基础配置的参数说明如下:
      参数名称参数说明
      工作负载名称工作负载的名称。
      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,表示按年进行分区。
      • 指定分区字段方式时,直接按列分区。

启动工作负载

  1. 工作负载列表页签中,选择创建成功的入湖负载,在操作列单击启动
  2. 单击右上角刷新,状态变为RUNNING即工作负载启动成功。

数据分析

同步任务完成后,您可以通过Spark Jar 开发对同步到AnalyticDB MySQL的数据库进行数据分析。Spark开发的相关操作,请参见Spark开发编辑器Spark应用配置指南

  1. 在左侧导航栏,单击作业编辑器 > Spark Jar 开发
  2. 在默认模板中输入示例语句,并单击立即执行
    -- 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)等操作。
  3. 可选:应用列表页签中,单击操作列的日志,查看Spark SQL运行的日志。

管理工作负载

实时数据接入页面的工作负载列表页签中,您可以在操作列执行以下操作。
操作按钮说明
暂停停止当前同步任务。
删除删除当前同步任务。
变配修改同步任务使用的ACU数。
修改位点修改当前同步任务的起始消费位点。