本文介紹如何使用DMS Jupyter 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中使用。

輸出變數
可在Ipython中直接使用變數名稱(在結果集左下角),變數類型為pandas.core.frame.DataFrame。如需自訂變數名稱,請單擊變數名稱即可修改。

查詢的SQL結果集一鍵可視化,支援表格和圖表兩種展示形式。

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下方。
以表格形式展示

以圖表形式展示

執行SQL成功後,該執行結果可以變數的形式被其他SQLCell引用。同時可以自訂變數的名稱。

預測資料變化趨勢。
引入Python機器學習包,單擊執行按鈕進行安裝。如下圖片為樣本Code。

引入包成功後,輸入可預測資料、可視化形式展示資料的Python代碼。
下一步操作
常見問題
Q:哪些使用者可以查看Notebook中產生的文檔?
A:目前只允許同一租戶下的使用者,並且是該專案空間的成員才能查看。如果目標使用者不在當前租戶內,需要將其添加到與專案建立者相同的租戶,並將其添加為專案成員。