本文目錄一覽:
大數據培訓課程大綱要學什麼課程?
首先我們要了解Java語言和Linux操作系統,這兩個是學習大數據的基礎,學習的順序不分前後。
Java :只要了解一些基礎即可,做大數據不需要很深的Java 技術,學java SE 就相當於有學習大數據基礎。
Linux:因為大數據相關軟體都是在Linux上運行的,所以Linux要學習的紮實一些,學好Linux對你快速掌握大數據相關技術會有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大數據軟體的運行環境和網路環境配置,能少踩很多坑,學會shell就能看懂腳本這樣能更容易理解和配置大數據集群。還能讓你對以後新出的大數據技術學習起來更快。
Hadoop:這是現在流行的大數據處理平台幾乎已經成為大數據的代名詞,所以這個是必學的。Hadoop裡面包括幾個組件HDFS、MapReduce和YARN,HDFS是存儲數據的地方就像我們電腦的硬碟一樣文件都存儲在這個上面,MapReduce是對數據進行處理計算的,它有個特點就是不管多大的數據只要給它時間它就能把數據跑完,但是時間可能不是很快所以它叫數據的批處理。
Zookeeper:這是個萬金油,安裝Hadoop的HA的時候就會用到它,以後的Hbase也會用到它。它一般用來存放一些相互協作的信息,這些信息比較小一般不會超過1M,都是使用它的軟體對它有依賴,對於我們個人來講只需要把它安裝正確,讓它正常的run起來就可以了。
Mysql:我們學習完大數據的處理了,接下來學習學習小數據的處理工具mysql資料庫,因為一會裝hive的時候要用到,mysql需要掌握到什麼層度那?你能在Linux上把它安裝好,運行起來,會配置簡單的許可權,修改root的密碼,創建資料庫。這裡主要的是學習SQL的語法,因為hive的語法和這個非常相似。
Sqoop:這個是用於把Mysql里的數據導入到Hadoop里的。當然你也可以不用這個,直接把Mysql數據表導出成文件再放到HDFS上也是一樣的,當然生產環境中使用要注意Mysql的壓力。
Hive:這個東西對於會SQL語法的來說就是神器,它能讓你處理大數據變的很簡單,不會再費勁的編寫MapReduce程序。有的人說Pig那?它和Pig差不多掌握一個就可以了。
Oozie:既然學會Hive了,我相信你一定需要這個東西,它可以幫你管理你的Hive或者MapReduce、Spark腳本,還能檢查你的程序是否執行正確,出錯了給你發報警並能幫你重試程序,最重要的是還能幫你配置任務的依賴關係。我相信你一定會喜歡上它的,不然你看著那一大堆腳本,和密密麻麻的crond是不是有種想屎的感覺。
Hbase:這是Hadoop生態體系中的NOSQL資料庫,他的數據是按照key和value的形式存儲的並且key是唯一的,所以它能用來做數據的排重,它與MYSQL相比能存儲的數據量大很多。所以他常被用於大數據處理完成之後的存儲目的地。
Kafka:這是個比較好用的隊列工具,隊列是幹嗎的?排隊買票你知道不?數據多了同樣也需要排隊處理,這樣與你協作的其它同學不會叫起來,你幹嗎給我這麼多的數據(比如好幾百G的文件)我怎麼處理得過來,你別怪他因為他不是搞大數據的,你可以跟他講我把數據放在隊列里你使用的時候一個個拿,這樣他就不在抱怨了馬上灰流流的去優化他的程序去了,因為處理不過來就是他的事情。而不是你給的問題。當然我們也可以利用這個工具來做線上實時數據的入庫或入HDFS,這時你可以與一個叫Flume的工具配合使用,它是專門用來提供對數據進行簡單處理,並寫到各種數據接受方(比如Kafka)的。
Spark:它是用來彌補基於MapReduce處理數據速度上的缺點,它的特點是把數據裝載到內存中計算而不是去讀慢的要死進化還特別慢的硬碟。特別適合做迭代運算,所以演算法流們特別稀飯它。它是用scala編寫的。Java語言或者Scala都可以操作它,因為它們都是用JVM的。
mysql使用教程?
MySQL資料庫使用教程介紹
完整 MySQL 操作詳見:[MySQL攻略]MySQL資料庫使用教程介紹
什麼叫MySQL資料庫?
資料庫(Database)是依照演算法設計來機構、儲存和管理數據信息的倉庫。每一個資料庫都具有一個或多個API用以創建,訪問,管理,檢索和拷貝存儲的數據信息。
如今大家用的大多數是關係型資料庫管理系統(RDBMS)來儲存和管理大量數據。所謂關係型資料庫,就是以關係模型為基礎的資料庫,憑藉結合集合代數等數學概念來對資料庫中的數據進行處理。
MySQL是時下最熱門的關係型資料庫管理系統之一,本教程將會講解MySQL的基礎知識,並幫助大家熟練應用MySQL資料庫。
MySQL教程-RDBMS專業術語
在開始學習MySQL資料庫前,使我們先掌握下RDBMS的一些專業術語:
資料庫:資料庫是一些關係表的結合。
數據表:數據的矩陣。在一個資料庫中的表看上去像一個簡易的excel表。
列:一列(數據元素)包括了同類型的數據。
行:一行(元組/紀錄)是一組有關的數據。
冗餘:儲存二倍數據,性能會有所損失,但信息安全性有所提高。
主鍵:主鍵是唯一的。一個數據表中只有包含一個主鍵。
外鍵:用於關聯兩個表。
索引:用資料庫索引可快速訪問數據表中的特定信息。索引是對資料庫表格中一列或多列的值作排列的一種構造方式。類似書本的目錄。
MySQL教程-基礎操作
進到資料庫:mysql -uroot -p,登陸密碼立即回車鍵
退出資料庫:quit或是exit
查詢版本號:select version();
獲取當前時間:select now();
mysql資料庫面試題(學生表_課程表_成績表_教師表)
Student(Sid,Sname,Sage,Ssex)學生表
Sid:學號
Sname:學生姓名
Sage:學生年齡
Ssex:學生性別
Course(Cid,Cname,Tid)課程表
Cid:課程編號
Cname:課程名稱
Tid:教師編號
SC(Sid,Cid,score)成績表
Sid:學號
Cid:課程編號
score:成績
Teacher(Tid,Tname)教師表
Tid:教師編號:
Tname:教師名字
1、插入數據
2、刪除課程表所有數據
3、將學生表中的姓名 張三修改為張大山
或者
4、查詢姓』李』的老師的個數:
5、查詢所有課程成績小於60的同學的學號、姓名:
6、查詢沒有學全所有課的同學的學號、姓名
7、查詢平均成績大於60分的同學的學號和平均成績
8、查詢學過「100」並且也學過編號「101」課程的同學的學號、姓名
9、查詢「100」課程比「101」課程成績高的所有學生的學號
10、查詢課程編號「100」的成績比課程編號「101」課程高的所有同學的學號、姓名
11、查詢學過「魯迅」老師所教的所有課的同學的學號、姓名
12、查詢所有同學的學號、姓名、選課數、總成績
13、查詢至少有一門課與學號為「1」同學所學相同的同學的學號和姓名
14、把「SC」表中「魯迅」老師教的課的成績都更改為此課程的平均成績,
錯誤
15、查詢和「2」學號的同學學習的課程完全相同的其他同學學號和姓名
16、刪除學習「魯迅」老師課的SC表記錄
17、向SC表中插入一些記錄,這些記錄要求符合以下條件:沒有上過編號「003」課程的同學學號、002號課的平均成績
18、查詢各科成績最高和最低的分:以如下的形式顯示:課程ID,最高分,最低分
19、按各科平均成績從低到高和及格率的百分數從高到低順序
20、查詢如下課程平均成績和及格率的百分數(用」1行」顯示): 數學(100),語文(101),英語(102)
22、查詢不同老師所教不同課程平均分從高到低顯示
23、查詢如下課程成績第3名到第6名的學生成績單:數學(100),語文(101),英語(102)
23、統計下列各科成績,各分數段人數:課程ID,課程名稱,[100-85],[85-70],[70-60],[ 小於60]
24、查詢學生平均成績及其名次
25、查詢各科成績前三名的記錄(不考慮成績並列情況)
26、查詢每門課程被選修的學生數
27、查詢出只選修一門課程的全部學生的學號和姓名
28、查詢男生、女生人數
29、查詢姓「張」的學生名單
30、查詢同名同姓的學生名單,並統計同名人數
31、1981年出生的學生名單(註:student表中sage列的類型是datetime)
32、查詢平均成績大於85的所有學生的學號、姓名和平均成績
33、查詢每門課程的平均成績,結果按平均成績升序排序,平均成績相同時,按課程號降序排列
34、查詢課程名稱為「英語」,且分數低於60的學生名字和分數
35、查詢所有學生的選課情況
36、查詢任何一門課程成績在70分以上的姓名、課程名稱和分數
37、查詢不及格的課程,並按課程號從大到小的排列
38、查詢課程編號為「101」且課程成績在80分以上的學生的學號和姓名
39、求選了課程的學生人數:
40、查詢選修「魯迅」老師所授課程的學生中,成績最高的學生姓名及其成績
41、檢索至少選修兩門課程的學生學號
42、查詢全部學生都選修的課程的課程號和課程名(1.一個課程被全部的學生選修,2.所有的學生選擇的所有課程)
43、查詢沒學過「魯迅」老師講授的任一門課程的學生姓名
44、查詢兩門以上不及格課程的同學的學號及其平均成績
45、檢索「101」課程分數小於60,按分數降序排列的同學學號
46、刪除「2」同學的「101」課程的成績
推薦一下最好的mysql資料庫教學課程?
關於mysql有一個系列的書叫《
MySQL必知必會
》,可以了解一下,裡面的內容講解得很好。
ETL工程師要學什麼?
技術方面:需要學習使用數據源、目標端工具的基本使用(如 oracle MySQL hive等);需要學習etl工具的安裝配置常用錯誤解決(如 kettle DataStage infa sqoop datax等)
理論方面:懂得數倉分層架構,維度建模等。
從ETL的字面來看,它主要包含三大階段,分別是數據抽取、數據轉換、數據載入。
1.數據抽取
這個階段的主要目標是匯總多種數據源,為下一步的轉換做準備。
2.數據轉換
這個階段是ETL的核心環節,也是最複雜的環節。它的主要目標是將抽取到的各種數據,進行數據的清洗、格式的轉換、缺失值填補、剔除重複等操作,最終得到一份格式統一、高度結構化、數據質量高、兼容性好的數據,為後續的分析決策提供可靠的數據支持。
3.數據載入
這個階段的主要目標是把數據載入至目的地,比如數據倉庫中。通常的做法是,將處理好的數據寫成特定格式(如parquet、csv等)的文件,然後再把文件掛載到指定的表分區上。也有些表的數據量很小,不會採用分區表,而是直接生成最終的數據表。
了解了ETL這部分的工作主要做什麼,接下來再來說作為ETL工程師需要具備哪些技能,這些也就是需要學習的重點——
1、精通SQL語言,具備存儲過程開發能力,能熟練進行SQL查詢優化;
2、熟悉Hive數據倉庫設計,了解數據倉庫模型及思想、維度建模思想,了解數據倉庫;
3、熟悉Hadoop、Spark、Flink、Kafka等相關技術;
4、熟練Python、Java中至少一種語言;
5、熟悉Mysql、Nosql等常見資料庫。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/242666.html