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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 为什么进行数据采集?阿里云技术专家祁然带来日志数据上传的相关分享。本文主要从为什么进行数据采集开始聊起,进而重点说明了如何应对数据采集带来的挑战,包括一站式实现异构互通、提供整库迁移云上能力等,最后举例场景为大家演示了实验步骤实践。

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

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

为什么进行数据采集?

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

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统计数据。

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

相关文章
|
7月前
|
安全 关系型数据库 分布式数据库
PolarDB产品安全能力:全方位保障数据安全
PolarDB产品安全能力:全方位保障数据安全 在数字化时代,数据安全已成为企业关注的焦点。PolarDB作为阿里云旗下的一款高性能、高可靠的数据库产品,从访问安全、数据传输安全、数据安全、数据脱敏和安全审计五个方面出发,为用户提供了全方位的安全保障。
131 1
|
存储 运维 Prometheus
开放、普惠、高性能-SLS时序存储助力打造企业级全方位监控方案
SLS新增时序存储,面向时序类数据提供一站式接入、存储、可视化、告警、智能运维等功能。方案完整支持各主流开源监控平台,提供低成本、免运维的监控数据存储与服务能力。
3091 0
开放、普惠、高性能-SLS时序存储助力打造企业级全方位监控方案
|
5月前
|
存储 边缘计算 安全
边缘计算在离线环境下如何保证数据安全性?
【7月更文挑战第13天】边缘计算在离线环境下如何保证数据安全性?
59 5
|
7月前
|
弹性计算 容灾 网络协议
一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例
阿里云弹性计算团队十三位产品专家和技术专家共同分享云上运维深度实践,详细阐述如何利用CloudOps工具实现运维提效、弹性降本。
581 0
|
SQL API 数据安全/隐私保护
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——6. 数据服务:集中管控,快速服务业务系统
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——6. 数据服务:集中管控,快速服务业务系统
228 0
|
分布式计算 DataWorks 对象存储
全链路数据湖开发治理解决方案2.0重磅升级,全面增强数据入湖、调度和治理能力
阿里云全链路数据湖开发治理解决方案能力持续升级,发布2.0版本。解决方案包含开源大数据平台E-MapReduce(EMR) , 一站式大数据数据开发治理平台DataWorks ,数据湖构建DLF,对象存储OSS等核心产品。支持EMR新版数据湖DataLake集群(on ECS)、自定义集群(on ECS)、Spark集群(on ACK)三种形态,对接阿里云一站式大数据开发治理平台DataWorks,沉淀阿里巴巴十多年大数据建设方法论,为客户完成从入湖、建模、开发、调度、治理、安全等全链路数据湖开发治理能力,帮助客户提升数据的应用效率。
1513 1
|
数据采集 运维 监控
带你读《全链路数据治理-全域数据集成》之3:3.数据同步增值能力
带你读《全链路数据治理-全域数据集成》之3:3.数据同步增值能力
284 0
带你读《全链路数据治理-全域数据集成》之18:4. 网络连通解决方案概览
带你读《全链路数据治理-全域数据集成》之18:4. 网络连通解决方案概览
172 0
|
运维 监控 Kubernetes
技术揭秘:实时数仓Hologres如何支持超大规模部署与运维
在本次评测中,Hologres是目前通过中国信通院大数据产品分布式分析型数据库大规模性能评测的规模最大的MPP数据仓库产品。通过该评测,证明了阿里云实时数仓Hologres能够作为数据仓库和大数据平台的基础设施,可以满足用户建设大规模数据仓库和数据平台的需求,具备支撑关键行业核心业务数据平台的能力。
技术揭秘:实时数仓Hologres如何支持超大规模部署与运维
|
存储 监控 安全
系统迁移到云端的趋势
系统迁移到云端的趋势
225 0
系统迁移到云端的趋势