阿里大數(shù)據(jù)分析與應(yīng)用(常用的大數(shù)據(jù)分析平臺(tái))

大數(shù) 據(jù)分析 阿里 常用 平臺(tái)| 2022-09-02 admin

文章目錄

常用的大數(shù)據(jù)分析平臺(tái)

什么是大數(shù)據(jù)分析平臺(tái)

大數(shù)據(jù)分析平臺(tái)就是依據(jù)企業(yè)的數(shù)據(jù)需求,整合當(dāng)前主流的、成熟的各種具有不同側(cè)重點(diǎn)的大數(shù)據(jù)處理分析框架和工具,實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的挖掘和分析,滿足企業(yè)的數(shù)據(jù)需求。通常意義上講,大數(shù)據(jù)分析平臺(tái)包括如下功能模塊:

  • 數(shù)據(jù)源:數(shù)據(jù)源決定著數(shù)據(jù)采集,常見(jiàn)的數(shù)據(jù)源可分為結(jié)構(gòu)化、非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù),依據(jù)采集方式又可分批數(shù)據(jù)采集、實(shí)時(shí)以及流式數(shù)據(jù)采集等;
  • 數(shù)據(jù)采集:即將數(shù)據(jù)導(dǎo)入到大數(shù)據(jù)分析平臺(tái);
  • 數(shù)據(jù)存儲(chǔ):采集后的數(shù)據(jù),經(jīng)過(guò)系統(tǒng)的清洗,轉(zhuǎn)換、分類等操作,將數(shù)據(jù)儲(chǔ)存在系統(tǒng)中,為了便于數(shù)據(jù)分析時(shí)的提取及應(yīng)用;
  • 數(shù)據(jù)處理和分析:即對(duì)存儲(chǔ)在系統(tǒng)中的數(shù)據(jù)分析、處理,數(shù)據(jù)處理與分析的快慢,是檢驗(yàn)數(shù)據(jù)分析系統(tǒng)功能的重要指標(biāo),數(shù)據(jù)分析系統(tǒng)得出數(shù)據(jù)分析的最終結(jié)果,用于業(yè)務(wù)應(yīng)用。
  • 數(shù)據(jù)展示:數(shù)據(jù)可視化,分析的結(jié)果以視覺(jué)的角度展現(xiàn)在用戶面前,達(dá)到最終的目的。

基于Hadoop的大數(shù)據(jù)分析平臺(tái)

大數(shù)據(jù)平臺(tái)是對(duì)海量結(jié)構(gòu)化、非結(jié)構(gòu)化、半機(jī)構(gòu)化數(shù)據(jù)進(jìn)行采集、存儲(chǔ)、計(jì)算、統(tǒng)計(jì)、分析處理的一系列技術(shù)平臺(tái)。

大數(shù)據(jù)平臺(tái)處理的數(shù)據(jù)量通常是TB級(jí),甚至是PB或EB級(jí)的數(shù)據(jù),其涉及的技術(shù)主要有分布式計(jì)算、高并發(fā)處理、高可用處理、集群管理、實(shí)時(shí)計(jì)算等。

  • Hadoop作為一個(gè)開(kāi)發(fā)和運(yùn)行處理大規(guī)模數(shù)據(jù)的軟件平臺(tái),實(shí)現(xiàn)了在大量的廉價(jià)計(jì)算機(jī)組成的集群中對(duì)海量數(shù)據(jù)進(jìn)行分布式計(jì)算;
  • Hadoop框架中最核心的設(shè)計(jì)是HDFS和MapReduce;
  • HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),MapReduce是一套可以從海量的數(shù)據(jù)中提取數(shù)據(jù)最后返回結(jié)果集的編程模型;
  • Hadoop家族還包含各種開(kāi)源組件,比如Yarn,Zookeeper,Hbase,Hive,Sqoop,Impala,Spark等;

阿里大數(shù)據(jù)分析與應(yīng)用

阿里云大數(shù)據(jù)平臺(tái)

阿里大數(shù)據(jù)分析與應(yīng)用

典型阿里云大數(shù)據(jù)平臺(tái)架構(gòu)

阿里大數(shù)據(jù)分析與應(yīng)用

MaxCompute

大數(shù)據(jù)計(jì)算服務(wù)MaxCompute,由阿里云自主研發(fā),提供針對(duì)TB/PB級(jí)數(shù)據(jù)、實(shí)時(shí)性要求不高分布式處理能力,應(yīng)用于數(shù)據(jù)分析、挖掘、商業(yè)智能等領(lǐng)域,阿里巴巴的數(shù)據(jù)業(yè)務(wù)都運(yùn)行在MaxCompute。

MaxCompute 的主要功能及作用

MaxCompute致力于批量結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和計(jì)算,提供海量數(shù)據(jù)倉(cāng)庫(kù)的解決方案及分析建模服務(wù)。通常和DataWorks一起構(gòu)建大數(shù)據(jù)分析平臺(tái)。

MaxCompute 的使用流程

MaxCompute所有的操作都是基于表,因此MaxCompute的使用從安裝配置環(huán)境后的建表開(kāi)始.

阿里大數(shù)據(jù)分析與應(yīng)用

MaxCompute常見(jiàn)使用方式

使用方式

使用場(chǎng)景及優(yōu)勢(shì)

API/SDK:以RESTful API或Java SDK、python SDK的方式提供離線數(shù)據(jù)處理服務(wù)。

定制開(kāi)發(fā),滿足個(gè)性化需求,與外部系統(tǒng)對(duì)接

CLTCommand Line Tool):運(yùn)行在Window/Linux下的客戶端工具,通過(guò)CLT可以提交命令完成Project管理、DDL、DML等操作。

本地上傳下載數(shù)據(jù)、項(xiàng)目空間管理;靈活、易用

DataWorks:提供了上層可視化ETL/BI工具,用戶可以基于DataWorks完成數(shù)據(jù)同步、任務(wù)調(diào)度、報(bào)表生成等常見(jiàn)操作。

團(tuán)隊(duì)分工協(xié)作數(shù)據(jù)開(kāi)發(fā)全流程,高效、安全

IDE插件:eclipse插件、IDEA插件、RStudio插件,擴(kuò)展IDE對(duì)MaxCompute的支持

使用第三方IDE對(duì)接MaxCompute,提升本地開(kāi)發(fā)、調(diào)試效率

MaxCompute的客戶端

MaxCompute客戶端是一個(gè)java程序,需要JRE環(huán)境才能運(yùn)行,請(qǐng)下載并安裝JRE 1.6+版本(JRE 1.7或以上版本,建議優(yōu)先使用JRE 1.7/1.8,其中JRE 1.9已經(jīng)支持,JRE 1.10暫時(shí)還不支持)。

使用步驟:

  • 官網(wǎng)下載客戶端壓縮文件
  • 解壓文件,可以看到4個(gè)文件夾:??bin/conf/lib/plugins/??
  • 修改??conf/odps_conf.ini??文件,其中只需要修改??project_name??, ??access_id??,??access_key??三項(xiàng)

MaxCompute的客戶端應(yīng)用

運(yùn)行bin目錄下的MaxCompute

  • Linux系統(tǒng)下運(yùn)行??./bin/odpscmd??
  • Windows下運(yùn)行??./bin/odpscmd.bat??

運(yùn)行后我們可以輸入sql語(yǔ)句進(jìn)行查詢,比如:

odps@my_project> desc my_table;         
 -- 查看表結(jié)構(gòu)
 odps@my_project> list tables;                 
 -- 查看表名列表
 odps@my_project> create table my_talbe(id bigint );
 -- 創(chuàng)建表

數(shù)據(jù)上傳/下載綜述

MaxCompute系統(tǒng)上傳/下載數(shù)據(jù)包括兩種方式:

阿里大數(shù)據(jù)分析與應(yīng)用(part3)--常用的大數(shù)據(jù)分析平臺(tái)_大數(shù)據(jù)分析_05

Tunnel上傳/下載數(shù)據(jù)

MaxCompute客戶端提供Tunnel命令實(shí)現(xiàn)數(shù)據(jù)的上傳/下載,其基本語(yǔ)法為:

tunnel <subcommand> [options]  args
#示例
#下載數(shù)據(jù)
tunnel download  -c GBK  tmp_table  d:tmp_table.csv
#上傳數(shù)據(jù)
tunnel upload -c GBK d:dim_map.csv dim_map

MaxCompute SQL

MaxCompute SQL 是個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,Query 解析后,計(jì)算和存儲(chǔ)交由底層的飛天實(shí)現(xiàn)。

MaxCompute SQL 支持常用的 SQL 語(yǔ)法,包括窗口函數(shù)

MaxCompute SQL 可以看做對(duì)標(biāo)準(zhǔn) SQL 的支持,但是不能簡(jiǎn)單等同于數(shù)據(jù)庫(kù)

MaxCompute SQL 不支持事務(wù)、主外鍵約束、索引等

MaxCompute SQL 適用于海量數(shù)據(jù)(TB/PB級(jí)別)的數(shù)據(jù)運(yùn)算

MaxCompute SQL 的每個(gè)作業(yè)的準(zhǔn)備,提交等階段要花費(fèi)較長(zhǎng)時(shí)間,實(shí)時(shí)性不高

MaxCompute SQL 長(zhǎng)度有限制,目前是不能超過(guò) 2 M

MaxCompute SQL的關(guān)鍵字

MaxComputeSQL語(yǔ)句的關(guān)鍵字作為保留字。在對(duì)表、列或是分區(qū)命名時(shí)如若使用關(guān)鍵字,需給關(guān)鍵字加``符號(hào)進(jìn)行轉(zhuǎn)義,否則會(huì)報(bào)錯(cuò)。保留字不區(qū)分大小寫。

常見(jiàn)如下圖所示:

阿里大數(shù)據(jù)分析與應(yīng)用

MaxCompute SQL的類型轉(zhuǎn)換

MaxCompute SQL的類型轉(zhuǎn)換分為顯示轉(zhuǎn)換和隱式轉(zhuǎn)換:

  • 顯示轉(zhuǎn)換:是指用??cast??將一種數(shù)據(jù)類型的值轉(zhuǎn)換為另一種類型的值的行為
  • 隱式轉(zhuǎn)換:是指依據(jù)上下文使用環(huán)境及類型轉(zhuǎn)換規(guī)則自動(dòng)進(jìn)行的類型轉(zhuǎn)換

下面是顯示轉(zhuǎn)換的數(shù)據(jù)類型轉(zhuǎn)換表,其中Y表示可以轉(zhuǎn)換,N表示不可以轉(zhuǎn)換:

阿里大數(shù)據(jù)分析與應(yīng)用

下面是隱式轉(zhuǎn)換的數(shù)據(jù)類型轉(zhuǎn)換表,其中T表示可以轉(zhuǎn)換,F(xiàn)表示不可以轉(zhuǎn)換:

阿里大數(shù)據(jù)分析與應(yīng)用

MaxCompute SQL的運(yùn)算符

關(guān)系運(yùn)算符:

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

算術(shù)運(yùn)算符:

+, -, *, /, %

位運(yùn)算符:

&, |

邏輯運(yùn)算符:

and, or, not

MaxCompute SQL的DDL語(yǔ)句

  • 創(chuàng)建表/視圖
  • 添加分區(qū)
  • 查看表/分區(qū)信息
  • 刪除分區(qū)
  • 修改表
  • 修改生命周期

MaxCompute SQL的DML語(yǔ)句

  • SELECT 操作
  • INSERT操作
  • TRUNCATE操作
  • 函數(shù)

MaxCompute SQL的函數(shù)

MaxCompute中的函數(shù) = 內(nèi)置函數(shù) + 自定義函數(shù)

自定義函數(shù):

  • UDF:用戶自定義標(biāo)量函數(shù)
  • UDTF:用戶自定義表值函數(shù)
  • UDAF:用戶自定義聚組函數(shù)

UDF 實(shí)現(xiàn)邏輯

  • 實(shí)現(xiàn) UDF 需要繼承??com.aliyun.odps.udf.UDF?? 類,并實(shí)現(xiàn) evaluate 方法
  • evaluate 方法必須是 ??static?? 的 public 方法
  • evaluate 方法的參數(shù)和返回值類型將作為 SQL 中 UDF 的函數(shù)簽名
  • 用戶可以在 UDF 中實(shí)現(xiàn)多個(gè) evaluate 方法
  • 調(diào)用 UDF 時(shí)框架會(huì)依據(jù) UDF 調(diào)用的參數(shù)類型匹配正確的 evaluate 方法

阿里大數(shù)據(jù)分析與應(yīng)用

UDF的開(kāi)發(fā)流程

阿里大數(shù)據(jù)分析與應(yīng)用

MapReduce

阿里大數(shù)據(jù)分析與應(yīng)用

MapReduce(MR)的開(kāi)發(fā)應(yīng)用流程

  • 安裝配置環(huán)境
  • 開(kāi)發(fā) MR 程序
  • 本地模式測(cè)試腳本
  • 導(dǎo)出 Jar 包
  • 上傳至 MaxCompute 項(xiàng)目空間
  • 在 MaxCompute 中使用MR