操作場景
DLI可以查詢存(cun)儲在OBS中的數據(ju),本節(jie)操(cao)作(zuo)介紹使用DLI提交(jiao)Spark SQL作(zuo)業查詢OBS數據(ju)的操(cao)作(zuo)步驟。
操作流程
使用DLI提交Spark SQL作業查詢數(shu)據。基本流程如(ru)下:
1.上傳數據至OBS
2.創建隊列
3.創建數據庫
4.創建表
5.查詢數據
上傳數據至OBS
使用DLI查詢數據(ju)前,需要將數據(ju)文件上傳至OBS中(zhong)。
1.登錄管理控制臺(tai)。
2.在服務列(lie)表中(zhong),單(dan)擊“存(cun)儲(chu)”中(zhong)的(de)“對象存(cun)儲(chu)服務OBS”,進(jin)入(ru)OBS管(guan)理(li)控制臺頁面。
3.創建桶,本例(li)桶名以“obs1”為例(li)。
a. 單擊頁(ye)面(mian)右上角“創建(jian)桶”。
b. 進(jin)入“創建(jian)桶”頁面,輸入“桶名(ming)稱”。其他參數保持(chi)默認值或根據(ju)需(xu)要(yao)選擇。
創(chuang)建OBS桶時,需要選擇與DLI管理(li)控制臺相同的區(qu)域(yu)(yu),不(bu)可跨(kua)區(qu)域(yu)(yu)執行操作。
c. 單擊(ji)“立(li)即創建”。
4.單擊所建桶“obs1”,進入“對象”頁(ye)面(mian)。
5.勾(gou)選(xuan)左(zuo)側列表中的“對象(xiang)”,選(xuan)擇(ze)“上傳對象(xiang)”,將需要上傳的文(wen)件(jian)“sampledata.csv”上傳到指定目錄(lu),單擊(ji)“上傳”。
“sampledata.csv”樣例文件(jian)可以通過新建“sampledata.txt”,復制如(ru)下英文逗(dou)號(hao)分隔的文本內容,再另存為(wei)“sampledata.csv”。
12,test
文件上(shang)傳成(cheng)功后,待分析的文件路徑為“obs://obs1/sampledata.csv”。
說明
關于OBS管理控制臺更多操作請參考《對象存儲服務控制臺使用指南》。
OBS上傳文件指導,請參見《OBS工具指南》。
針對(dui)大(da)文(wen)件(jian)場景,由于(yu)OBS管理控制臺對(dui)文(wen)件(jian)大(da)小和(he)數量限制較多,所以推薦使用(yong)OBS工具上(shang)傳大(da)文(wen)件(jian),如(ru)OBS Browser+上(shang)傳。
OBS Browser+是一(yi)個比較常用的圖形(xing)化工(gong)具(ju),支持完(wan)善的桶管(guan)(guan)理和對(dui)象(xiang)管(guan)(guan)理操(cao)作。推(tui)薦使用此工(gong)具(ju)創建桶或上傳對(dui)象(xiang)。
創建隊列
隊列是(shi)使用DLI服(fu)務(wu)的基(ji)礎,執行SQL作業(ye)前需要先創建隊列。
- DLI有預置的可用隊列“default”。
- 用戶也可根據需要自己創建隊列。
a. 登錄DLI管理控制臺
b. 在DLI管理控制臺,單擊左側導航欄中的“SQL編(bian)輯器”,可進入SQL作業(ye)“數據庫”頁面。
c. 在左側導航欄,選擇隊列頁簽,單擊右側的創建隊列。
創建隊列詳細介紹請參考《數據湖探索用戶指南》>《創建隊列》。
創建數據庫
在進行(xing)數(shu)據查詢之前還需要創建一個數(shu)據庫,例(li)如db1。
說明“default”為(wei)內置數據庫,不(bu)能創建名為(wei)“default”的(de)數據庫。
1.在DLI管理(li)控制(zhi)臺,單擊左側(ce)導(dao)航欄中的“SQL編(bian)輯(ji)器”,可進(jin)入SQL作業“數據庫”頁(ye)面。
2.在“SQL編輯器(qi)”頁面右側的編輯窗口(kou)中,輸入如下SQL語句,單(dan)擊“執行”。閱讀并同意隱(yin)私(si)協議,單(dan)擊“確定”。
create database db1
數據庫創建成功后,左側單擊“”刷(shua)新數據(ju)(ju)庫(ku)頁面,新建建的數據(ju)(ju)庫(ku)db1會在“數據(ju)(ju)庫(ku)”列表中出現。
說明在(zai)DLI管(guan)理控制臺第(di)一次(ci)單(dan)擊“執(zhi)行(xing)(xing)(xing)”操作時(shi),需要閱讀隱(yin)私協議,確認同意后(hou)才能執(zhi)行(xing)(xing)(xing)作業,且(qie)后(hou)續“執(zhi)行(xing)(xing)(xing)”操作將不(bu)會再提(ti)示閱讀隱(yin)私協議。
創建表
數據庫(ku)創建完成后,需要在數據庫(ku)db1中基于OBS上(shang)的樣本(ben)數據“obs://obs1/sampledata.csv”創建一個表,例如table1。
1.在“SQL編輯器”頁面右側的(de)編輯窗口上方,選擇隊列(lie)“default”和數據庫(ku)“db1”。
2.在編輯(ji)窗口中,輸入如下(xia)SQL語句,單擊(ji)“執行”。
createtable table1 (id int, name string) using csv options (path'obs://obs1/sampledata.csv')
表table1創(chuang)建成功(gong)后(hou),單(dan)擊左側“庫表”頁簽,再單(dan)擊db1,新創(chuang)建的表table1會在“表”區域下方(fang)顯(xian)示。
查詢數據
完成以(yi)上步(bu)驟(zou)后,就(jiu)可以(yi)開始進行數據(ju)查詢了。
1.單(dan)擊“SQL編(bian)輯(ji)器”頁面左側(ce)(ce)的(de)(de)“數(shu)據庫”頁簽,選擇新創建的(de)(de)表table1,雙擊表,在右側(ce)(ce)編(bian)輯(ji)窗口中,自動輸(shu)入SQL查詢語(yu)句,例(li)如查詢table1表的(de)(de)1000條數(shu)據:
select * from db1.table1 limit 1000
2.單擊“執行(xing)”,系統開始查詢。
SQL語句執行(xing)成功/失敗(bai)后,可在SQL作業編輯窗口下(xia)方“查看結果”頁簽查看查詢結果。