廈門大學(xué)計算機(jī)科學(xué)系研究生課程_第1頁
廈門大學(xué)計算機(jī)科學(xué)系研究生課程_第2頁
廈門大學(xué)計算機(jī)科學(xué)系研究生課程_第3頁
廈門大學(xué)計算機(jī)科學(xué)系研究生課程_第4頁
廈門大學(xué)計算機(jī)科學(xué)系研究生課程_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、目錄廈門大學(xué)計算機(jī)科學(xué)系研究生課程大數(shù)據(jù)技術(shù)原理與應(yīng)用上機(jī)練習(xí)關(guān)系數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫操作實踐主講教師:林子雨廈門大學(xué)數(shù)據(jù)庫實驗室廈門大學(xué)云計算與大數(shù)據(jù)研究中心二零一五年九月目錄1 作業(yè)題目12 作業(yè)目的13 作業(yè)性質(zhì)14 作業(yè)考核方法15 作業(yè)提交日期與方式 16 作業(yè)準(zhǔn)備16.1 關(guān)系數(shù)據(jù)庫MySQL 16.2 鍵值數(shù)據(jù)庫Redis 26.3 列族數(shù)據(jù)庫HBase 26.4 文檔數(shù)據(jù)庫MongoDB 27 作業(yè)內(nèi)容27.1 MySQL部分27.1.1 創(chuàng)建數(shù)據(jù)庫27.1.2 創(chuàng)建數(shù)據(jù)庫表37.1.3 插入數(shù)據(jù)操作57.1.4 刪除數(shù)據(jù)操作 57.1.5 修改數(shù)據(jù)57.1.6 查詢數(shù)據(jù)5

2、7.2 Redis 部分67.2.1 Redis安裝運(yùn)行67.2.2 Redis實例演示77.2.3 Redis作業(yè)97.3 HBase 部分107.3.1 安裝運(yùn)行 HBase 107.3.2 在HBase中創(chuàng)建表 107.3.3 HBase 數(shù)據(jù)基本操作 117.3.4 HBase 作業(yè)題 127.4 Mon goDB部分137.4.1 MongoDB安裝運(yùn)行137.4.2 MongoDE實例演示147.4.3 Mo ngoDB作業(yè)168 實驗報告16附錄1:任課教師介紹 17附錄2:課程教材介紹 17廈門大學(xué)計算機(jī)科學(xué)系研究生課程大數(shù)據(jù)技術(shù)原理與應(yīng)用關(guān)系數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫操作實踐上

3、機(jī)練習(xí)大數(shù)據(jù)技術(shù)原理與應(yīng)用關(guān)系數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫操作實踐上機(jī)練習(xí)說明主講教師:林子雨E-mail: ziyuli n .c n個人主頁:Q n/li nziyu1作業(yè)題目關(guān)系數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫操作實踐。2作業(yè)目的旨在讓學(xué)生了解關(guān)系數(shù)據(jù)庫(MySQL )、鍵值數(shù)據(jù)庫(Redis)、列族數(shù)據(jù)庫(HBase)和文檔數(shù)據(jù)庫(MongoDB、的基本操作,比較同樣的數(shù)據(jù)庫操作在不同類型的數(shù)據(jù)庫產(chǎn)品 中的實現(xiàn)方法,體會其中的異同點,從而加深對關(guān)系數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫的認(rèn)識。3作業(yè)性質(zhì)課后作業(yè),必做,作為課堂平時成績。4作業(yè)考核方法提交上機(jī)

4、實驗報告,任課老師根據(jù)上機(jī)實驗報告評定成績。5作業(yè)提交日期與方式NoSQL數(shù)據(jù)庫章節(jié)內(nèi)容結(jié)束后的下一周周六晚上9點之前提交。6作業(yè)準(zhǔn)備請閱讀廈門大學(xué)林子雨編著的大數(shù)據(jù)專業(yè)教材大數(shù)據(jù)技術(shù)原理與應(yīng)用(官網(wǎng): ), 了解關(guān)系數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫的區(qū)別與聯(lián)系。對于本上機(jī)練習(xí)實驗中所涉及到的四種數(shù)據(jù)庫產(chǎn)品,關(guān)系數(shù)據(jù)庫(MySQL )、鍵值數(shù)據(jù)庫(Redis)、列族數(shù)據(jù)庫(HBase)、文檔數(shù)據(jù)庫(MongoDB、而言,每種產(chǎn)品都是即可以 在Windows系統(tǒng)下安裝使用,也可以在Linux系統(tǒng)下安裝使用。但是,同學(xué)們一般對 Windows 系統(tǒng)比較熟悉,在本實驗中,為了降低實驗難度,MySQL、Red

5、is和MongoDB三種數(shù)據(jù)庫是在同學(xué)們熟悉的 Windows系統(tǒng)下安裝使用的,同時,為了讓同學(xué)了解Linux環(huán)境,這里選擇HBase在Linux系統(tǒng)下安裝使用。搭建Linux環(huán)境可以通過兩種方式:(1)在電腦上安裝雙操作系統(tǒng),即同時安裝Linux和Windows操作系統(tǒng),在電腦啟動的時候,可以選擇進(jìn)入 Linux系統(tǒng);(2 )在安裝好 Windows 操作系統(tǒng)的電腦上,在開機(jī)進(jìn)入 Windows操作系統(tǒng)以后,安裝Linux虛擬機(jī),即在Windows運(yùn)行環(huán)境下虛擬出一個Linux運(yùn)行環(huán)境,同學(xué)們可以閱讀參考文獻(xiàn)在Windows操作系統(tǒng)上安裝 Linux 虛擬機(jī)(參考文獻(xiàn): 廈門大學(xué)- 林子雨-

6、在 Windows系統(tǒng)下使用 wubi方式安裝Linux系統(tǒng).pdf )。6.1關(guān)系數(shù)據(jù)庫MySQL采用開源數(shù)據(jù)庫產(chǎn)品MySQL。可自行下載Mysql和Navicat for MySQL (一套專為MySQL設(shè)計的強(qiáng)大數(shù)據(jù)庫管理及開發(fā)工具),各種版本都適用。6.2鍵值數(shù)據(jù)庫Redis對于鍵值數(shù)據(jù)庫 Redis的上機(jī)練習(xí)操作,需要用到Redis數(shù)據(jù)庫245,下載地址為:Redis相關(guān)學(xué)習(xí)資料,可以參考以下鏈接:(1)Redis中文官方網(wǎng)站 Redis客戶端和 Redis命令的詳細(xì)介紹,是學(xué)習(xí)Redis的好地方。(2)博客 簡要介紹了 Redis 以及 Redis 命令的使用,容易上手。6.3列族

7、數(shù)據(jù)庫HBaseHBase是開源的非關(guān)系型數(shù)據(jù)庫 (NoSQL數(shù)據(jù)庫),需要下載HBase并解壓到系統(tǒng)中才 能運(yùn)行。HBase即可以安裝在 Windows操作系統(tǒng)中,也可以安裝在 Linux操作系統(tǒng)中。本 實驗采用Ubuntu系統(tǒng)(Linux的一個發(fā)行版),HBase版本為:hbase-0.94.27.tar,下載地址 為:/dyn/closer.cgi/hbase/6.4文檔數(shù)據(jù)庫MongoDB對于文檔數(shù)據(jù)庫 MongoDB的上機(jī)操作,需要用到MongoDB數(shù)據(jù)庫3.0以上版本,下載地址為:/download

8、s 。MongoDB相關(guān)學(xué)習(xí)資料,可以參考以下鏈接:(1) 入門:8天學(xué)通Mongodb,采用的版本是2.02版本,對于基礎(chǔ)的操作跟3.0版 本沒有太大區(qū)別。 ngxi nchen g/archive/2012/02/18/2356595.html 。(2) 深入:MongoDB官方文檔,含有 MongoDB所有詳細(xì)的用法,是學(xué)習(xí)MongoDB 的最佳文檔。 http:/docs .mon /ma nu al/7作業(yè)內(nèi)容作業(yè)包括四個部分:關(guān)系數(shù)據(jù)庫MySQL鍵值數(shù)據(jù)庫Redis列族數(shù)據(jù)庫HBase文檔數(shù)據(jù)庫Mo ngoDB為了幫助同學(xué)更好完成作業(yè),每個部分的內(nèi)容,會首先教同學(xué)如

9、何安裝和使用某種數(shù)據(jù) 庫,然后再要求同學(xué)完成相應(yīng)習(xí)題。為了更好比較四種數(shù)據(jù)庫的操作,在安裝和使用環(huán)節(jié),都采用了同一個基礎(chǔ)數(shù)據(jù)集(包含Student,Course,SC三個表和相應(yīng)數(shù)據(jù)),針對相同的數(shù)據(jù)集,依次引導(dǎo)同學(xué)們在四種不同 數(shù)據(jù)庫中實現(xiàn)相同的操作(建庫、增刪查改數(shù)據(jù)),讓同學(xué)們體會其中的異同。7.1 MySQL部分MySQL是 一種傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,本部分主要實現(xiàn)數(shù)據(jù)庫的一些基本操作(建數(shù)據(jù)庫、建表、增、刪、改、查)。Navicat for MySQL是一套專為MySQL設(shè)計的強(qiáng)大數(shù)據(jù)庫管理及開發(fā)工具。它可以用于 任何3.21或以上的MySQL數(shù)據(jù)庫服務(wù)器,并支持大部份MySQL最新版

10、本的功能,包括觸發(fā)器、存儲過程、函數(shù)、事件、檢索、權(quán)限管理等等。7.1.1創(chuàng)建數(shù)據(jù)庫Navicat新建連接后,右鍵點擊新建數(shù)據(jù)庫學(xué)生系統(tǒng)”,字符集選擇utf8,可以支持中文,或者用SQL語句create database 學(xué)生系統(tǒng) character set utf87.1.2創(chuàng)建數(shù)據(jù)庫表菜單表”右鍵點擊新建表,進(jìn)行屬性值設(shè)置,命名為Stude nt (如下圖)?;蛘咿D(zhuǎn)化為用SQL語句如下所示:CREATE TABLE student (Sno varchar(255) CHARACTER SET utf8 NOT NULL,Sname varchar(255) CHARACTER SET u

11、tf8 NOT NULL,Ssex varchar(255) CHARACTER SET utf8 DEFAULT NULL,Sage int(11) DEFAULT NULL,Sdept varchar(255) CHARACTER SET utf8 NOT NULL, PRIMARY KEY (Sno)回町student學(xué)牛藜紡(connectl)表接著,打開Student表,填入數(shù)據(jù)。建好的表如下圖所示:B Student 學(xué)主冬貌(connectl)-舉文件窗匚目彩入向辱口鯛L-歸遠(yuǎn)向?qū)fi網(wǎng)曜查看表單羞看二譽(yù)注區(qū)1十超H國瞬1產(chǎn)刖箱SnoSnameSsexSageSdept* 55

12、001男20 CS95002立19 IS95003王故Sr18 MA95OT419 IS其他兩個表Course,SC也按這種方式新建。建好的表如下:Court* (&學(xué)”叢回 爲(wèi) J芒Student學(xué)生至統(tǒng)(g,-. X 無標(biāo)蜀色學(xué)主甜 gz X 匕C口urse 字生盂號(co n. X文母精査晉SESfibCsa向?qū)Э趯?dǎo)出弱 r誦s向辱| snms 曰樹1 簡圭區(qū)十7施制-圖孕備升.肆序RPSnoCnoGradeI O回二SC回學(xué)生至鐮kornectl)-衰 9500195001129285950013B3950022如95002330SELECT * FROM SC UNIT 0, 100

13、主講教師:林子雨 第5頁廈門大學(xué)計算機(jī)科學(xué)系研究生課程大數(shù)據(jù)技術(shù)原理與應(yīng)用關(guān)系數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫操作實踐上機(jī)練習(xí)7.1.3插入數(shù)據(jù)操作將一個新學(xué)生元組(學(xué)號:95005;姓名:陳冬;性別:男;所在系:IS ;年齡:18歲) 插入到Student表中。In sertInto Stude nt(S no,Sn ame,Ssex,Sdept,Sage)Values( 95005,陳冬,男,IS ,18);插入后的表如下圖:&ncSnanneSisexSageSdept侯 9500120 CS95002劉晨19茁95003王敏18 MA9500419 TS95005陳冬男18 TS7.1.4刪除

14、數(shù)據(jù)操作刪除學(xué)號為95005的學(xué)生記錄。deletefrom stude nt where Sn o=95005;刪除后的表如下圖:SnameSsexSageSdeptSno卜 9500120 CS95002劉晨女19 IS95003 王戰(zhàn) 立18 MA95004 張立勇19 IS7.1.5修改數(shù)據(jù)將學(xué)生95001的年齡改為22歲。update stude ntset Sage=22where Sn o=95001修改后的表如下圖Sri aSnameSsexSageSdeptk 95001李勇男22CS95002女19S95GO3王IS MA95004男19S7.1.6查詢數(shù)據(jù)查詢選修2號課程

15、且成績在 85分以上所有學(xué)生。select Stude nt.S no,Sn amefrom Stude nt,SCwhere stude nt.S no=SC.S no ANDSC.C no=2a nd SC.Grade85查詢結(jié)果如下圖:文件(日漏輯植式g 塹看世)呂口曲I鸞助iw眉i 棒止r JWff卷辱出向辱霆新建號入Irl操?? “昜薦為Q琶找口1昌和劇 G音詢士虹員醞嗚輯舊1 select StudentSnane2 from Student,SC3 where 3tudent.Sno=5C.Sno ANDSC*Cno-2 hand SC.Grade85信息結(jié)果1郵兄 狀奇Snc&

16、name 95002 劉慕 1盤e o7.2 Redis 部分Redis是一種NoSQL數(shù)據(jù)庫,屬于鍵值數(shù)據(jù)庫。與關(guān)系型數(shù)據(jù)庫不同,Redis沒有表格 的概念,Redis只存儲形如key/value的數(shù)據(jù)。本部分主要是讓同學(xué)了解 Redis以及如何簡 單地存取數(shù)據(jù)。本部分內(nèi)容如下:Redis安裝運(yùn)行;Redis實例演示;Redis作業(yè);7.2.1 Redis安裝運(yùn)行首先,從網(wǎng)站 下載 Redis 最新版本2.4.5,然后解壓至計算機(jī)某個磁盤中即可。接著運(yùn)行兩個 Doc窗口,一個用戶 Redis服務(wù)器,一個用于Redis客戶端。兩個 Doc窗口都進(jìn)入 Redis數(shù)據(jù)庫根目錄,服務(wù)器窗口在根目錄下

17、輸入redis-server redis.conf即可運(yùn)行Redis服務(wù)器,如下圖所示:C:Windowssystem32cmid,exe - redis-server redis.confNicrasoft Uindaws6.1.76011版權(quán)所有 2009 Microsoft Lrporation保留所有權(quán)利C-Users jasohd*D: cdl D: redis-2.4,5-win32-win64xfc4bitD: Xredlis2.4.5Win32winG464bit redisserver red is .conf* Server started, Redis uersion 2

18、.4.5* DB loaded fpdfi disk: 0 seconds* The seruer is now ready* to accept coiriniection45213Sep22:00:6?452113Sep22:00:67452 113岳:22:00:0?452J13Sep22:0:US452113Sep22:00:0945213Sep22:00:13452113Sep22:00:13DB 0: 1 keys in 4 slots: HTi.0 clients connected 0 slaves1180040 bytesDB 0: 1 kejjps in 4 slots I

19、HT.0 clients connected in 4 lot HT.42 J 13 Sep 22-03-38 - B clients connected , 1188040 bjtes in use f452J 13 Sep 22:03:41 - AccetTd 127-0.0.1:59869|4521 13 Sep 22:B3:43 - DB 0: 1 ksyg in 4 slots HT.452 J 13 Sep 22:03:43 - 1 clientw connected , 1183152 b呼tew in use至此,Redis運(yùn)行成功,接下來,即可操作Redis存取數(shù)據(jù)。722

20、Redis實例演示在做此部分實驗之前,同學(xué)們必須先看上述推薦的第二篇博客,了解Redis命令的基本用法。本部分實驗的數(shù)據(jù)與 MySQL實驗部分采用同樣的數(shù)據(jù),所以同學(xué)們必須先把數(shù)據(jù)存 入Redis。關(guān)系數(shù)據(jù)庫轉(zhuǎn)化為鍵值數(shù)據(jù)庫,并不是簡單的set key value,因為表格之間存在著關(guān)系,所以我們采用如下方法:Key=表名:主鍵值:列名Value=列值例如,對于之前數(shù)據(jù)的存入,可以按如下圖方式存入:# C:Wi ndcwsVsysterri 3 2cnrtd .exe - redis-di -r-awHiu三戈nFt 即ini!。倔 版本版權(quán)所有 2009 Microsoft Corporat

21、ion,.保留所有杈禾C: JJsersxjasand:U) :Xcd D: ibedls-2,4.5-win32-win64641jitD: redis-2.4.5-win32-rin64641jitli 一一raw redis 127-fl-fl-l :63?9 set Student :9SA1 :Snane 李勇 OKredis 12?,0,.1 :6379 set Course :1:Cname 數(shù)據(jù)庫 OKredis 12?,U,0.1:6379 sec SC:95001:1:Grade 92OKredis 12?,U,W.1:6379針對之前存入的數(shù)據(jù),我們在這簡單地演示Redi

22、s的增刪改查。Redis支持5種數(shù)據(jù)類型,不同數(shù)據(jù)類型,增刪改查可能不同,這里用最簡單的數(shù)據(jù)類型“字符串”作為演示。1、 Redis插入數(shù)據(jù)Redis插入一條數(shù)據(jù),只需要先設(shè)計好鍵值,然后用set命令存入即可。例如:在課程表插入新的課程“算法”,4學(xué)分,所以,可輸入set Course:8:Cname算法和setCourse:8:Ccredit 4,如下圖所示:pedis 127,0-8.1:6379 OKredis :6379 OKi*edis 127set Course: 8 :Cnante 算忑set Course:8:Coredit 42、 Redis修改數(shù)據(jù)Redi

23、s并沒有修改數(shù)據(jù)的命令,所以,如果在Redis中要修改一條數(shù)據(jù),只能在使用set命令時,使用同樣的鍵值,然后用新的value值來覆蓋舊的數(shù)據(jù)。例如,修改新添加的課程,名字改為“編譯原理”,則如下圖所示:redis 12?_0.0_:&379 get Co ups e:8:Cn ame算法心redis = 6379 set Course =6 =CnAme 編:卡原理 OKredis 12?-0.0_1:6379 get Course:8:Cname編譯原理redis 12?.0.0.i:6379先調(diào)用get命令,輸出原先的值,然后set新的值,最后再 get得到新值,這樣就

24、修改成功了。3、Redis刪除數(shù)據(jù)Redis有專門刪除數(shù)據(jù)的命令del,用法為del key值即可。所以如果要刪除之前新增的課程編譯原理,只需輸入命令del Course:8:Cname,同時,還應(yīng)該把本課程的學(xué)分刪除delCourse:8:Ccredit,如下圖所示:|redis :6379I編譯原理redis :63791bred is 12?.0.0.1:6379Fvedis 12?.0.0.1:6379pedis 127-0-0.1:6379BEt Course:8:Cnane del Course:S:CnaReS(et Course :8 : C

25、name del Course:8:Ccredit輸入del Course:8:Cname時,返回1,說明成功操作一條數(shù)據(jù)。當(dāng)再次輸入get命令時,輸出為空,說明刪除成功。4、 Redis查詢數(shù)據(jù)Redis最簡單的查詢方式為用get命令,之前的圖例已有展示。如果要進(jìn)行關(guān)系數(shù)據(jù)庫表格連接查詢,則需要進(jìn)行多步查詢,這時要先將(姓名,學(xué)號)和(課程名,課程號)鍵值對存儲數(shù)據(jù)庫,用于后續(xù)查詢,如下圖所示:redis 127-0-0.1:&379 set 李勇 95001IOK“redis :6379 set 數(shù)學(xué) 10Kredis 127.8.0-1:6379這時,如果要查詢李勇的數(shù)

26、學(xué)分?jǐn)?shù),在關(guān)系數(shù)據(jù)庫中需要連接3個表,Redis的做法為輸入命令:get李勇獲得李勇的學(xué)號;輸入命令:get數(shù)學(xué) 獲得數(shù)學(xué)的課程號;獲得李勇學(xué)號和數(shù)學(xué)的課程號之后,在輸入命令get SC:學(xué)號:課程號:Grade即可得到李勇的分?jǐn)?shù),如下圖所示:redis 12?.0.0A:6379 set 李勇95001vedis 127_0.0_1:6379數(shù)學(xué)1pedis 1271SC:?5001 =1 :Grade92redis :63797.2.3 Redis 作業(yè)經(jīng)過之前對Redis簡單使用的介紹,接下來,需要各位同學(xué)在自己電腦上進(jìn)行實際操作, 作個簡單的測試,主要是對 Redis

27、五種數(shù)據(jù)類型的操作,所以需要好好看一下上述推薦的博 客。數(shù)據(jù)使用之前存儲的數(shù)據(jù),以及自己可以根據(jù)題目存儲特定數(shù)據(jù)類型。題目如下:1、查詢李勇所選所有課程名稱;提示:可以用列表來存儲數(shù)據(jù),然后再讀出;2、查詢李勇所修課程最高成績;提示:可以用有序集合存儲數(shù)據(jù),然后再讀出;3、查詢李勇和劉晨所選的公共課程名;提示:可以用集合存儲數(shù)據(jù),然后求二者差集;要求:首先客戶端窗口必須能表明你的身份,例如可以在D盤新建一個目錄,命名為你的學(xué)號,然后將 Redis根目錄拷貝進(jìn)來(根據(jù)系統(tǒng)信息,選擇32或64位)。如下圖所示:C:Wi ndlowsX&ytenn 32cmd.exeMicrosoft U indo

28、 ups 片反本 G .1.7601 版權(quán)所有 2009 Microsoft Corpoiation c保留所有權(quán)利oC : XUsers Xjason(l:D:Xcd D: S2302ai41153186s6lbitD:2302014115318664bit_實驗報告中必須包括插入數(shù)據(jù)和查詢數(shù)據(jù)的過程截圖以及一些必要的說明。本部分實 驗有3個小題,所以必須包含 3個截圖,每個截圖命名為題目X”,X為題目序號,如果一個截圖不能完全顯示,可以分為兩個截圖。7.3 HBase部分HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,源于Google的一篇論文Bigtable :-個結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系

29、統(tǒng)。HBase以表的形式存儲數(shù)據(jù)。表有行和列組成。列劃分 為若干個列族/列簇(column family)。本部分內(nèi)容如下:安裝運(yùn)行HBase在HBase中創(chuàng)建表;HBase數(shù)據(jù)基本操作;HBase測試題。7.3.1 安裝運(yùn)行 HBase在Ubuntu系統(tǒng)(Ubuntu是Linux系統(tǒng)的一個發(fā)行版)下,將下載好的HBase壓縮文件解壓到/usr/local/ 文件目錄下。運(yùn)行命令行窗口,輸入命令bin/start-hbase.sh以及bin/hbase shell ,即可進(jìn)行 HBase 的 shell 操作。hadoophadoop:/usr/locdl/hbase-0*94*27$ sud

30、o bln/start-hbase + shstart!ng mastert Logging to /usr/local/hbase-D.94.27/bin/./Logs/hbase-root-pimEt er-hadoop*outhadoopghadcop:/usr/local/hbase-0.9A .27$ bin/hbase shellHBase Shellj enter help* for list of supported commands*Type exit to leave the HBase ShellVersion &+94.27t rfb43461771649Seac82b

31、5S18Obebbd653beb90bf, Thu Mar 19 0&I17:5S UTC 2D1Shb5芒(Eain):日:Ba hELp在shell模式下輸入help可以查看HBase相關(guān)的命令。7.3.2 在HBase中創(chuàng)建表HBase中用create 命令創(chuàng)建表,具體如下:kbase(nain):008:0 create Tstudent1,TSnameT tSsex1,Sage1,TSdept1.course row(s) tn 1,0770 seconds此時,即創(chuàng)建了一個student ” 表,屬性有:Sname,Ssex,Sage,Sdept,course 。因為HBase的表

32、中會有一個系統(tǒng)默認(rèn)的屬性作為主鍵,故主鍵無需自行創(chuàng)建。創(chuàng)建完stude nt”表后,可通過describe命令查看student ”表的基本信息。hbase(riiain):009:O describe student1DESCRIPTIONENABLEDstudent1, NAME = dS3ge, DATA_eLOCK_ENCODING = NONE1, BLOOMFILTER = MON true E1. REPLICATION_SCOPE O, VERSIONS = 3, COMPRESSION = 1 NONE1, MIN_VERS IONS =TTL = 147483647 KEE

33、P_ELETED_CELLS = (false, BLOCKSIZE =655361, IN_,MEMORY = falseh, ENCODE_ON_DISK = 1 truep BLOCKCACHE = true1 t NAME = 7Sdept1, DATA_BLOCK,ENCODING 二NOME, 6LOOMFILTER = hONE( REPL ICATIGN_COPE = f VERSIONS_= 彗COMPRESSION = NONE1, MIN_VERSIONS = Op TTL = ,Z147485647, KEEP.DELETED.CELLE = false, BLOCKS

34、IZE = 6SS3&1r IhlMEMORV = false( ENCODE ON-DISK = true, BLOCKCACHE = true, NAME= F5name. DATA BLOCK ENCODING = NONE , BLOOMFILTER = NONE , REPLICATION_ SCOPE = 0. VERSIONS =3 COMPRESSION = PNONE1t MINVERSIONS = S, TTL= 1;1474B3671F KEEP_OELTED_CELLS = falset BLOCKSIZE = 16S536t IN_MEHO RY = false1,

35、encooe3n_disk = true# blockcache = rue1, nahe = Tssex ,DATA_BLOCK_ENCODING = NONE1, BLOOHFILTER = NONE, REPLICATIOh|_COPE = 6, VERSIONS = 3, COMPRESSION = 1 NONE1F MIN_VERSIQNS = 6f TTL = *2147 4036471 , KEEP_DELETED_CELLS = fwlw段,BLOCKSIZE = *5536, IN_HEIWRY = hfa lser, ENCODE_ON_DISK = true* f BLO

36、CKCACHE = htruef (NAME = bourse1, DATA _BLOCK_ENCODING= NONE1t BLOOMFILTER = NONE1, REPLICATIONSCOPE =VERSIOHS = 3, COMPRESSION = MONE1 , MIN_VERSIONS =a 応,TTL = ,2147S3647, * KEEP_DELETED_CELLS = false1# &LOCKSI2E = *65536f IN_HEH0RV = false1, E NC0DE_DN DISK = 1 true1 t BLOCKCACHE = ptrue1 row(s)

37、tn 0.B3B0 seconds733 HBase數(shù)據(jù)基本操作本小節(jié)主要介紹 HBase的增、刪、改、查操作。在添加數(shù)據(jù)時,HBase會自動為添加的數(shù)據(jù)添加一個時間戳,故在需要修改數(shù)據(jù)時,只需直接添加數(shù)據(jù),HBase即會用新的數(shù)據(jù)替換舊的數(shù)據(jù),從而完成“改”操作。1.添加數(shù)據(jù)HBase中用put命令添加數(shù)據(jù),一次只能為一個表的一行數(shù)據(jù)的一個列添加一個數(shù)據(jù)。當(dāng)運(yùn)行命令:put student , 95001 , Sname , LiYing 時,即為student表添加了學(xué)號為 95001,名字為LiYing的一行數(shù)據(jù),其主鍵為95001。hbase(main):010:0 put stude

38、nt1,*95001,1Sname:1,LiYing 0 row(s) in 0.0060 去亡匚onds運(yùn)行 put student , 95001, course:math , 80時,即為95001 行下的course列族的math列添加了一個數(shù)據(jù)。hbase(main):023:0 put 1 student1,T950011,Tcourse:math 1,180 0 row(s) in 0.0030 已匚onds2.刪除數(shù)據(jù)在HBase中用delete以及deleteall命令進(jìn)行刪除數(shù)據(jù)操作,它們的區(qū)別是:1、delete用于刪除一個數(shù)據(jù),是put的反向操作;2、deleteall

39、操作用于刪除一行數(shù)據(jù)。當(dāng)運(yùn)行 delete student , 95001 , Ssex時,即刪除了 student 表中 95001 行 下的Ssex列的所有數(shù)據(jù),我們用get命令來查看結(jié)果。主講教師:林子雨 第13頁hbase(matn)Q row(s) in 0*0020delete 1 student,1950011t 1Ssexsecondshbase(matn):827:0COLUMNSage:Sdept:Snane: course:math4 row(s) tn G.0120get 1 studentt95901*CELLtimestanp=1442912525675,ttrne

40、stanp=142912586483J timestanp=1442912495442J timestamp=1442912802499value=20 value=CS value=Ltlng value=80seconds當(dāng)運(yùn)行 deleteall student , 95001 時,即刪除了 student 表中的 95001 行的全 部數(shù)據(jù)。hbase(matn):028:0 0 row(s) in 0*0020deleteall 1 student,195001 亡匚ondshbase(piatn) :029:ORON0 row(s) in 0*003scan student1COL

41、UMN+CELLse匚ends3.查看數(shù)據(jù)HBase中有兩個用于查看數(shù)據(jù)的命令:(1)get命令,用于查看表的某一行數(shù)據(jù);(2)scan命令用于查看某個表的全部數(shù)據(jù)當(dāng)運(yùn)行g(shù)et student , 95001 時,返回的是student 表95001行的數(shù)據(jù)。hbase(main):02?:0 get * student *,956011COLUMNCELLSage;tirnest3Fipl442912525676fvalue=26Sdept:ttnestanp=14429125B6483value=CSSname:tinestanip=1442912495442,value=LiYingSs

42、ex:ttmestanp=1442912510852,value=male4 row(s) in 6*0130 secondshbase(HBin):B25:8 scan studentrowCOlumn+CELl95001匸olunwSp;. ti.nestaip=144Z912 52676F value=2&95061column=Sdept:j tinestanp=14429125fl64fl3H value=CS95061column=Snane:, tinestanp=i442912495442p value=LtYtng95061calumn=Ssex; tT.nestamp=14

43、4291510fl5Jt vaLue=nale95eicolumncourse:niath ttriestanp=i429i28a2499 value=8S1 row(s) in 6.120 seconds當(dāng)運(yùn)行scan student 時,返回的是student 表的全部數(shù)據(jù)。734 HBase 作業(yè)題以上把HBase的創(chuàng)建表操作以及對表的增刪改差操作基本的介紹了一遍。這些是HBase在shell下的操作,平常我們操作HBase 般是通過Hadoop,不需要親自對 HBase進(jìn)行操作。不過,了解HBase的基本原理及操作對以后學(xué)習(xí)MapReduce數(shù)據(jù)操作還是有很大的幫助。以下需要同學(xué)們完成

44、幾個簡單的練習(xí)題:1.插入數(shù)據(jù)表格NameGradeCourse廈門大學(xué)計算機(jī)科學(xué)系研究生課程大數(shù)據(jù)技術(shù)原理與應(yīng)用關(guān)系數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫操作實踐上機(jī)練習(xí)主講教師:林子雨 第21頁2. 查詢zkb的math成績 刪除表的baoniu行7.4 MongoDB部分Mo ngoDB在非關(guān)系型數(shù)據(jù)庫中是功能是最豐富的,最像關(guān)系型數(shù)據(jù)庫。支持的查詢語句非常強(qiáng)大,但是,又不支持 join多表關(guān)聯(lián)。本部分主要是讓同學(xué)了解 Mon goDB以及如何簡 單地存取數(shù)據(jù)。本部分內(nèi)容如下:Mo ngoDB安裝運(yùn)行;Mo ngoDB實例演示;Mon goDB作業(yè)。7.4.1 Mo ngoDB安裝運(yùn)行

45、安裝首先,從網(wǎng)站 /dow nloads上根據(jù)自己的系統(tǒng)下載Mon goDB最新版本3.0.6,然后安裝在計算機(jī)中某一個磁盤即可。我們選擇在 Windows系統(tǒng)安裝數(shù)據(jù)庫,安裝過程中選擇Custom即可自定義安裝路徑,選擇安裝在D:MongoDBServer3.0路徑下。路徑選擇建議不要有空格,避免不必要的麻煩。安裝完成后,即可啟動數(shù)據(jù)庫。 啟動1.指定一個文件夾用來存放mongodb的數(shù)據(jù):1 It騙 Installations (Dd MongoDB * Dab dbJ TTi.2015/9/18149 文件夾2.運(yùn)行服務(wù)端程序 m

46、ongod,同時-dbpath指定數(shù)據(jù)的存放地點。如果數(shù)據(jù)存儲目錄有帶空格,需要在數(shù)據(jù)目錄上加上空格。Ipwf PV?rCiWindows ynuerShiEll檢取所有W) NicrosiFt保.蚩所有權(quán)制點rS C! MJse-n Huan rc ) cd D1* flonr|cDBSe-ivEr,X3. ElSJbinPS 哄曲噸0料電ewejrpKBFiiO -gngDd 2015-69-11115:2Bi32.BSl+9B0B I015-89-1I15 2劉叩PBO HIS 刖 lHI15:2Bt3:2.47翊 130M-bit!01S-e9-ieilS:2fl:32a4兀叩P鹽01

47、5 fl? lHri5:282.4748EIBmwfiL JOURHRL 剛urnCDNTBOLinitdAdllittandir =0:dJbXjoubnaltinitdjndlistEnl recntfer no jaurndil FiLes prese-nt, nu re-cfluer needed durbilit IkiTEbdlity thrt詁 strttd JaiLrnal uiEir Jitrnalth岫由dinitandlistEni HangoDB starting I pid-111 port-27B17 dbpath-D:MflDnQ-DDBIit4MibCONTBO

48、L CONTHOL CWTBQl CONTWLinitdAdlifetaniinitajndlistEnd.b ue-ri iini vl.B.5initafldlktBR砒t啊席he也認(rèn)070Q冊州3叭肝舄胭肌騎肝尊心耳辭initdftdlitten build infg 甘iMo晞tHiftd.w$vru 1ihMiJisf-6. Mtiinar-1,1 bail initandl ktBR al locator-iftitdld-listHrt和 SQQirMyv: n2 an port 2701?-7603, plAtrann-Z, servictpuk-1 Service rack

49、1* DMSTJ-B_UER_-!?lT15:28t3:2a475+0B00 I QONTBOl-1115:2&:32-4?5+0800 I CONTBOL可以看到服務(wù)器端口號在27017。我們可以用瀏覽器,輸入地址localhost:27017來驗證數(shù)據(jù)庫服務(wù)已經(jīng)打開。COW* http:/localhost27017/rl Taobao CH Cartoon D Language D Share D Science LU Music D Business 口rt looks like you are tryine to access longoDB ewer HTTP on the native driver port,3.運(yùn)行客戶端程序mongodbtfonguBH ehell uEfEinm- connectirtff do: teat可以看到默認(rèn)連接的數(shù)據(jù)庫是test數(shù)據(jù)庫,接下來就可以進(jìn)入實例演示了。7.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論