数据进入Maxcompute的N种方式,大数据实战Demo系统数据上云实践

2018 “MaxCompute开发者交流”钉钉群直播分享,由阿里云数据技术专家彬甫带来以“数据进入MaxCompute的N种方式”为题的演讲。本文讲述了在阿里云内部开发了一个实战Demo系统,它能够实现自动全链路的大数据处理流程,其中包括离线的和实时数据的,接下来将为大家揭晓实战Demo系统是怎样实现自动全链路的大数据处理流程的。
数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧!
直播视频回顾
PPT下载请点击
以下内容根据现场分享整理而成。

大数据中心的架构

数据进入Maxcompute的N种方式,大数据实战Demo系统数据上云实践


上图为大数据实战Demo的整体架构,它的上云方式是离线的。要实现大数据实战Demo的应用,架构必需包含数据源系统、数据仓库、大数据应用系统平台、Web/应用平台、流程调度、数据加工及展现、实时处理平台,其中数据仓库包含临时层、基础数据层和应用层三个层次。
在整个架构中,数据上云是重中之重,它可以针对不同的数据源使用不同的上云方式。
首先,数据上云到MAXCOMPUTE(数据存储)大数据存储及处理平台上,并将数据进行处理;接着,将数据传输到临时层,再经过简单转换进到基础数据层;最后,将数据进一步汇总到应用层进而提供服务。
在这个架构中,是通过协议工具DataWorks、DataX进行流程调度的,通过QuickBI、DataV进行数据展现的,通过DATEHUB+STREAMCOMPUTE进行数据处理实时数据的,最后系统将处理后的数据存放到大数据应用平台的RDS里面,并通过QuickBI、DataV进行展现。

数据上云(同步)方式

数据上云有许多种方式,对于MAXCOMPUTE产品而言,它使用的典型的自带工具有tunnel、dataX、DataWorks,具体介绍如下:

  • 使用tunnel:使用tunnel命令可进行数据的上传、数据的下载、数据文件的处理等。
  • 使用dataX:dataX是离线数据的同步工具,可高效地实现各异构数据源之间的数据同步功能,以及把数据上传到MAXCOMPUTE中去。其中,异构数据源包括MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、OTS、OSS、MaxCompute 等。总之,Tunnel工具是非常重要的,如果没有Tunnel工具,在数据同步后数据上云到MAXCOMPUTE时会出现不统一的问题,最终造成开发困难。
  • 使用DataWorks:使用DataWorks数据集成来定义数据同步任务,通过同步任务最终达到数据上云的目的。它的模式是向导模式或脚本模式,是基于DataX协议的图形界面来进行操作的。在使用DataWorks进行数据集成中需要做到四步,第一步,配置数据来源(库和表)和数据流向(库和表);第二步,对字段映射关系进行配置,且左侧“源表字段”和右侧“宿表字段”为一一对应的关系;第三步,对源表的字段进行过滤和数据加载控制,但要注意的是对源表的字段进行过滤必须在WHERE条件上,且不需要写WHERE关键字;第四步,对同步速率需进行限速控制,切分键一般用源表主键,当容错记录数和比率指超过阈值时,作业报错必须终止。最终,使得数据上云到MAXCOMPUTE大数据存储及处理平台上。

实时数据上云(同步)方式

Logstash

Logstash是一种分布式日志收集框架,简洁强大,经常与ElasticSearch,Kibana配置组成著名的ELK技术栈,非常适合用来做日志数据的分析。 阿里云流计算为了方便用户将更多数据采集进DataHub中,提供了针对Logstash的DataHub Output/Input插件。使用Logstash,便可以轻松享受到Logstash开源社区多达30多种数据源的支持,同时Logstash还支持filter对传输字段进行自定义加工等功能。

DataHub API

阿里云流数据处理平台DataHub是流式数据(Streaming Data)的处理平台,可提供对流式数据的发布、订阅和分发功能,还可以轻松地构建基于流式数据的分析和应用。DataHub服务可以对各种移动设备、应用软件、网站服务、传感器等产生的大量流式数据进行持续不断的采集、存储和处理。可以编写应用程序或者使用流计算引擎来处理写入到DataHub中的流式数据,例如,实时web访问日志、应用日志、各种事件等,并产出各种实时的数据处理结果,例如,实时图表、报警信息、实时统计等。它相较于Logstash而言,这种方式性能更优,更适于处理复杂的数据需求。

数据迁移及实时数据同步(上云)

数据传输服务(Data Transmission Service) DTS支持关系型数据库、NoSQL、大数据(OLAP)等数据源间的数据传输。 它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务。相对于第三方数据流工具而言,数据传输服务 DTS 可提供更丰富多样、高性能、高安全可靠的传输链路,同时它提供了诸多便利功能,极大地方便了传输链路的创建及管理。
数据传输致力于在公有云、混合云场景下,解决远距离、毫秒级异步数据的传输难题。它底层的数据流基础设施为阿里双11异地多活基础架构,为数千下游应用提供实时数据流,已在线上稳定运行三年之久。

数据架构层的实现

企业数据模型在数据架构层的实现

数据进入Maxcompute的N种方式,大数据实战Demo系统数据上云实践


企业数据模型在实现数据架构层时,每一层都有每一层的规范。数据上云到MAXCOMPUTE(数据存储)大数据存储及处理平台后,将数据进行处理,并把数据放到临时层,在经过简单转换进到基础数层,最后将数据进一步汇总到应用层。临时层的模型设计方式与源系统模型一致,都是统一命名规范的,它设计具有仅保存临时数据的原则,可应用于ETL用户数据加工与处理。基础数据层偏3NF设计,它是面向数据整合、长期历史数据存储、详细数据、通用汇总数据的设计,可应用于席查询、应用层数据源等。应用层的设计方式是反正则化设计、星型/雪花模型设计,它是面向一个或几个应用进行模型设计的,可应用于报表查询、数据挖掘等。

数据生成

在TPC官网上下载TPC-DS工具,使用下载后的工具生成TPC-DS数据文件,数据文件再生成hdfs、Hbase、OSS、RDS数据源。Hdfs和Hbase数据源是使用Hadoop客户端命令把TPC-DS数据文件加载到hdfs和Hbase中,数据源OSS是通过OSS客户端命令把TPC-DS数据文件加载到OSS中,数据源 RDS是通过dataworks数据集成把数据文件加载到RDS中。

数据上云

数据上云任务在设计目录架构和命名规范时,根目录应为01_数据导入格式,目录架构应遵循数据源的不同创建子目录,且相同数据源的数据导入任务放到同一个目录下的规则,命名为源名称+”To”+目标名称格式,值得注意的是任务类型和命名规则的脚本模式和向导模式是不同的。
数据上云任务开发分为数据源配置、脚本模式任务开发、向导模式任务开发、任务调度属性配置四个模块,四个模块具体操作步骤介绍如下:

  • 数据源配置模块:以FTP配置为例,操作步骤为新增数据源、结构化存储-FTP、属性选择及填写、测试连通性、点击完成,最后,在数据源页面就可以看到已配置的数据源。
  • 脚本模式任务开发模块:以ftp->MaxCompute为例,操作步骤为在数据集成界面新建任务、选择脚本模式、点击确认、生成配置文件模板、Ftp Reader配置、MaxCompute Writer配置、点击保存按钮,最终根据命名规范保存该任务。
  • 向导模式任务开发模块:以RDS->MaxCompute为例,具体操作步骤为数据集成->同步任务->向导模式、选择数据源、选择表、添加数据过滤条件(可选)、配置切分键(可选)、选择目标数据源、选择目标表、填写分区信息、选择清理规则、字段映射配置、通道控制相关参数配置、与切分键结合使用、填写任务名称、选择保存位置,最后确认任务创建已完成。
  • 任务调度属性配置模块:DataWorks任务创建成功后,可以对其相关属性进行配置。当数据集成->点击提交按钮时,适用于刚刚创建完成的任务和初始属性的配置,当数据开发->调度配置时,适用于修改和添加任务属性。
上一篇:参与冬季实战营《零基础容器技术实战》


下一篇:.NET 云原生架构师训练营(模块二 基础巩固 MongoDB 问答系统)--学习笔记