阿里云ACA課程筆記

大數(shù)據(jù)概述

大數(shù)據(jù)的定義

大數(shù)據(jù),指無法在可承受的時間范圍內(nèi)用常規(guī)軟件進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長率和多樣化的信息資產(chǎn)。

《第三次浪潮》-托夫勒>>大數(shù)據(jù)應(yīng)用-麥肯錫>>《大數(shù)據(jù)時代》-舍恩伯格>>計(jì)算助理-谷歌>>國內(nèi)規(guī)?;?阿里云

發(fā)展歷程及特點(diǎn)

主要特征:4V

  • Volume 體積大
  • Variety 類型多
  • Value 有價值
  • Velocity 變化快

換個角度

  • 大:數(shù)據(jù)體量大
  • 雜:數(shù)據(jù)類型雜
  • 全:數(shù)據(jù)完備性
  • 多:來源維度多
  • 快:增長變化快
  • 久:積累時間長
  • 活:在線隨時用
  • 簡:簡單易處理
  • 稀:價值密度地
  • 聯(lián):數(shù)據(jù)相關(guān)性

如何產(chǎn)生的?

為什么會有大數(shù)據(jù)?

  • 移動互聯(lián)網(wǎng)帶來爆炸式的增長
  • 數(shù)據(jù)作為資產(chǎn)其價值得到認(rèn)可
  • 存儲和計(jì)算能力的飛速發(fā)展

大數(shù)據(jù)從哪來?
媒體數(shù)據(jù)、網(wǎng)絡(luò)日志、公共設(shè)施、單位組織、大型設(shè)備、工業(yè)領(lǐng)域、地理位置、基因圖譜

大數(shù)據(jù)的價值

解決四種問題

  • 坐井觀天
  • 一葉障目
  • 盲人摸象
  • 城門魚殃

提示兩種能力

  • 一葉知秋
  • 運(yùn)籌帷幄

大數(shù)據(jù)核心價值

  • 洞察insight
  • 預(yù)測predict

存儲、計(jì)算與分析

分布式存儲
分布式計(jì)算

數(shù)據(jù)分析

  1. 數(shù)據(jù)采集與處理
  2. 數(shù)據(jù)質(zhì)量與管理
  3. 機(jī)器學(xué)習(xí)
  4. 數(shù)據(jù)可視化

大數(shù)據(jù)流行技術(shù)

Hadoop生態(tài)圈


阿里云體系


數(shù)加平臺介紹

數(shù)加定位

計(jì)算引擎:離線計(jì)算 流式計(jì)算 在線計(jì)算

數(shù)加業(yè)務(wù)范圍


分析型數(shù)據(jù)庫

AnalyticDB產(chǎn)品介紹

OLAP:在線分析處理,以分析為主
OLTP:在線業(yè)務(wù)系統(tǒng),以業(yè)務(wù)支撐為主
OLAP(On-Line Analytical Processing)是數(shù)據(jù)倉庫的主要的應(yīng)用,專門設(shè)計(jì)用于支持復(fù)雜的分析操作
主要概念:

  • 維度:觀察事物的角度(屬性),即從哪些方面來觀察
  • 度量:也稱為事實(shí),即記錄了一次實(shí)際的測量、購買等發(fā)生的事實(shí),包含維度和測量值

MPP數(shù)據(jù)庫

MMP(Massive Parallel Processing,大規(guī)模并行處理):由多個耦合處理單元組成,每個單元擁有自己的CPU、內(nèi)存、存儲等,每個單元內(nèi)部都有操作系統(tǒng)和管理數(shù)據(jù)庫的實(shí)例副本,最大特點(diǎn)在于不共享資源

  • 私有資源
  • 分布式存儲
  • 分布式計(jì)算
  • 任務(wù)并行執(zhí)行
  • Share-nothing
  • 橫向擴(kuò)展

分析型數(shù)據(jù)庫AnalyticDB

產(chǎn)品特點(diǎn)

  • 分檔存儲
  • 自由查詢
  • 智能優(yōu)化 (基于歷史的優(yōu)化)
  • 方便接口
  • 分層安全
  • 彈性多租戶

基本概念

表組:是一系列可以發(fā)生關(guān)聯(lián)的表的集合,是一個邏輯的概念??煞譃槠胀ū斫M和維度表組



表組特點(diǎn):

  • 表組是數(shù)據(jù)物理分配的最小單元
  • 同表組內(nèi)的表才可以快速hash join
  • 同一個表組內(nèi)的表共享一些配置
  • 建議同表組中的表一級分區(qū)一致

MaxCompute

目標(biāo):

  1. 了解MaxCompute特點(diǎn)
  2. 掌握客戶端工具的使用
  3. 掌握MaxCompute SQL
  4. 了解權(quán)限管理與項(xiàng)目空間保護(hù)

產(chǎn)品介紹

大數(shù)據(jù)計(jì)算服務(wù)(MaxCompute,原ODPS)提供針對TB/PB級數(shù)據(jù)、實(shí)時性要求不高的分布式處理能力,應(yīng)用于數(shù)據(jù)分析、挖掘、商業(yè)智能等領(lǐng)域。
MaxCompute對象:



分區(qū)表指的是在創(chuàng)建表時指定分區(qū)鍵,即指定表內(nèi)的某幾個字段作為分區(qū)列。



在使用數(shù)據(jù)時如果指定了需要訪問的分區(qū)名稱,則只會讀取相應(yīng)的分區(qū),避免全表掃描,提高處理效率,降低費(fèi)用

其他概念:
任務(wù)(Task):MaxCompute基本計(jì)算單元,SQL即MR都是通過任務(wù)完成的
實(shí)例(Instance):任務(wù)的一個具體實(shí)例,表示實(shí)際運(yùn)行的task
沙箱(SandBox):按照安全策略限制程序行為的執(zhí)行環(huán)境

  • 不允許直接訪問本地文件
  • 不允許直接訪問分布式文件系統(tǒng)
  • 不允許JNI調(diào)用機(jī)制
  • 不允許起子進(jìn)程執(zhí)行Linux命令
  • 不允許獲取本地IP地址
  • Java反射限制

數(shù)據(jù)類型:



架構(gòu)介紹

連接使用

  • 自帶命令行工具M(jìn)axCompute Console
  • 可視化客戶端工具:Intelij Studio
  • Eclipse
  • 管理控制臺

數(shù)據(jù)上傳和下載

主要方式有:

  • Tunnel 命令
  • Tunnel SDK
  • 管理控制臺
  • 數(shù)據(jù)同步工具

這里主要介紹 Tunnel 命令
Tunnel 基本語法:tunnel <subcommand> [options] args
數(shù)據(jù)上傳:tunnel upload [options] <path> <[project.]table[/partition]>
數(shù)據(jù)下載:tunnel download [options] <[project.]table[/partition]> <path>
幾個重要參數(shù):


關(guān)于分隔符:

  • 支持多個字符的列分隔符和行分隔符
  • 支持控制字符等不可見字符做分隔符
  • 列分隔符不能包含行分隔符
  • 轉(zhuǎn)義字符分隔符,在命令行模式下只支持\r,\n和\t

sql組成:
DDL:數(shù)據(jù)庫模式定義語言,關(guān)鍵字:create
DML:數(shù)據(jù)操縱語言,關(guān)鍵字:Insert、delete、update
DCL:數(shù)據(jù)庫控制語言 ,關(guān)鍵字:grant、remove
DQL:數(shù)據(jù)庫查詢語言,關(guān)鍵字:select

DDL 介紹

基本語法:
建表:create table [if not exists] table_name
刪表:drop table [if exists] table_name;
修改表名:alter table table_name rename to new_table_name;

表的生命周期:
生命周期(LifeCycle):MaxCompute 表中的數(shù)據(jù),從最后一次更新的時間算起,在經(jīng)過指定的時間后沒有變動,則此表將 MaxCompute 自動回收(刪除)。此指定時間就是該MaxCompute 表的生命周期。

快捷建表 CTAS
兩種謂語動詞 like 和 as

CREATE TABLE < table_name> AS SELECT <column_list> FROM <table_name> WHERE...;
CREATE TABLE < table_name> LIKE <table_name>;

like 和 as 的區(qū)別:

  • 數(shù)據(jù)
    • as可以帶入數(shù)據(jù),可以依賴于多張表
    • like只能復(fù)制單張表的表結(jié)構(gòu),不能帶入數(shù)據(jù)
  • 屬性
    • as不能帶入LIFECYCLE、分區(qū)鍵信息、注釋等
    • LIKE不能帶入LIFECYCLE、可以帶入分區(qū)鍵信息、注釋等

分區(qū)操作:
添加分區(qū):alter table table_name add [if not exists] partition partition_spec
刪除分區(qū):alter table table_name drop [if exists] partition_spec

修改表屬性:
添加列:alter table table_name add colums (col_name1 type1, col_name2 type2 ...)
改列名:alter table table_name change column old_col_name rename to new_col_name;
表注釋:alter table table_name set comment 'tbl comment';
列注釋:alter table table_name change column col_name comment 'comment';
生命周期:alter table table_name set lifecycle days;
修改時間:alter table table_name touch [partition(partition_col='partition_col_value', ...

視圖操作:
創(chuàng)建視圖:CREATE [OR REPLACE] VIEW [IF NOT EXISTS] view_name
刪除視圖:DROP VIEW [IF NOT EXISTS] view_name;
重命名視圖:ALTER VIEW view_name RENAME TO new_view_name;


DML介紹

查詢 SELECT

select [all | distinct] select_expr, select_expr, ...
  from table_reference
  [where where_condition]
  [group by col_list]
  [order by order_condition]
  [distribute by distribute_condition [sort by sort_condition] ]
  [limit number]

更新數(shù)據(jù) INSERT INTO/OVERWEITE

輸出到普通表或靜態(tài)分區(qū)
insert overwrite | into table tablename [partition (partcol1=val1, partcol2=val2 ...)]
select_statement
from from_statement;

輸出到動態(tài)分區(qū)
insert overwrite table tablename partition (partcol1, partcol2 ...)
select_statement from from_statement;

注:
如果目有多級分區(qū),在運(yùn)行insert語句時允許指定部分分區(qū)為靜態(tài),但是靜態(tài)分區(qū)必須是高級分區(qū)
動態(tài)生成的分區(qū)值不可以為null

多路輸出 MULTI INSERT

from from_statement
insert overwrite | into table tablename1 
[partition (partcol1=val1, partcol2=val2 ...)]
  select_statement1
[insert overwrite | into table tablename2 [partition ...]
  select_statement2]

多路輸出的限制:
單個SQL里最多可以寫出256路輸出
對于分區(qū)表,同一個目標(biāo)分區(qū)不可以出現(xiàn)多次
對于未分區(qū)表,該表不能作為目標(biāo)表多次出現(xiàn)
對于同一張分區(qū)表的不同分區(qū),不能同時有insert overwrite 和 insert into 操作

表關(guān)聯(lián) JOIN



MAPJOIN
使用情景:一個大表和一個或多個小表做join
基本原理:將用戶指定的小表全部加載到執(zhí)行join操作的程序的內(nèi)存中,從而加快join的執(zhí)行速度



分支表達(dá)式 CASE WHEN
兩種 CASE WHEN 語法
CASE <value>
  WHEN <condition_1> then <result_1>
  WHEN <condition_2> then <result_2>
  ...
  else <result_n>
END

CASE
  WHEN <condition_1> then <result_1>
  WHEN <condition_2> then <result_2>
  ...
  else <result_n>
END

內(nèi)置函數(shù)

  • 值函數(shù):數(shù)學(xué)運(yùn)算函數(shù)、字符串處理函數(shù)、日期處理函數(shù)
  • 窗口函數(shù):常見統(tǒng)計(jì)量類、排名類、偏移定位類、分組抽樣類
  • 聚合函數(shù):常見統(tǒng)計(jì)量類、字符串類
  • 其他函數(shù):類型轉(zhuǎn)換函數(shù)、分支判斷函數(shù)、其他

其它使用方式

用戶自定函數(shù)(User Defined Function , UDF)

MapReduce



Graph



選擇流程



大數(shù)據(jù)開發(fā)套件DataIDE

DataIDE 產(chǎn)品概述

大數(shù)據(jù)開發(fā)套件(DataIDE) 是阿里云數(shù)加重要的Paas平臺產(chǎn)品,基于MaxCompute作為核心的計(jì)算、存儲引擎,提供了海量數(shù)據(jù)的離線加工分析、數(shù)據(jù)挖掘的能力。提供全面托管的工作流服務(wù),一站式開發(fā)管理的界面,幫助企業(yè)專注于數(shù)據(jù)價值的挖掘和探索。

  • 全面托管的調(diào)度
  • 多種任務(wù)類型
  • 可視化開發(fā)
  • 監(jiān)控告警

數(shù)據(jù)開發(fā)流程


DataIDE應(yīng)用場景

  • 將業(yè)務(wù)系統(tǒng)產(chǎn)生的數(shù)據(jù)輕松上云,構(gòu)建大型數(shù)據(jù)倉庫和BI應(yīng)用,利用MaxCompute強(qiáng)大的海量存儲與數(shù)據(jù)處理能力
  • 基于大數(shù)據(jù)開發(fā)套件快速使用和分析數(shù)據(jù),將大數(shù)據(jù)加工結(jié)果導(dǎo)出后直接應(yīng)用于業(yè)務(wù)系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)化運(yùn)營
  • 針對作業(yè)調(diào)度與運(yùn)維的復(fù)雜性,大數(shù)據(jù)開發(fā)套件提供統(tǒng)一友好的調(diào)度系統(tǒng)和可視化調(diào)度運(yùn)維界面,解決運(yùn)維管理不便等問題

DataIDE基本概念

任務(wù)(Task):對數(shù)據(jù)執(zhí)行的操作,通常每個任務(wù)使用0或0個以上數(shù)據(jù)表(數(shù)據(jù)集)作為輸入,生成一個或多個數(shù)據(jù)表(數(shù)據(jù)集)作為輸出。DataIDE中任務(wù)主要分為三種:節(jié)點(diǎn)任務(wù)、工作流任務(wù)以及內(nèi)部節(jié)點(diǎn)。
實(shí)例(Instance):代表了某個任務(wù)在某時某刻執(zhí)行的一個快照,包含任務(wù)的運(yùn)行時間、運(yùn)行狀態(tài)運(yùn)行日志等信息。在調(diào)度系統(tǒng)中的任務(wù)經(jīng)過調(diào)度系統(tǒng)、手動觸發(fā)運(yùn)行后會生成一個實(shí)例。在DataIDE的調(diào)度系統(tǒng)自動調(diào)度的任務(wù),會提前生成對應(yīng)的實(shí)例。
提交(Submit):提交指開發(fā)的節(jié)點(diǎn)任務(wù)、工作流任務(wù)從開發(fā)IDE環(huán)境發(fā)布到調(diào)度系統(tǒng)的過程。完成提交以后,相應(yīng)的代碼、調(diào)度配置全部合并到調(diào)度系統(tǒng)中,調(diào)度系統(tǒng)按照相關(guān)配置進(jìn)行調(diào)度操作。未提交的節(jié)點(diǎn)任務(wù)、工作流任務(wù)不會進(jìn)入到調(diào)度系統(tǒng)。

DataIDE中的角色


多環(huán)境



分為開發(fā)、測試、生產(chǎn)環(huán)境


DataIDE操作演示

  • 服務(wù)開通
  • 控制臺介紹
  • 項(xiàng)目管理
  • 數(shù)據(jù)集成
  • 數(shù)據(jù)開發(fā)
  • 數(shù)據(jù)管理
  • 運(yùn)維中心

配套實(shí)驗(yàn):DataIDE基本操作

  • 創(chuàng)建項(xiàng)目
  • 數(shù)據(jù)同步
  • SQL任務(wù)
  • 調(diào)度依賴
  • 任務(wù)運(yùn)維

推薦引擎RecEng

推薦系統(tǒng)介紹

什么是推薦系統(tǒng)?
利用電子商務(wù)網(wǎng)站向客戶提供商品信息和建議,幫助用戶覺得購買什么產(chǎn)品,模擬銷售人員幫助客戶完成購買過程

什么是個性化推薦系統(tǒng)?
個性化推薦系統(tǒng)是根據(jù)用戶的興趣特點(diǎn)購買行為,向用戶推薦感興趣的信息和商品。
個性化推薦系統(tǒng)是建立在海量數(shù)據(jù)挖掘基礎(chǔ)上的一種高級商務(wù)智能平臺,以幫助電子商務(wù)網(wǎng)站為其顧客購物提供完全個性化的決策支持和信息服務(wù)。


推薦引擎RecEng介紹

阿里云推薦引擎(Recommendation Engine,RecEng)是在阿里云公有云環(huán)境下建立的一套推薦服務(wù)框架,目標(biāo)是讓廣大中小企業(yè)能夠使用這套框架快速搭建滿足自身業(yè)務(wù)需求的推薦服務(wù)。

  • 簡單便捷
  • 使用門檻低
  • 算法開放

推薦引擎RecEng使用

配套實(shí)驗(yàn)

  • 開通云資源
  • 數(shù)據(jù)上傳加工
  • 推薦引擎配置
  • 啟動任務(wù)
  • 獲取推薦結(jié)果

Quick BI數(shù)據(jù)可視化(靜態(tài))

目標(biāo):

  1. 了解DataV的產(chǎn)品特點(diǎn)
  2. 了解可視化大屏的使用場景
  3. 使用DataV模板制作可視化大屏

DataV 產(chǎn)品介紹

DataV是阿里云提供的數(shù)據(jù)可視化在線工具。通過拖拽式的操作,使用數(shù)據(jù)連接、可視化組件庫、行業(yè)設(shè)計(jì)模板庫、多終端適配與發(fā)布運(yùn)維等功能,讓非專業(yè)人員也可以快速的將數(shù)據(jù)的價值通過視覺進(jìn)行傳達(dá)

  • 多種場景模板
  • 豐富開放的圖標(biāo)庫
  • 支持多種數(shù)據(jù)源
  • 零門檻圖形化界面
  • 支持?jǐn)?shù)據(jù)交互分析
  • 多種適配與發(fā)布方式

DataV 大屏介紹

大屏設(shè)計(jì)原則:



DataV數(shù)據(jù)可視化(動態(tài))

目標(biāo):

  1. 了解DataV的產(chǎn)品特點(diǎn)
  2. 了解可視化大屏的使用場景
  3. 使用DataV模板制作可視化大屏

DataV 產(chǎn)品介紹

DataV是阿里云提供的數(shù)據(jù)可視化在線工具。通過拖拽式的操作,使用數(shù)據(jù)連接、可視化組件庫、行業(yè)設(shè)計(jì)模板庫、多終端適配與發(fā)布運(yùn)維等功能,讓非專業(yè)人員也可以快速的將數(shù)據(jù)的價值通過視覺進(jìn)行傳達(dá)

  • 多種場景模板
  • 豐富開放的圖標(biāo)庫
  • 支持多種數(shù)據(jù)源
  • 零門檻圖形化界面
  • 支持?jǐn)?shù)據(jù)交互分析
  • 多種適配與發(fā)布方式

DataV 大屏介紹

大屏設(shè)計(jì)原則:



機(jī)器學(xué)習(xí)

目標(biāo):

  1. 了解機(jī)器學(xué)習(xí)及阿里云PAI
  2. 了解簡單的聚類算法和分類算法
  3. 了解機(jī)器學(xué)習(xí)的基本使用流程
  4. 使用PAI進(jìn)行聚類/分類分析

機(jī)器學(xué)習(xí)介紹

分類


阿里云機(jī)器學(xué)習(xí)PAI介紹

分類算法KNN介紹

分類算法通過對已知類別訓(xùn)練集的分析,從中發(fā)現(xiàn)分類規(guī)則,以此預(yù)測新數(shù)據(jù)的類別。分類算法的應(yīng)用十分廣泛,銀行風(fēng)險(xiǎn)評估、客戶類別分類、文本檢索和搜索引擎分類、安全領(lǐng)域中的入侵檢測以及軟件項(xiàng)目中的應(yīng)用等。

按原理分類:

  • 基于統(tǒng)計(jì)的:如貝葉斯分類
  • 基于規(guī)則的:如決策樹算法
  • 基于神經(jīng)網(wǎng)絡(luò)的:神經(jīng)網(wǎng)絡(luò)算法
  • 基于距離的:KNN(K最近鄰)


常用評估指標(biāo):

  • 精確率:預(yù)測結(jié)果與實(shí)際結(jié)果的比例
  • 召回率(查勤率):預(yù)測結(jié)果中某類結(jié)果的正確覆蓋率
  • F1-Score:統(tǒng)計(jì)量,綜合評估分類模型,取值在0-1之間

KNN優(yōu)缺點(diǎn)
優(yōu)點(diǎn)

  • 原理簡單,容易理解,容易實(shí)現(xiàn)
  • 重新訓(xùn)練代價較低
  • 時間、空間復(fù)雜度取決于訓(xùn)練集(一般不算太大)

缺點(diǎn)

  • KNN屬于lazy-learning算法,得到結(jié)果的及時性差
  • k值對結(jié)果影響大(試想k=1和k=N的極端情況)
  • 不同類記錄相差較大時容易誤判
  • 樣本點(diǎn)多時,計(jì)算量較大
  • 相對于決策樹,結(jié)果可解釋性不強(qiáng)

聚類算法K-Means介紹

聚類:就是將相似的事物聚集在一起,而將不相似的事物劃分到不同的類別的過程。它是一種探索性的分析,不必事先給出一個分類的標(biāo)準(zhǔn),聚類分析能夠從樣本數(shù)據(jù)出發(fā),自動進(jìn)行分類。聚類分析所使用方法的不同,常常會得到不同的結(jié)論。
常見算法:層次聚類、劃分聚類、基于密度的聚類

K-Means優(yōu)缺點(diǎn)
優(yōu)點(diǎn):

  • 原理簡單,容易理解,容易實(shí)現(xiàn)
  • 聚類結(jié)果容易解釋
  • 聚類結(jié)果相對較好

缺點(diǎn):

  • 分類個數(shù)k需要事先指定,且指定的k值不同,聚類結(jié)果相差較大
  • 初始的k個類簇中心對最終結(jié)果有影響,選擇不同,結(jié)果可能不同
  • 能識別的類簇僅為球狀,非球狀的聚類效果很差
  • 樣本點(diǎn)多時,計(jì)算量較大
  • 對異常值敏感,對離散值需要特殊處理

機(jī)器學(xué)習(xí)常見流程介紹

數(shù)據(jù)挖掘方法論


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容