Q1:什么是SQL带斑?為什么要用到SQL?
1.SQL(Structured Query Language,結(jié)構(gòu)化查詢語(yǔ)言)
-
SQL是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言仲墨,用于存取數(shù)據(jù),以及查詢揍障、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)
-
通俗地講目养,SQL就是用來提取數(shù)據(jù)的語(yǔ)言
-
由于數(shù)據(jù)庫(kù)類型以及數(shù)據(jù)存儲(chǔ)方式的不同,對(duì)應(yīng)的SQL語(yǔ)法也會(huì)有所區(qū)別毒嫡,但整體的SQL語(yǔ)法結(jié)構(gòu)是統(tǒng)一的
-
目前癌蚁,大多考查的是Hive SQL語(yǔ)句
2.SQL的用途
-
使用R/Python進(jìn)行數(shù)據(jù)分析前,需要將數(shù)據(jù)從數(shù)據(jù)庫(kù)中提取出來兜畸,這時(shí)需要用到SQL語(yǔ)句
Q2:簡(jiǎn)述Hive努释、Hadoop、HDFS咬摇、MapReduce伐蒂。
1. Hive
-
Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一個(gè)數(shù)據(jù)庫(kù)表肛鹏,并提供類SQL查詢功能(Hive SQL)
2.Hadoop
-
Hadoop是現(xiàn)在各大公司用得非常多的一種數(shù)據(jù)存儲(chǔ)和計(jì)算架構(gòu)系統(tǒng)
-
Hadoop可以使用戶在不了解分布式底層細(xì)節(jié)的情況下開發(fā)分布式程序逸邦,充分利用集群的威力進(jìn)行高速計(jì)算和存儲(chǔ)
-
Hadoop解決了兩大問題:大數(shù)據(jù)存儲(chǔ)(HDFS)恩沛、大數(shù)據(jù)分析(MapReduce)
3.HDFS(Hadoop Distributed File System)
-
HDFS是可擴(kuò)展的、容錯(cuò)的缕减、高性能的分布式文件系統(tǒng)雷客,異步復(fù)制,一次寫入桥狡、多次讀取
-
HDFS主要負(fù)責(zé)存儲(chǔ)
4.MapReduce
-
MapReduce是分布式計(jì)算框架佛纫,包含Map(映射)和Reduce(歸約)過程
-
MapReduce負(fù)責(zé)在HDFS上進(jìn)行計(jì)算
Q3:簡(jiǎn)述Hadoop和MySQL的區(qū)別以及適用情況。
1.Hive SQL
-
相當(dāng)于將SQL語(yǔ)句轉(zhuǎn)換成對(duì)應(yīng)的Java語(yǔ)句來實(shí)現(xiàn)Map和Reduce過程
2.Hadoop
-
Hadoop系統(tǒng)可以存儲(chǔ)并計(jì)算海量數(shù)據(jù)总放,滿足互聯(lián)網(wǎng)公司上億數(shù)據(jù)量計(jì)算的需求
-
但處理“前端實(shí)時(shí)展示數(shù)據(jù)的變化情況”這類問題效率低呈宇,從HDFS中實(shí)時(shí)獲取數(shù)據(jù)后再展示在前端,會(huì)因?yàn)镠adoop系統(tǒng)本身啟動(dòng)慢而無法保證實(shí)時(shí)性
3.MySQL
-
MySQL是將數(shù)據(jù)存儲(chǔ)在本地服務(wù)器上的關(guān)系數(shù)據(jù)庫(kù)
-
對(duì)于單次計(jì)算量不是很大的查詢能夠很快地進(jìn)行響應(yīng)局雄,獲取相關(guān)結(jié)果甥啄,滿足數(shù)據(jù)看板等實(shí)時(shí)展示數(shù)據(jù)的需要
-
但是當(dāng)數(shù)據(jù)量非常大時(shí),MySQL的速度相比于Hadoop系統(tǒng)就會(huì)慢得多炬搭,并且可能會(huì)因?yàn)橛?jì)算量過大使得任務(wù)被直接殺死
4.目前通用的方法
-
在Hadoop中通過Hive SQL對(duì)原始數(shù)據(jù)集進(jìn)行處理蜈漓,盡量在Hive中完成大數(shù)據(jù)量的計(jì)算,之后將處理好的數(shù)據(jù)通過出倉(cāng)的方式導(dǎo)入MySQL中
-
MySQL中的數(shù)據(jù)就是在原始數(shù)據(jù)基礎(chǔ)上進(jìn)行加工得到的數(shù)據(jù)宫盔,前端進(jìn)行調(diào)用時(shí)融虽,可以直接獲取或者進(jìn)行非常簡(jiǎn)單的計(jì)算
參考文獻(xiàn)
1.《拿下Offer 數(shù)據(jù)分析師求職面試指南》徐麟 著