You need to enable JavaScript to run this app.
导航

实时同步日志服务数据到 EMR Hive

最近更新时间2024.01.18 10:28:12

首次发布时间2024.01.18 10:17:50

本文介绍如何通过火山引擎 DataLeap 的数据集成功能将日志服务中的日志实时同步到火山引擎 EMR Hive。

应用场景

本实践以外卖平台的数据分析系统为例。外卖平台数据分析系统主要功能是通过分析用户日志和业务数据实时展示数据看板、进行实时推荐/搜索排序/业务分析/业务监控等,因此外卖平台数据系统对数据的实时性有较高要求,实时数仓可较好地满足此需求。您可以通过日志服务、DataLeap 、EMR Hive等火山引擎云产品构建实时数仓。其中针对用户日志,本实践使用日志服务进行日志采集。当日志服务采集到日志后,日志会通过 DataLeap 的数据集成功能被实时同步到 EMR Hive。
日志字段样例如下所示,您可以根据如下数据类型,创建 EMR Hive 表。

说明

日志服务字段均为 String 类型,EMR Hive 的数据类型,请参考配置 Hive 数据源-支持的字段类型

字段

数据类型(TLS)

数据类型(Hive)

id

String

Int

name

String

String

address

String

String

create_time

String

Timestamp

date_info

String

Date

price

String

Decimal(15,5)

前提条件

  • 日志服务
    1. 已创建 TLS 日志项目和日志主题。详细说明请参考创建日志项目创建日志主题
    2. 已采集日志到 TLS 。详细说明请参考快速入门
  • EMR Hive
  • DataLeap
    • 如果使用 IAM 用户新建数据源,则需为 IAM 用户添加 DataLeap 项目的管理员角色。详细说明请参考管理成员
    • 已在 TLS 日志项目所在地域,创建 DataLeap 项目且在创建时绑定 EMR 集群。详细说明请参考创建项目
    • 已创建 EMR Hive 表。详细说明请参考管理 EMR Hive 表
    • 已创建独享集成资源组。详细说明请参考独享资源组管理
      独享集成资源组中所使用的 VPC 需与 EMR 集群所使用的 VPC 一致。

1 注册 TLS 数据源

  1. 登录 DataLeap租户控制台

  2. 在页面上方地域下拉框中,选择目标地域。

  3. 项目管理页面,单击目标项目对应的配置信息

  4. 项目控制台的左侧导航栏中,单击数据源管理。

  5. 自定义数据源页面,单击新建数据源

  6. 新增数据源面板中,完成如下配置。
    重要参数说明如下所示。详细说明请参考配置 TLS 数据源-数据源注册

    参数

    说明

    基本配置

    数据源类型

    选择火山引擎 TLS

    接入方式

    选择 TLS。

    数据源名称

    数据源名称。

    参数配置

    TLS 日志项目 ID

    输入目标 TLS 日志项目 ID。

    Access Key ID

    输入火山引擎主账号或子账号的 Access Key ID。
    您可以在火山引擎控制台密钥管理页面,根据页面提示查看并复制 Access Key ID。
    如果使用子账号的Access Key,需授予该子账户对应日志项目、日志主题的相关权限,包括DescribeProject、DescribeTopics、DescribeShards、DescribeCursor、ConsumeLogs。

    Secret Access Key

    火山引擎主账号或子账号的 Secret Access Key。
    您可以在火山引擎控制台密钥管理页面,根据页面提示查看并复制 Secret Access Key。
    如果使用子账号的Access Key,需授予该子账户对应日志项目、日志主题的相关权限,包括DescribeProject、DescribeTopics、DescribeShards、DescribeCursor、ConsumeLogs。

    资源组连通性

    选择目标独享集成资源组,单击测试
    数据源与独享集成资源组网络需保证能互通,详见网络连通解决方案

  7. 单击确定

2 注册 Hive 数据源

  1. 自定义数据源页面,单击新建数据源

  2. 新增数据源面板中,完成如下配置。
    重要参数说明如下所示。详细说明请参考配置 Hive 数据源-数据源注册

    参数

    说明

    基本配置

    数据源类型

    选择 Hive。

    接入方式

    选择 EMR Hive。

    数据源名称

    数据源名称。

    参数配置

    认证方式

    选择

    EMR 集群 ID

    选择目标 EMR 集群名称。

    数据库名

    选择目标 Hive 数据库。

    Hive 版本号

    依据已选择的 EMR 集群,自动展现集群中包含的 Hive 版本。

    用户名

    输入具备访问数据库权限的用户名。

    密码

    输入用户密码。

    资源组连通性

    选择目标独享集成资源组,单击测试
    数据源与独享集成资源组网络需保证能互通,详见网络连通解决方案

3 创建数据同步任务

本示例采用可视化模式创建数据流式同步任务。如果您要采用 DSL 模式、批式读取数据,请参见配置 TLS 数据源-数据同步任务开发配置 Hive 数据源-数据同步任务开发

  1. 返回到项目管理页面,单击目标项目的名称。

  2. 在左侧导航栏中,单击新建任务

  3. 选择任务类型。

    参数

    说明

    分类

    选择数据集成

    选择任务

    选择流式集成

  4. 设置任务基本信息。

    参数

    说明

    任务名称

    数据同步任务的名称。

    保存至

    选择任务存放的目标文件夹目录。

  5. 单击确定

  6. 选择数据源。

    1. 设置来源数据源。

      参数

      说明

      数据源类型

      选择 TLS

      数据源名称

      选择您在注册 TLS 数据源时所注册的 TLS 数据源。

      日志主题

      选择待同步的日志所在的 TLS 日志主题。

    2. 设置目标数据源。

      参数

      说明

      目标类型

      选择 Hive

      数据源名称

      选择在注册 Hive 数据源时所注册的 Hive 数据源。

      数据表

      选择目标 EMR Hive 表,用于存储同步后的日志。

      分区频率

      根据业务需求,选择天级或小时级的分区频率。

      说明

      数据跟随 Hive 分区生成的时间产出,并非实时写入。

      分区设置

      分区字段从 EMR Hive 表中自动获取。分区内容可设置具体时间分区粒度,可使用 ${date}${hour} 等参数变量表示。

      说明

      建议分区类型中动态分区数目小于 10,否则会导致消费速率降低。

  7. 设置来源端和目标端字段的映射关系。
    根据 TLS 日志和 EMR Hive 表指定来源端和目标端的字段映射关系。根据字段映射关系,数据集成任务会将来源端字段中的数据,写入到目标端对应字段中。详细的操作步骤请参考流式数据同步-任务配置

    1. 添加来源端的字段。

    2. 添加目标端的字段。

  8. 设置任务运行参数。
    重要参数说明如下表所示,其他可保持默认配置。详细说明请参考流式数据同步-任务配置

    参数

    说明

    默认消费起始

    选定消费 TLS 日志的起始时间。

    • 最新:从最新的日志开始消费。
    • 时间戳:从指定的时间戳,开始消费。

4 使用数据

EMR 支持数据在线更新,并由 Doris/StarRocks 对数据应用层提供服务,支持在线、离线查询分析等。同步日志到 EMR Hive 后,您可以基于 EMR Doris/StarRocks 构建实时数仓。实时数仓可快速进行数据处理与分析,实现外卖平台数据的实时分析,快速获得用户画像、报表分析、辅助决策等信息。