一站式异构互通、整库迁移上云帮你应对数据采集带来的挑战

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 为什么进行数据采集?阿里云技术专家祁然带来日志数据上传的相关分享。本文主要从为什么进行数据采集开始聊起,进而重点说明了如何应对数据采集带来的挑战,包括一站式实现异构互通、提供整库迁移云上能力等,最后举例场景为大家演示了实验步骤实践。

在进行大数据分析的第一步或者说企业要做好运营的第一步,往往都需要将数据进行云化,针对多种异构数据或数据源,如何便捷、高效、稳定的对这些异构数据源进行数据的采集是我们入门大数据的第一步。本文主要从为什么进行数据采集开始聊起,进而重点说明了如何应对数据采集带来的挑战,包括一站式实现异构互通、提供整库迁移云上能力等,最后举例场景为大家演示了实验步骤实践。
直播视频回顾请点击

以下是精彩视频内容整理:

为什么进行数据采集?

我们主要依靠单维度的事务数据做决策,在大数据出现之后,我们需要基于用户的所有数据做决策,意味着从能制造数据变成能使用数据。如何才能够能使用数据?

1


数加总体数据加工解决方案这样的:先将应用产生的所有业务数据进行汇聚、分析、然后回流到业务系统,业务数据汇聚到数仓、回流的线上的过程就是数据采集的过程;

2


要完成数据采集,需要知道我们的数据在哪里?在创业初期,我们应用可能就是一个只需要支持几千个用户的系统,为了节省成本,我们的数据就存储在免费的MySQL中;
随着访问用户的增加,会发现单个数据库的压力越来越大,然后我们进行:读写分离、使用缓存、甚至会去购买商用的数据库,oracle,来提高用户体验;直到有一天,你发现你在关系型数据库上进行统计查询时,查询时间远超过用户可接受响应时间,于是你一部分业务开始迁移到NoSQL上去,像的HBase。如果我们的应用是一个请求量波动极大的应用,比如电商应用存在:秒杀、双11大促,游戏应用在每天晚上是在线用户高峰期间,为了避免资源浪费,我们会去选择具备弹性伸缩能力的阿里云存储资源。你会发现:随着应用的发的、业务场景的变化,我们数据会分散到各种数据存储中,而且不同的数据存储都有自己的数据结构。

3


此外,如果你的业务系统已经有成千上万的表,这些表如何快速将数据采集到应有的线上系统中?这个时候可能需要去一步一步配置很多任务。如果你的业务是一个全国性的应用,每个地域都有自己的数据存储,不同地域的数据存储到自己的队伍机房里面,每个机房都有自己的私有网络,这时候不可能把数据存储通过公网IP的形式暴露出来,那么,如何进行一个跨网的数据存储?
通过以上的分析,数据采集会带来哪些挑战呢,具体表现在以下四方面:
  1. 不易运维。我们的业务存储被存在各种因果数据存储中,我们要完成这些异构数据存储的数据互通,需要我们使用很多的工具:比如:将MySQL数据同步到oracle中,需要我们写一个dump脚本、将oracle数据同步到HDFS中,需要配置使用sqoop;将日志数据采集到数据库中,需要使用flume等。随着业务发展,需要维护的数据同步工具会形成指数级的增长,运维也会越来越复杂。
  2. 配置复杂。如果你有成千上万的表,需要每一个表、每一个字段去一一的映射匹配。
  3. 局限于单机。如果数据量达到一定程度时候,单机的能力毕竟是有限的,不管是网卡还是CPU的能力都不够用,很有可能会把单机的网卡打满。
  4. 无法跨网络。我们的数据可能在很多地域中都会有一些私有网络,我们无法直接去连接这些私有网络的IP,没办法进行两个地域之间的数据交换。面对这些问题,阿里云的数据集成是如何解决的?

一站式实现异构数据互通

4


首先,数据集成会做一次简单抽象,异构数据存储抽象为数据源;数据采集的抽取端抽象为Reader,数据采集的目的端抽象为writer;数据采集的架构就有网状的工具结构变成了以数据集成为中心的辐射结构;如果我们增加一个数据源,只需要在这个环上实现数据源和数据集成进行交互结合,比如现在有一个新出现的数据源,我只要在系统环节上实现数据集成的交互,就可以达到每增加一个数据源实现正能数据源和一流数据源之间无缝的互通,一站式实现各种异构数据源的数据互通,数据不再是孤岛。目前,数据集成已经覆盖了90%的数据源,包括普通的关系型数据库、大数据生态存储以及像阿里云的云存储。

提供向导、脚本配置模式

5


数据集成提供向导模式、脚本模式。如果你不是开发人员,只需要,在向导模式下,用户只需要一步一步的选择数据采集的源头、目的端,即可完成数据采集配置;如果你是开发人员,可以使用脚本模式,对一些数据库参数进行深度调优,同时我们可以支持选择一个数据源,就可以一键式将数据库下面的整个库迁移到云上的MaxCompute中。

多并发、分布式执行

6


如果你的数据集成配置一个业务,数据集成会根据你的任务级别情况,数据集成会自动将你的一个任务进行拆分为多个task,进而进行多并发、分布式的执行。突破单机瓶颈。只要的两端的数据库性能足够好,数据集成可以将每台执行机器的网卡打满。

无需暴露公网地址,实现数据跨机房交换

7


针对跨网络问题,数据集成提供一种解决方案,你只需要在自己的私有机房内找一台具备访问外网的机器部署我们agent,无需暴露数据库的公网地址。如果是跨机房,在数据集成上面只需要配置一个任务,数据集成会自动将这个任务拆分成两个子任务,每个子任务会运行到自己机房的agent上面,agent可以主动的把数据读出来,然后推到中间的数据集成中,推送的过程可以做很多事情,比如说压缩、分块、协议优化,目前我们已经支持TCP协议和UDP协议不同的转化,可以大大提升数据传输效应。

Workshop场景

我们已经了解了数据集成如何做数据采集,回到Workshop的场景中,我们需要将用户每天 00:30 将前一天产生的访问日志数据采集至大数据计算服务MaxCompute中,这里面的认知数据就是我们产地的访问日志数据,然后进行清洗、加工并构建网络日志分析数据仓库实现网站用户画像。
明确业务场景以及需要解决的问题之后就需要搜集整理已有的数据,明确数据的存储及格式等情况。Workshop层级的路径包括访问日志文件和用户基本信息表。具体实验步骤如下:
1. 需求分析
首先我们会进行数据分析,需要明天00:30将用户的访问日志采集到MaxCompute中,并将用户的信息表也采集到MaxCompute中,我们提炼出以下四个需求:

  • 2个数据源采集到MaxCompute: FTP、RDS for MySQL
  • 结构化数据增量同步: 每天增量同步MySQL数据
  • 半结构化数据增量同步: 每天增量同步FTP上的日志数据
  • 定时调度: 天调度,每天00:30同步采集任务
    2. 数据源配置

8


如何完成四个需求呢?我们需要去积累一些数据源,我们今天主要涉及到三个数据源,FTP数据源、MySQL数据源、MaxCompute数据源,创建数据源的时候,我们主要分为一是数据源的描述,根据数据源能够快速区分去识别;二是一些链接的必要信息,比如说源存储填写源存储的一些实例信息,我们自动调取源存储的API转化出一些链接信息;三是常见的连接源存储的一些用户密码。完成这些基本信息配置以后,就可以很快的进行测试。
3. 作业配置
在完成数据源配置以后,下面需要去配置任务,Dataworks可以去新建一个任务,新建任务区分为工作流任务和节点任务。

9


工作流和节点任务有什么区别呢?如果你只是单一的完成任务,比如说把独立的一个数据采集到另外一个表格,这是一次性的操作,这时候就可以配置一个节点任务;工作流任务就是前后有上下依赖关系,只有在上面的步骤完成了以后,继续完成下面的任务,比如说Workshop的全景,首先需要将数据采集到MaxCompute中,后面会进行用户画像、用户分析,这是有前后依赖的,后面的用户画像依赖于两个数据同步节点。用户画像完成以后,到最后数据回流到线上,也是依赖于前面的用户画像过程,最后到Quick BI的表现,整个场景流程有前后明显依赖关系的,我们称之为一个工作流任务,创建完工作流任务进入面板以后,就可以进行一个快速的拖拽,可以快速组装出整个Workshop工作流的场景。
图中同样显示的是Workshop场景的一个工作流,前面是一个开始节点,下面是两个数据同步的节点,中间产生一个用户画像的节点,到最后回流到线上的一个节点。如何进行数据化采集的配置,主要包含几个步骤:
第一, 选择一些数据源,然后去选择目标数据源,进行简单的字段映射,只需要在界面上去进行选择就可以。

10


第二,我们需要每天进行一些定时调度,这个时候只需要在右边的调度里边去选择你调度周期,可以调度到分钟级别。
第三, 配比一些动态参数,比如一些典型的日期日志,因为任务的周期运行,不可能每天配置任务的时候需要都写死,这个时候就可以配置一些动态参数,每天运行的时候都会自动去变成当天执行时间。
如何实现数据集成开发最佳实践之增量同步?
如果你是结构化存储,通过where条件和一些过滤来实现,比如说如果我们的表里面有创建时间或者修改时间,这时候只需要通过where条件修改时间,就可以实现;数据仓库可以通过分区加上动态参数来实现,这时每天的数据可以产生到新的业务时间分区中;半结构化数据存储,像我们的分析业务访问日志,日志都会归档,每天日志都会产生典型的业务日期,这个时候就可以直接根据文件名进行正则过滤,就可以根据以前的需要配置一个文件名,然后把你名字填写上就可以了。
4.数据采集和数据质量校验
配置完任务以后,如何在调度Dataworks里面进行运行?可以在页面直接点击测试运行,因为是周期调度,运维中心里面去找到配置的任务,然后进行一些测试或者补数据运行,最后完成了数据采集,如何去确定数据采集是正确的?
你可以在运维分析里面查看你的节点运行日志,在日志里面详细数据采集都可以打印出来,同时也可以去写一些简单的SQL统计数据。

本文由云栖志愿小组毛鹤整理,编辑百见

相关文章
|
消息中间件 安全 Kafka
2024年了,如何更好的搭建Kafka集群?
我们基于Kraft模式和Docker Compose同时采用最新版Kafka v3.6.1来搭建集群。
4447 2
2024年了,如何更好的搭建Kafka集群?
|
Oracle Java Unix
Java/JDK下载、安装与环境变量配置超详细教程(2022更新)保姆级,秒会
Java/JDK下载、安装与环境配置超详细教程(2022更新)保姆级,小白秒会[学习必备,建议收藏]。包含JDK8、JDK11、JDK17、JDK19等,本文将从JDK的下载与安装讲起,在从配置到第一个HelloWrold实践结束。在观看本文前我们需要知道JDK是什么,有什么作用?JDK是Java的开发工具包,包括JVM虚拟机,核心类库,开发工具。
27822 0
Java/JDK下载、安装与环境变量配置超详细教程(2022更新)保姆级,秒会
|
弹性计算 安全 应用服务中间件
阿里云网络系列之经典网络和专有网络
阿里云面向客户提供的网络类型服务有经典网络和专有网络两种,但这两者有什么区别呢?阿里官网给的解释是: 经典网络:IP地址由阿里云统一分配,配置简便,使用方便,适合对操作易用性要求比较高、需要快速使用 ECS 的用户。
94736 1
|
机器学习/深度学习 人工智能 自然语言处理
如何构建企业级数据智能体:Data Agent 开发实践
本篇将介绍DMS的一款数据分析智能体(Data Agent for Analytics )产品的技术思考和实践。Data Agent for Analytics 定位为一款企业级数据分析智能体, 基于Agentic AI 技术,帮助用户查数据、做分析、生成报告、深入洞察。
|
Apache
基于apache集合工具包的并集、交集、差集工具类
基于apache集合工具包的并集、交集、差集工具类
455 1
|
人工智能 自然语言处理 搜索推荐
阿里云 AI 搜索产品荣获 Elastic Innovation Award 2024
在新加坡 ElasticON 2025 的 Elastic 合作伙伴峰会上,阿里云 AI 搜索产品荣获 Elastic Innovation Award 2024!
1066 1
|
人工智能 移动开发 自然语言处理
什么是MaaS
MaaS(模型即服务)是一种以AI模型为核心的服务模式,提供从预训练、调优到部署的全生命周期支持。用户能低成本访问和集成先进AI模型,提升业务智能化。其核心特点包括模型为中心、灵活部署、成本优化及开放生态。应用场景涵盖智能客服、交通管理和移动应用开发等,助力企业快速实现智能化转型。
9205 2
|
SQL 缓存 数据库连接
拯救php性能的神器webman-数据库
Webman 框架与这些最佳数据库管理实践的结合,可为应用程序提供快速响应的用户体验,高吞吐量,提升应用程序的整体性能表现。在对数据库交互进行设计和开发时,持续关注性能指标和优化,确保数据库层面不会成为应用程序的瓶颈,这样便能充分利用 Webman 来提升 PHP 应用的性能。
743 4
|
存储 固态存储 安全
阿里云服务器香港地域租用收费标准参考
阿里云有香港云服务器吗?当然是有的,香港地域云服务器即可满足外贸型企业用户需求,也可以满足部分国内用户的需求,本文为大家展示2024年阿里云服务器香港地域的最新收费标准,以供参考。
阿里云服务器香港地域租用收费标准参考
|
机器学习/深度学习 数据可视化 数据挖掘
构建可复用的 Jupyter 模板和插件:提高工作效率的最佳实践
【8月更文第29天】Jupyter Notebook 是一个广泛使用的交互式计算环境,支持多种编程语言。它不仅用于数据分析、可视化和机器学习项目,也是教学和科研的理想工具。然而,随着使用频率的增加,重复编写相似的代码和设置变得既耗时又低效。通过创建可复用的 Jupyter 模板和插件,我们可以显著提高工作效率。
694 1