

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# SQL 扩展的 JupyterLab SQL 编辑器功能
<a name="sagemaker-sql-extension-features-editor"></a>

SQL 扩展提供了神奇的命令，可在 JupyterLab 笔记本单元格中启用 SQL 编辑器功能。

如果您是 SageMaker 发行版映像版本 1.6 的用户，则必须通过在 JupyterLab 笔记本`%load_ext amazon_sagemaker_sql_magic`中运行来加载 SQL 扩展魔法库。这将打开 SQL 编辑功能。

对于 SageMaker 分发映像版本 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 执行功能的更多信息，请参阅 [SQL 扩展程序的 JupyterLab SQL 执行功能](sagemaker-sql-extension-features-sql-execution.md)。
+ **查询结果下拉菜单**：您可以从连接选择下拉菜单旁边的下拉菜单中选择结果类型，从而指定如何呈现查询结果。从以下两个备选方案中选择一个：
  + **单元格输出**：（默认）该选项在笔记本单元格输出区域显示查询结果。
  + **Pandas DataFrame**：此选项使用查询结果填充熊猫 DataFrame 。 DataFrame 当你选择此选项时，可以用一个额外的输入框来命名。
+ **SQL 语法高亮**：该单元格通过颜色和样式自动直观区域分 SQL 关键字、子句、运算符等。这使得 SQL 代码更易于阅读和理解。`SELECT`、`FROM`、`WHERE` 等关键词，`SUM`、`COUNT` 等内置函数，或 `GROUP BY` 等分句会以不同颜色和粗体样式突出显示。
+ **SQL 格式化**：您可以通过以下方式之一，应用一致的缩进、大小写、间距和换行来分组或分隔 SQL 语句和子句。这使得 SQL 代码更易于阅读和理解。
  + 右键单击 SQL 单元格，选择 **Format SQL**。
  + 当 SQL 单元格处于焦点位置时，在 Windows 系统中使用 *ALT \$1 F* 快捷键，在 MacOS 系统中使用 *Option \$1 F*。
+ **SQL 自动填充**：该扩展可在输入时自动建议和完成 SQL 关键字、函数、表名、列名等内容。当您开始键入一个 SQL 关键字（如 `SELECT` 或 `WHERE`）时，扩展程序会弹出一个提示，建议您自动完成单词的其余部分。例如，在键入表或列名时，它会建议匹配数据库模式中定义的表和列名。
**重要**  
要在 JupyterLab 笔记本中启用 SQL 自动完成功能， SageMaker AI 分发映像版本 1.6 的用户必须在终端中运行以下`npm install -g vscode-jsonrpc sql-language-server`命令。安装完成后，通过运行重新启动 JupyterLab 服务器`restart-jupyter-server`。  
对于 SageMaker 分发映像版本 1.7 及更高版本的用户，无需执行任何操作。

  单元格提供了两种自动完成已识别 SQL 关键字的方法：
  + 明确调用（推荐）：选择 **Tab** 键启动上下文感知建议菜单，然后选择 **Enter** 接受建议项目。
  + 连续提示：在您输入时，单元格会自动提示补全。
**注意**  
只有当 SQL 关键字为大写字母时，才会触发自动完成功能。例如，输入 `SELECT` 会提示输入 `SEL`，但输入 `sel` 则不会。
首次连接数据来源时，SQL 自动完成会对数据来源的元数据进行索引。索引编制过程可能需要一些时间才能完成，具体取决于数据库的大小。