大数据之路:阿里巴巴大数据实践——日志采集与数据同步

简介: 本资料全面介绍大数据处理技术架构,涵盖数据采集、同步、计算与服务全流程。内容包括Web/App端日志采集方案、数据同步工具DataX与TimeTunnel、离线与实时数仓架构、OneData方法论及元数据管理等核心内容,适用于构建企业级数据平台体系。

第1章 综述

数据采集层

  • Aplus.JS:Web端日志采集技术方案。
  • UserTrack: APP端日志采集技术方案。
  • TimeTunnel:DB增量数据传输及日志数据传输,支持流式计算和基于时间窗口的批量计算。
  • DataX:阿里数据同步工具,直连异构数据库来抽取各种时间窗口的数据。

数据计算层

  • MaxCompute:离线大数据存储及计算平台。
  • StreamCompute:实时大数据存储及流式计算平台。
  • OneData:数据整合及管理(如指标体系和数据服务)的方法体系和工具,包含OneID、OneMetric和OneService。
  • 离线数仓:数据计算主要以天为单位(包含小时、周、月),每日凌晨处理T-1的数据。
  • 实时数仓:实时计算更新数据,如实时数据大屏。
  • 数仓分层
    • 操作数据层( Operational Data Store, ODS)
    • 明细数据层( Data Warehouse Detail , DWD )
    • 汇总数据层( Data Warehouse Summary, DWS )
    • 应用数据层( Application Data Store, ADS )
  • 元数据管理:数据源元数据、数据仓库元数据 、数据链路元数据、工具类类元数据、数据质量类元数据。
  • 元数据应用:主要面向数据发现、数据管理等 ,如用于存储、计算和成本管理等。

数据服务层

  • OneService:统一数据服务平台,以数据仓库整合计算好的数据作为数据源,对外通过接口的方式提供数据服务。
  • 功能:提供简单数据查询服务、复杂数据查询服务和实时数据推送服务。

第2章 日志采集

浏览器的页面日志采集

  • 基础指标:页面浏览量( Page View, PV)和访客数( Unique Visitors, UV )。
  • 页面浏览日志采集流程
    • 客户端日志采集:由植入HTML页面的JS脚本来执行,采集脚本被浏览器加载解析后执行。
    • 客户端日志发送:采集脚本执行时,会向日志服务器发起一个日志请求,以将采集到的数据发送到日志服务器。
    • 服务端日志收集:服务器接受客户端日志请求后,放入日志缓冲区。
    • 服务端日志解析:日志处理程序会对日志缓冲区顺序读取并进行处理解析。
  • 页面交互日志采集
    • 步骤一:业务方在日志服务的元数据管理界面依次注册需要采集交互日志的业务、业务场景和具体的交互采集点。
    • 步骤二:业务方将交互日志采集代码植入目标页面,并将采集代码与需要检测的用户行为相绑定。
    • 步骤三:当用户在页面上产生指定行为时,采集代码和正常的业务互动响应代码一起被触发和执行。
    • 步骤四:采集请求到服务端后,不做解析处理,只做简单的转储。
  • 页面日志的服务端清洗和预处理:识别流量攻击、网络爬虫和流量作弊、数据缺项补正、无效数据剔除、日志隔离分发。

APP端的日志采集

  • UserTrack:利用采集SDK来进行APP端的日志采集。
  • 事件类型:页面事件(页面浏览)和控件点击事件(页面交互)等。
  • 页面事件
    • 日志记录:①设备及用户的基本信息;②被访问页面的信息及业务参数 ; ③访问基本路径(如页面来源、 来源的来源 )。
    • 手动埋点:UserTrack提供三个接口(展现、退出、扩展),分别在页面展现、页面退出时调用记录用户操作信息。
    • SPM(Super Position Model):越级位置模型,可以进行来源去向追踪,通过透传机制还原用户行为路径。
  • 控件点击:①设备信息;②用户信息;③控件所在页面;④控件名称;⑤控件业务参数。
  • 其他事件:①事件名称;②事件时长;③事件所携带的属性;④事件对应的页面。
  • H5&Native日志统一
    • 步骤一:H5页面手动植入日志采集的JS脚本。
    • 步骤二:JS脚本执行时将所采集的数据打包到一个对象,利用WebView的JSBridge进行通信存储到客户端。
    • 步骤三:移动客户端日志采集 SDK ,封装提供接口,实现将传入的内容转换成移动客户端日志格式。
  • 日志传输:APP端产生日志后先存储在本地,然后伺机上传到服务器,服务端对不同等级的日志需要进行分流。

日志采集的挑战

  • 日志分流及定制处理:日志解析和处理过程中必须考虑业务分流、日志优先级控制,以及根据业务特点实现定制处理。
  • 采集与计算一体化设计
    • 背景:超大规模日志进行URL分流,使用正则匹配计算时会拖垮整个硬件计算集群。
    • 方案:通过 SPM 的注册和简单部署即可将任意的页面流量进行聚类得到聚合数据,避免服务端计算。

第3章 数据同步

数据同步基础

  • 直连同步:通过定义好的规范接口API和基于动态链接库的方式直接连接业务数据库,如ODBC/JDBC。
    • 痛点:执行大量数据同步时会降低甚至拖垮业务系统的性能。
  • 数据文件同步:直接从源系统生成数据的文本文件,由文件服务器传输到目标系统后,加载到目标数据库系统中(如日志同步)。
  • 数据库日志解析同步:以通过源系统的进程,读取归档日志文件用以收集变化的数据信息,将其解析到目标数据文件中。
    • 痛点:大量数据同步导致数据延迟、数据漂移和遗漏。

阿里数据仓库的同步方式

  • 批量数据同步:多源数据 ➡️ 数据仓库;数据仓库 ➡️ 业务系统。
    • DataX:能满足多方向高自由度的异构数据交换服务产品。
    • Framework + Plugin: Framework处理缓冲、流程控制、并发、上下文加载。
    • Job:数据同步作业。
    • Splitter:作业切分模块,将1个大任务分解成多个可以并发行的小任务。
    • Task:数据同步作业切分后的小任务。
    • Reader:数据读入模块,负责运行切分后的小任务,将数据从源系统装载到 DataX。
    • Channel: Reader 和 Writer 通过 Channel 交换数据。
    • Writer:数据写出模块,负责将数据从 DataX 导入目标数据系统。
  • 实时数据同步:日志需要快速以数据流的方式不间断地同步到数据仓库。
    • TimeTunnel:是一种基于生产者、消费者和 Topic 消息标识的消息中间件,将消息数据持久化到 HBase 的数据交互系统。
    • 生产者:消息数据的产生端,向 TimeTunnel 集群发送消息数据。
    • 消费者:消息数据的接收端,从 TimeTunnel 集群中获取数据进行业务处理。
    • Topic:消息类型的标识。
    • Broker: 负责处理客户端收发消息数据的请求,然后往 HBase 取发数据。

数据同步遇到的问题与解决方案

  • 分库分表处理:通过建立中间状态的逻辑表来整合统一分库分表的访问,如TDDL数据访问引擎。

  • TDDL:实现了 SQL 解析、规则计算、表名替换、选择执行单元并合并结果集的功能。

  • 高效同步和批量同步

    • 痛点:大量重复的数据任务操作、数据源种类太多需要特殊配置。
    • OneClick:对不同数据源同步配置透明化,自动生成配置信息;简化步骤,建表、配置任务、发布、测试操作一键化处理。
    • IDB:集数据管理、结构管理、诊断优化、实时监控和系统监控于一体的数据管理服务。
  • 增量与全量同步的合并
    • 增量同步:每次只同步新变更的增量数据到目标系统。
    • 全量同步:每次同步数据源数据表的所有数据到目标系统。
    • 合并技术:全外连接(full outer join) + 数据全量覆盖重新加载(insert overwrite)(全量更新比update性能高很多)。
    • 分区技术:每日调度最新的数据到新的分区,和原来所有分区的数据组成全量数据
  • 同步性能处理
    • 痛点:部分同步任务分发到CPU比较繁忙的机器会拖垮数据同步性能;数据同步任务无优先级,导致重要同步任务得不到调度。
    • 计算量级:估算该同步任务需要同步的数据量、平均同步速度、首轮运行期望的线程数、需要同步的总线程数。
    • 数据分发:根据同步的总线程数将待同步的数据拆分成相等数量的数据块,一个线程处理个数据块。
    • 同步控制:同步控制器判断待同步的总线程数是否大于首轮运行期望的线程数,大于则跳转至多机处理;否则跳转至单机处理。
    • 多机处理:准备该任务第一轮线程的调度,优先发送等待时间最长、优先级最高且同步任务的线程。
    • 单机处理:优先发送等待时间最长、优先级最高且单机 CPU 剩余资源可以支持首轮所有线程数且同任务的线程,如果没有满足条件的机器,则选择 CPU 剩余资源最多的机器进行首轮发送。
  • 数据漂移处理:通常是指 ODS 表的同一个业务日期数据中包含前一天或后凌晨附近的数据或者丢失当天的变更数据。
    • 时间戳字段:modified_time数据表更新时间;log_time 数据日志更新时间;proc_time数据表业务发生时间;extract_time数据抽取时间。
    • 漂移场景:数据抽取时间extract_time有延迟;业务系统未更新modified_time;系统压力导致log_time、modified_time延迟。
    • 处理方法:多获取后一天的数据,业务根据延迟时间确定;通过多个时间戳字段获得相对精确的值。
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
7月前
|
存储 数据采集 搜索推荐
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
本篇文章探讨了 Java 大数据在智慧文旅景区中的创新应用,重点分析了如何通过数据采集、情感分析与可视化等技术,挖掘游客情感需求,进而优化景区服务。文章结合实际案例,展示了 Java 在数据处理与智能推荐等方面的强大能力,为文旅行业的智慧化升级提供了可行路径。
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
|
7月前
|
存储 SQL 分布式计算
大数据之路:阿里巴巴大数据实践——元数据与计算管理
本内容系统讲解了大数据体系中的元数据管理与计算优化。元数据部分涵盖技术、业务与管理元数据的分类及平台工具,并介绍血缘捕获、智能推荐与冷热分级等技术创新。元数据应用于数据标签、门户管理与建模分析。计算管理方面,深入探讨资源调度失衡、数据倾斜、小文件及长尾任务等问题,提出HBO与CBO优化策略及任务治理方案,全面提升资源利用率与任务执行效率。
582 0
|
5月前
|
数据采集 缓存 大数据
【赵渝强老师】大数据日志采集引擎Flume
Apache Flume 是一个分布式、可靠的数据采集系统,支持从多种数据源收集日志信息,并传输至指定目的地。其核心架构由Source、Channel、Sink三组件构成,通过Event封装数据,保障高效与可靠传输。
345 1
|
6月前
|
存储 Kubernetes 监控
Kubernetes日志管理:使用Loki进行日志采集
通过以上步骤,在Kubernetes环境下利用LoKi进行有效率且易于管理地logs采集变成可能。此外,在实施过程中需要注意版本兼容性问题,并跟进社区最新动态以获取功能更新或安全补丁信息。
424 16
|
5月前
|
人工智能 Cloud Native 算法
拔俗云原生 AI 临床大数据平台:赋能医学科研的开发者实践
AI临床大数据科研平台依托阿里云、腾讯云,打通医疗数据孤岛,提供从数据治理到模型落地的全链路支持。通过联邦学习、弹性算力与安全合规技术,实现跨机构协作与高效训练,助力开发者提升科研效率,推动医学AI创新落地。(238字)
345 7
|
7月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
A+流量分析平台是阿里集团统一的全域流量数据分析平台,致力于通过埋点、采集、计算构建流量数据闭环,助力业务提升流量转化。面对万亿级日志数据带来的写入与查询挑战,平台采用Flink+Paimon+StarRocks技术方案,实现高吞吐写入与秒级查询,优化存储成本与扩展性,提升日志分析效率。
958 1
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
4464 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
480 9
|
10月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
1011 54

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 日志服务