阿里大数据分析与应用(常用的大数据分析平台)

uwb定位| 2022-09-02

文章目录

常用的大数据分析平台

什么是大数据分析平台

大数据分析平台就是依据企业的数据需求,整合当前主流的、成熟的各种具有不同侧重点的大数据处理分析框架和工具,实现对海量数据的挖掘和分析,满足企业的数据需求。通常意义上讲,大数据分析平台包括如下功能模块:

  • 数据源:数据源决定着数据采集,常见的数据源可分为结构化、非结构化、半结构化数据,依据采集方式又可分批数据采集、实时以及流式数据采集等;
  • 数据采集:即将数据导入到大数据分析平台;
  • 数据存储:采集后的数据,经过系统的清洗,转换、分类等操作,将数据储存在系统中,为了便于数据分析时的提取及应用;
  • 数据处理和分析:即对存储在系统中的数据分析、处理,数据处理与分析的快慢,是检验数据分析系统功能的重要指标,数据分析系统得出数据分析的最终结果,用于业务应用。
  • 数据展示:数据可视化,分析的结果以视觉的角度展现在用户面前,达到最终的目的。

基于Hadoop的大数据分析平台

大数据平台是对海量结构化、非结构化、半机构化数据进行采集、存储、计算、统计、分析处理的一系列技术平台。

大数据平台处理的数据量通常是TB级,甚至是PB或EB级的数据,其涉及的技术主要有分布式计算、高并发处理、高可用处理、集群管理、实时计算等。

  • Hadoop作为一个开发和运行处理大规模数据的软件平台,实现了在大量的廉价计算机组成的集群中对海量数据进行分布式计算;
  • Hadoop框架中最核心的设计是HDFS和MapReduce;
  • HDFS是一个高度容错性的系统,MapReduce是一套可以从海量的数据中提取数据最后返回结果集的编程模型;
  • Hadoop家族还包含各种开源组件,比如Yarn,Zookeeper,Hbase,Hive,Sqoop,Impala,Spark等;

阿里大数据分析与应用

阿里云大数据平台

阿里大数据分析与应用

典型阿里云大数据平台架构

阿里大数据分析与应用

MaxCompute

大数据计算服务MaxCompute,由阿里云自主研发,提供针对TB/PB级数据、实时性要求不高分布式处理能力,应用于数据分析、挖掘、商业智能等领域,阿里巴巴的数据业务都运行在MaxCompute。

MaxCompute 的主要功能及作用

MaxCompute致力于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务。通常和DataWorks一起构建大数据分析平台。

MaxCompute 的使用流程

MaxCompute所有的操作都是基于表,因此MaxCompute的使用从安装配置环境后的建表开始.

阿里大数据分析与应用

MaxCompute常见使用方式

使用方式

使用场景及优势

API/SDK:以RESTful API或Java SDK、python SDK的方式提供离线数据处理服务。

定制开发,满足个性化需求,与外部系统对接

CLTCommand Line Tool):运行在Window/Linux下的客户端工具,通过CLT可以提交命令完成Project管理、DDL、DML等操作。

本地上传下载数据、项目空间管理;灵活、易用

DataWorks:提供了上层可视化ETL/BI工具,用户可以基于DataWorks完成数据同步、任务调度、报表生成等常见操作。

团队分工协作数据开发全流程,高效、安全

IDE插件:eclipse插件、IDEA插件、RStudio插件,扩展IDE对MaxCompute的支持

使用第三方IDE对接MaxCompute,提升本地开发、调试效率

MaxCompute的客户端

MaxCompute客户端是一个java程序,需要JRE环境才能运行,请下载并安装JRE 1.6+版本(JRE 1.7或以上版本,建议优先使用JRE 1.7/1.8,其中JRE 1.9已经支持,JRE 1.10暂时还不支持)。

使用步骤:

  • 官网下载客户端压缩文件
  • 解压文件,可以看到4个文件夹:​​bin/conf/lib/plugins/​
  • 修改​​conf/odps_conf.ini​​文件,其中只需要修改​​project_name​​, ​​access_id​​,​​access_key​​三项

MaxCompute的客户端应用

运行bin目录下的MaxCompute

  • Linux系统下运行​​./bin/odpscmd​
  • Windows下运行​​./bin/odpscmd.bat​

运行后我们可以输入sql语句进行查询,比如:

odps@my_project> desc my_table;         
 -- 查看表结构
 odps@my_project> list tables;                 
 -- 查看表名列表
 odps@my_project> create table my_talbe(id bigint );
 -- 创建表

数据上传/下载综述

MaxCompute系统上传/下载数据包括两种方式:

阿里大数据分析与应用(part3)--常用的大数据分析平台_大数据分析_05

Tunnel上传/下载数据

MaxCompute客户端提供Tunnel命令实现数据的上传/下载,其基本语法为:

tunnel <subcommand> [options]  args
#示例
#下载数据
tunnel download  -c GBK  tmp_table  d:tmp_table.csv
#上传数据
tunnel upload -c GBK d:dim_map.csv dim_map

MaxCompute SQL

MaxCompute SQL 是个数据仓库工具,Query 解析后,计算和存储交由底层的飞天实现。

MaxCompute SQL 支持常用的 SQL 语法,包括窗口函数

MaxCompute SQL 可以看做对标准 SQL 的支持,但是不能简单等同于数据库

MaxCompute SQL 不支持事务、主外键约束、索引等

MaxCompute SQL 适用于海量数据(TB/PB级别)的数据运算

MaxCompute SQL 的每个作业的准备,提交等阶段要花费较长时间,实时性不高

MaxCompute SQL 长度有限制,目前是不能超过 2 M

MaxCompute SQL的关键字

MaxComputeSQL语句的关键字作为保留字。在对表、列或是分区命名时如若使用关键字,需给关键字加``符号进行转义,否则会报错。保留字不区分大小写。

常见如下图所示:

阿里大数据分析与应用

MaxCompute SQL的类型转换

MaxCompute SQL的类型转换分为显示转换和隐式转换:

  • 显示转换:是指用​​cast​​将一种数据类型的值转换为另一种类型的值的行为
  • 隐式转换:是指依据上下文使用环境及类型转换规则自动进行的类型转换

下面是显示转换的数据类型转换表,其中Y表示可以转换,N表示不可以转换:

阿里大数据分析与应用

下面是隐式转换的数据类型转换表,其中T表示可以转换,F表示不可以转换:

阿里大数据分析与应用

MaxCompute SQL的运算符

关系运算符:

>, <, >=, <=, =, <>, is null, is not null, like, rlike, in, between and

算术运算符:

+, -, *, /, %

位运算符:

&, |

逻辑运算符:

and, or, not

MaxCompute SQL的DDL语句

  • 创建表/视图
  • 添加分区
  • 查看表/分区信息
  • 删除分区
  • 修改表
  • 修改生命周期

MaxCompute SQL的DML语句

  • SELECT 操作
  • INSERT操作
  • TRUNCATE操作
  • 函数

MaxCompute SQL的函数

MaxCompute中的函数 = 内置函数 + 自定义函数

自定义函数:

  • UDF:用户自定义标量函数
  • UDTF:用户自定义表值函数
  • UDAF:用户自定义聚组函数

UDF 实现逻辑

  • 实现 UDF 需要继承​​com.aliyun.odps.udf.UDF​​ 类,并实现 evaluate 方法
  • evaluate 方法必须是​static​​ 的 public 方法
  • evaluate 方法的参数和返回值类型将作为 SQL 中 UDF 的函数签名
  • 用户可以在 UDF 中实现多个 evaluate 方法
  • 调用 UDF 时框架会依据 UDF 调用的参数类型匹配正确的 evaluate 方法

阿里大数据分析与应用

UDF的开发流程

阿里大数据分析与应用

MapReduce

阿里大数据分析与应用

MapReduce(MR)的开发应用流程

  • 安装配置环境
  • 开发 MR 程序
  • 本地模式测试脚本
  • 导出 Jar 包
  • 上传至 MaxCompute 项目空间
  • 在 MaxCompute 中使用MR