本文介紹如何使用DMS Jupyter Notebook進行資料查詢和分析。Notebook相當於一個互動頁面,能夠在同一個頁面中整合代碼、文字和圖表,以便於向其他使用者傳達資訊。
Notebook介面介紹
Notebook介面由頂部工具列和下方儲存格編輯地區組成,工具列中各按鈕功能如下:
-
:儲存在Notebook編輯的內容。 -
:在目前的儲存格的上方插入一個儲存格。 -
:刪除所選中的儲存格。 -
:剪下選中的儲存格。 -
:複製選中的儲存格。 -
:粘貼複製的內容到選中的儲存格。 -
:執行所選中的儲存格的內容。 -
:中斷核心。 -
:重啟核心。 -
:重啟核心,並重新運行整個Notebook。 -
:切換儲存格的屬性,Code、SQL、Markdown和Raw。 -
:單擊Copilot即可進入對話介面。
DMS Jupyter Notebook支援的功能
DMS Jupyter Notebook相容開源Jupyter Notebook。此外,DMS Jupyter Notebook還增強了SQL查詢和可視化的能力。如下為您介紹DMS Jupyter Notebook支援的功能:
Ipython kernel(核心)
使用pip安裝擴充包、支援公網訪問,與開源Jupyter Notebook的使用方式基本一致。
-
在Notebook使用Spark文法查詢表資料。文法樣本如下:
-
文法一:
df = spark.sql("select * from customer limit 10").show(); -
文法二:
%%spark_sql select * from customer limit 10; -
文法三:
在Cell中選擇,再輸入相關SQL。
CREATE TABLE IF NOT EXISTS 'default'.'select_2' AS SELECT 2;說明Spark SQL Cell 預設分頁展示的行數上限為3000行。如需調整顯示的行數,請修改環境變數DMS_SPARK_SQL_DEFAULT_LIMIT,在Cell中輸入如下代碼:
os.environ['DMS_SPARK_SQL_DEFAULT_LIMIT'] = '3000';
-
-
在Notebook的工具列地區,將儲存格屬性從Code切換至SQL。
SQL Cells使用文法與邏輯數倉基本相同,支援跨庫查詢、即時分析,許可權要求與DMS細粒度的許可權要求一致。
-
在SQLCell和PythonCell中引用變數(引用格式為
${變數名稱})、自訂變數名稱、查看變數類型。如下為您介紹如何在Notebook中輸入變數、輸出變數、引用變數。-
輸入變數並引用變數
Ipython中的變數,可通過${var}(var為Ipython內的變數名),引用到SQL中使用。
target_table = 'archieve_partitions' SELECT * FROM `datafactory`.`${target_table}`; -
輸出變數
可在Ipython中直接使用變數名稱(在結果集左下角),變數類型為pandas.core.frame.DataFrame。如需自訂變數名稱,請單擊變數名稱即可修改。
-
-
查詢的SQL結果集一鍵可視化,支援表格和圖表兩種展示形式。
圖表視圖左側為配置面板,可設定圖表類型(如折線圖)、X軸和Y軸欄位、分組及篩選條件;頂部提供換一個和下載圖片按鈕。
PySpark kernel(核心)
預設支援AnalyticDB Spark,也可支援開源Spark。
spark magic通過%%help magic可以快捷列出支援的命令列表。
Spark Magic是一個Jupyter Notebook擴充。
使用AnalyticDB Spark
在完成購買湖倉版AnalyticDB執行個體、開通併購買資源群組、建立資料庫帳號操作後,您可以使用如下命令:
|
命令 |
說明 |
|
|
確認或排查ADB Spark配置。 |
|
|
提交SQL到ADB Spark。 |
|
進行DDL,使用讀寫C-Store的文法。更多資訊,請參見讀寫內表資料 |
|
|
|
提交python代碼到ADB Spark。 |
新建立的session,ADB Spark會保留20分鐘,逾時後會被刪除。您可通過重啟kernel建立新的session。
檔案的上傳與下載
使用ossutil上傳、下載所需要的資料集。配置ossutil的操作,請參見配置ossutil。
操作步驟
-
建立Notebook。
在檔案
頁簽下,單擊
,選擇Notebook。 -
在文字和代碼的展示地區,使用SQL、Code、Markdown或Raw的格式寫入資料。
-
確認產生的SQL無誤後,執行SQL並查看產生的結果集。
-
在Copilot產生的SQL地區,單擊執行查詢。
SQL會自動插入左側的文檔中,產生的查詢結果也會顯示在SQL下方。
-
以表格形式展示
查詢結果返回7行ORDERS表資料,包含
O_ORDERKEY(訂單號)、O_CUSTKEY(客戶號)、O_ORDERSTATUS(訂單狀態)等欄位,所有記錄的訂單狀態均為O。 -
以圖表形式展示
在資料視覺效果配置面板中,將圖表類型設定為折線圖,X軸欄位選擇O_ORDERDATE,Y軸欄位選擇[總計] O_ORDERKEY,即可產生按訂單日期匯總的O_ORDERKEY趨勢折線圖。
-
-
-
執行SQL成功後,該執行結果可以變數的形式被其他SQLCell引用。同時可以自訂變數的名稱。
例如,SQL 查詢結果自動產生變數名
SQL_949364,在 Python 代碼單元中執行SQL_RES=SQL_949364即可將結果賦值給自訂變數SQL_RES,傳回值為 pandas DataFrame 格式。 -
預測資料變化趨勢。
-
引入Python機器學習包,單擊執行按鈕進行安裝。如下為樣本Code。
pip install pandas numpy matplotlib scikit-Learn -
引入包成功後,輸入可預測資料、可視化形式展示資料的Python代碼。
-
下一步操作
常見問題
Q:哪些使用者可以查看Notebook中產生的文檔?
A:目前只允許同一租戶下的使用者,並且是該專案空間的成員才能查看。如果目標使用者不在當前租戶內,需要將其添加到與專案建立者相同的租戶,並將其添加為專案成員。