編程技能(九)掌握SQL——SQL簡介及數(shù)據(jù)庫常見類型

思維導圖

Q1:什么是SQL?為什么要用到SQL?

1.SQL(Structured Query Language,結構化查詢語言)

  • SQL是一種數(shù)據(jù)庫查詢和程序設計語言,用于存取數(shù)據(jù),以及查詢、更新和管理關系數(shù)據(jù)庫系統(tǒng)

  • 通俗地講,SQL就是用來提取數(shù)據(jù)的語言

  • 由于數(shù)據(jù)庫類型以及數(shù)據(jù)存儲方式的不同,對應的SQL語法也會有所區(qū)別,但整體的SQL語法結構是統(tǒng)一的

  • 目前,大多考查的是Hive SQL語句

2.SQL的用途

  • 使用R/Python進行數(shù)據(jù)分析前,需要將數(shù)據(jù)從數(shù)據(jù)庫中提取出來,這時需要用到SQL語句


Q2:簡述Hive、Hadoop、HDFS、MapReduce。

1. Hive

  • Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結構化的數(shù)據(jù)文件映射為一個數(shù)據(jù)庫表,并提供類SQL查詢功能(Hive SQL)

2.Hadoop

  • Hadoop是現(xiàn)在各大公司用得非常多的一種數(shù)據(jù)存儲和計算架構系統(tǒng)

  • Hadoop可以使用戶在不了解分布式底層細節(jié)的情況下開發(fā)分布式程序,充分利用集群的威力進行高速計算和存儲

  • Hadoop解決了兩大問題:大數(shù)據(jù)存儲(HDFS)、大數(shù)據(jù)分析(MapReduce)

3.HDFS(Hadoop Distributed File System)

  • HDFS是可擴展的、容錯的、高性能的分布式文件系統(tǒng),異步復制,一次寫入、多次讀取

  • HDFS主要負責存儲

4.MapReduce

  • MapReduce是分布式計算框架,包含Map(映射)和Reduce(歸約)過程

  • MapReduce負責在HDFS上進行計算


Q3:簡述Hadoop和MySQL的區(qū)別以及適用情況。

1.Hive SQL

  • 相當于將SQL語句轉換成對應的Java語句來實現(xiàn)Map和Reduce過程

2.Hadoop

  • Hadoop系統(tǒng)可以存儲并計算海量數(shù)據(jù),滿足互聯(lián)網(wǎng)公司上億數(shù)據(jù)量計算的需求

  • 但處理“前端實時展示數(shù)據(jù)的變化情況”這類問題效率低,從HDFS中實時獲取數(shù)據(jù)后再展示在前端,會因為Hadoop系統(tǒng)本身啟動慢而無法保證實時性

3.MySQL

  • MySQL是將數(shù)據(jù)存儲在本地服務器上的關系數(shù)據(jù)庫

  • 對于單次計算量不是很大的查詢能夠很快地進行響應,獲取相關結果,滿足數(shù)據(jù)看板等實時展示數(shù)據(jù)的需要

  • 但是當數(shù)據(jù)量非常大時,MySQL的速度相比于Hadoop系統(tǒng)就會慢得多,并且可能會因為計算量過大使得任務被直接殺死

4.目前通用的方法

  • 在Hadoop中通過Hive SQL對原始數(shù)據(jù)集進行處理,盡量在Hive中完成大數(shù)據(jù)量的計算,之后將處理好的數(shù)據(jù)通過出倉的方式導入MySQL中

  • MySQL中的數(shù)據(jù)就是在原始數(shù)據(jù)基礎上進行加工得到的數(shù)據(jù),前端進行調用時,可以直接獲取或者進行非常簡單的計算


參考文獻

1.《拿下Offer 數(shù)據(jù)分析師求職面試指南》徐麟 著

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容