操作場景
DLI可以查詢存儲在OBS中的數據,本節操作介紹使用DLI提交Spark SQL作業查詢OBS數據的操作步驟。
操作流程
使用DLI提交Spark SQL作業查詢數據。基本流程如下:
1.上傳數據至OBS
2.創建隊列
3.創建數據庫
4.創建表
5.查詢數據
上傳數據至OBS
使用DLI查詢數據前,需要將數據文件上傳至OBS中。
1.登錄管理控制臺。
2.在服務列表中,單擊“存儲”中的“對象存儲服務OBS”,進入OBS管理控制臺頁面。
3.創建桶,本例桶名以“obs1”為例。
a. 單擊頁面右上角“創建桶”。
b. 進入“創建桶”頁面,輸入“桶名稱”。其他參數保持默認值或根據需要選擇。
創建OBS桶時,需要選擇與DLI管理控制臺相同的區域,不可跨區域執行操作。
c. 單擊“立即創建”。
4.單擊所建桶“obs1”,進入“對象”頁面。
5.勾選左側列表中的“對象”,選擇“上傳對象”,將需要上傳的文件“sampledata.csv”上傳到指定目錄,單擊“上傳”。
“sampledata.csv”樣例文件可以通過新建“sampledata.txt”,復制如下英文逗號分隔的文本內容,再另存為“sampledata.csv”。
12,test
文件上傳成功后,待分析的文件路徑為“obs://obs1/sampledata.csv”。
說明
關于OBS管理控制臺更多操作請參考《對象存儲服務控制臺使用指南》。
OBS上傳文件指導,請參見《OBS工具指南》。
針對大文件場景,由于OBS管理控制臺對文件大小和數量限制較多,所以推薦使用OBS工具上傳大文件,如OBS Browser+上傳。
OBS Browser+是一個比較常用的圖形化工具,支持完善的桶管理和對象管理操作。推薦使用此工具創建桶或上傳對象。
創建隊列
隊列是使用DLI服務的基礎,執行SQL作業前需要先創建隊列。
- DLI有預置的可用隊列“default”。
- 用戶也可根據需要自己創建隊列。
a. 登錄DLI管理控制臺
b. 在DLI管理控制臺,單擊左側導航欄中的“SQL編輯器”,可進入SQL作業“數據庫”頁面。
c. 在左側導航欄,選擇隊列頁簽,單擊右側的
創建隊列。
創建隊列詳細介紹請參考《數據湖探索用戶指南》>《創建隊列》。
創建數據庫
在進行數據查詢之前還需要創建一個數據庫,例如db1。
說明“default”為內置數據庫,不能創建名為“default”的數據庫。
1.在DLI管理控制臺,單擊左側導航欄中的“SQL編輯器”,可進入SQL作業“數據庫”頁面。
2.在“SQL編輯器”頁面右側的編輯窗口中,輸入如下SQL語句,單擊“執行”。閱讀并同意隱私協議,單擊“確定”。
create database db1
數據庫創建成功后,左側單擊“”刷新數據庫頁面,新建建的數據庫db1會在“數據庫”列表中出現。

說明在DLI管理控制臺第一次單擊“執行”操作時,需要閱讀隱私協議,確認同意后才能執行作業,且后續“執行”操作將不會再提示閱讀隱私協議。
創建表
數據庫創建完成后,需要在數據庫db1中基于OBS上的樣本數據“obs://obs1/sampledata.csv”創建一個表,例如table1。
1.在“SQL編輯器”頁面右側的編輯窗口上方,選擇隊列“default”和數據庫“db1”。
2.在編輯窗口中,輸入如下SQL語句,單擊“執行”。
createtable table1 (id int, name string) using csv options (path'obs://obs1/sampledata.csv')
表table1創建成功后,單擊左側“庫表”頁簽,再單擊db1,新創建的表table1會在“表”區域下方顯示。
查詢數據
完成以上步驟后,就可以開始進行數據查詢了。
1.單擊“SQL編輯器”頁面左側的“數據庫”頁簽,選擇新創建的表table1,雙擊表,在右側編輯窗口中,自動輸入SQL查詢語句,例如查詢table1表的1000條數據:
select * from db1.table1 limit 1000
2.單擊“執行”,系統開始查詢。
SQL語句執行成功/失敗后,可在SQL作業編輯窗口下方“查看結果”頁簽查看查詢結果。
