

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# JupyterLab SQL 延伸模組的 SQL 編輯器功能
<a name="sagemaker-sql-extension-features-editor"></a>

SQL 延伸模組提供魔術命令，可在 JupyterLab 筆記本儲存格內啟用 SQL 編輯器功能。

如果您是 SageMaker Distribution 映像 1.6 版的使用者，您必須透過在 JupyterLab 筆記本中執行 `%load_ext amazon_sagemaker_sql_magic` 來載入 SQL 延伸模組魔術程式庫。這會開啟 SQL 編輯功能。

對於 SageMaker Distribution 映像 1.7 版和更新版本的使用者，不需要任何動作，SQL 延伸模組會自動載入。

一旦載入了延伸模組，請在儲存格開頭新增 `%%sm_sql` 魔術命令，以啟用 SQL 編輯器的下列功能。
+ **連線選擇下拉式清單**：將 `%%sm_sql` 魔術命令新增至儲存格時，下拉式功能表會出現在儲存格頂端，其中包含可用的資料來源連線。選取連線以自動填入查詢該資料來源所需的參數。以下是選取名為 `connection-name` 的連線所產生的 `%%sm_sql` 魔術命令字串範例。

  ```
  %%sm_sql --metastore-type GLUE_CONNECTION --metastore-id connection-name
  ```

  使用 SQL 編輯器的以下功能來建置您的 SQL 查詢，然後執行儲存格來執行查詢。如需 SQL 執行功能的詳細資訊，請參閱 [JupyterLab SQL 延伸模組的 SQL 執行功能](sagemaker-sql-extension-features-sql-execution.md)。
+ **查詢結果下拉式清單**：您可以從連線選擇下拉式功能表旁邊的下拉式功能表中選取結果類型，以指定如何轉譯查詢結果。從下列兩種替代方案中選擇：
  + **儲存格輸出**：(預設) 此選項會在筆記本儲存格輸出區域中顯示查詢的結果。
  + **Pandas Dataframe**：此選項會將查詢結果填入 Pandas DataFrame。額外的輸入方塊可讓您在選擇此選項時命名 DataFrame。
+ **SQL 語法醒目提示**：儲存格會自動依顏色和樣式，以視覺方式區分 SQL 關鍵字、子句、運算子等。這可讓 SQL 程式碼更容易閱讀和理解。關鍵字 (例如 `SELECT`、`FROM`、`WHERE`) 和內建函數 (例如 `SUM` 和 `COUNT`) 或子句 (例如 `GROUP BY`) 等，會以不同的顏色和粗體樣式醒目提示。
+ **SQL 格式**：您可以採取下列其中一種方式，將一致的縮排、大寫、間距和換行套用至群組或個別的 SQL 陳述式和子句。這可讓 SQL 程式碼更容易閱讀和理解。
  + 在 SQL 儲存格上按一下滑鼠右鍵，然後選擇**格式化 SQL**。
  + 當 SQL 儲存格成為焦點時，請在 Windows 上使用 *ALT \$1 F* 捷徑，或在 MacOS 上使用 *Option \$1 F*。
+ **SQL 自動完成**：延伸模組會在您輸入時提供 SQL 關鍵字、函數、資料表名稱、資料欄名稱等的自動建議和完成。當您開始輸入 SQL 關鍵字，例如 `SELECT` 或 `WHERE` 時，延伸模組會顯示快顯視窗，其中包含自動完成字詞的其餘部分。例如，輸入資料表或資料欄名稱時，其會建議比對資料庫結構描述中定義的資料表和資料欄名稱。
**重要**  
若要在 JupyterLab 筆記本中啟用 SQL 自動完成，SageMaker AI Distribution 映像版本 1.6 的使用者必須在終端機中執行下列 `npm install -g vscode-jsonrpc sql-language-server` 命令。安裝完成後，執行 `restart-jupyter-server` 以重新啟動 JupyterLab 伺服器。  
對於 SageMaker Distribution 映像 1.7 版和更新版本的使用者，不需要採取任何動作。

  儲存格提供兩種自動完成已辨識 SQL 關鍵字的方法：
  + 明確調用 (建議)：選擇 **Tab** 鍵以啟動內容感知建議功能表，然後選擇**輸入**以接受建議的項目。
  + 持續提示：儲存格會在您輸入時自動建議完成。
**注意**  
只有在 SQL 關鍵字為大寫時，才會觸發自動完成。例如，輸入 `SEL` 提示 `SELECT`，但輸入 `sel` 不會。
您第一次連線到資料來源時，SQL 自動完成會為資料來源的中繼資料編製索引。此編製索引程序可能需要一些時間才能完成，視您的資料庫大小而定。