使用查询编辑器 v2 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用查询编辑器 v2

查询编辑器 v2 主要用于编辑和运行查询、可视化结果以及与团队共享您的工作。使用查询编辑器 v2,您可以创建数据库、架构、表和用户定义的函数 (UDF)。在树视图面板中,对于每个数据库,您都可以查看其架构。对于每个架构,您都可以查看其表、视图、UDF 和存储过程。

打开查询编辑器 v2

如要打开查询编辑器 v2
  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Redshift 控制台:https://console.aws.amazon.com/redshiftv2/

  2. 在导航器菜单中,选择编辑器,然后选择查询编辑器 V2。此时将在新的浏览器标签页中打开查询编辑器 v2。

查询编辑器页面有一个导航器菜单,您可以在其中选择视图,如下所示:

编辑器 Editor

您可以管理和查询以表形式组织并包含在数据库中的数据。数据库可以包含存储的数据,也可以包含对存储在其他位置(如 Amazon S3)的数据的引用。连接到包含在集群或无服务器工作组中的数据库。

编辑器视图中工作时,您有以下控件:

  • 集群工作组字段显示您当前连接到的集群或工作组的名称。数据库字段显示集群或工作组内的数据库。您在数据库视图执行的操作默认会对您选择的数据库执行操作。

  • 集群或工作组、数据库和架构的树视图层次结构视图。在架构下,您可以使用表、视图、函数和存储过程。树视图中的每个对象都支持上下文菜单来执行相关操作,例如对对象进行刷新删除

  • 通过 Create 创建操作来创建数据库、架构、表和函数。

  • 通过Load加载数据操作将数据从 Amazon S3 或从本地文件加载到数据库。

  • 通过 Save 保存图标来保存您的查询。

  • 通过 Shortcuts 快捷方式图标来显示编辑器的键盘快捷键。

  • More 更多图标,用于在编辑器中显示更多操作。例如:

    • 与我的团队共享,与您的团队共享查询或笔记本。有关更多信息,请参阅 以团队形式协作和共享

    • 快捷方式,显示编辑器的键盘快捷键。

    • 选项卡历史记录,用于在编辑器中显示选项卡的选项卡历史记录。

    • 刷新自动完成,用于在编写 SQL 时刷新显示的建议。

  • 可以在 Editor 编辑器区域中输入和运行查询。

    运行查询后,结果选项卡随即显示结果。您可以打开此处的图表来可视化您的结果。还可以导出结果。

  • Notebook 笔记本区域,您可以在其中添加各部分,以输入和运行 SQL 或添加 Markdown。

    运行查询后,结果选项卡随即显示结果。您可以在此处导出结果。

查询 Queries

查询包含用于管理和查询数据库中数据的 SQL 命令。当您使用查询编辑器 v2 加载示例数据时,它还会为您创建和保存示例查询。

在选择了某个已保存的查询时,您可以使用上下文菜单(右键单击)打开、重命名和删除该查询。您可以选择查询详细信息,查看已保存查询的属性,例如查询 ARN。您还可以查看其版本历史记录、编辑附加到查询的标签,并将其与您的团队共享。

笔记本 Notebooks

SQL 笔记本包含 SQL 和 Markdown 单元格。使用笔记本可在单个文档中组织、注释及共享多个 SQL 命令。

在选择了某个已保存的笔记本时,您可以使用上下文菜单(右键单击)打开、重命名、复制和删除该笔记本。您可以选择笔记本详细信息,查看已保存笔记本的属性,例如笔记本 ARN。您还可以查看其版本历史记录、编辑附加到笔记本的标签,并将其与您的团队共享。有关更多信息,请参阅 编写和运行笔记本

图表 Chart

图表是您的数据的可视化表示。查询编辑器 v2 提供了用于创建多种图表并保存它们的工具。

在选择了某个已保存的图表时,您可以使用上下文菜单(右键单击)打开、重命名和删除该图表。您可以选择图表详细信息,查看已保存图表的属性,例如 图表 ARN。您也可以编辑附加到图表的标签并将其导出。有关更多信息,请参阅 可视化查询结果

历史记录 History

查询历史记录是您使用 Amazon Redshift 查询编辑器 v2 运行的查询的列表。这些查询作为单个查询运行,或作为 SQL 笔记本的一部分运行。有关更多信息,请参阅 查看查询和选项卡历史记录

计划查询 Scheduled queries

计划查询是设置为在特定时间开始的查询。

所有查询编辑器 v2 视图都有以下图标:

  • Visual mode 可视化模式图标,可在亮模式和暗模式之间切换。

  • Settings 设置图标,可显示不同设置屏幕的菜单。

    • Editor preferences 编辑器首选项图标,可在使用查询编辑器 v2 时编辑首选项。在此处,您可以编辑工作区设置以更改字体大小、选项卡大小和其它显示设置。您也可以打开(或关闭)自动完成,以便在输入 SQL 时显示建议。

    • Connections 连接图标,可查看编辑器选项卡使用的连接。

      连接用于检索数据库中的数据。连接是针对特定数据库创建的。使用隔离连接时,在一个编辑器选项卡中更改数据库的 SQL 命令(例如创建临时表)的结果在另一个编辑器选项卡中不可见。在查询编辑器 v2 中打开编辑器选项卡时,默认为隔离连接。创建共享连接时,即关闭隔离会话开关,同一数据库的其他共享连接的结果对彼此可见。但是,使用数据库的共享连接的各编辑器选项卡不会并行运行。使用相同连接的查询必须等到连接可用。与一个数据库的连接不能与另一个数据库共享,因此 SQL 结果在不同的数据库连接之间不可见。

      账户中的任何用户可以激活的连接数由查询编辑器 v2 管理员控制。

    • Account settings 账户设置图标,管理员用于更改账户中所有用户的某些设置。有关更多信息,请参阅 更改账户设置

连接到 Amazon Redshift 数据库

要连接到数据库,请在树视图面板中选择集群或工作组名称。如果出现提示,请输入连接参数。

当您连接到集群或工作组及其数据库时,通常需要提供数据库名称。您还提供以下身份验证方法之一所需的参数:

IAM Identity Center

通过此方法,使用身份提供者 (IdP) 提供的单点登录凭证连接到您的 Amazon Redshift 数据仓库。您必须在 Amazon Redshift 控制台中为 IAM Identity Center 启用集群或工作组。

联合用户

使用此方法,您的 IAM 角色或用户的主体标签必须提供连接详细信息。您可以在 Amazon Identity and Access Management 或您的身份提供者 (IdP) 中配置这些标签。查询编辑器 v2 依赖以下标签。

  • RedshiftDbUser – 此标签定义查询编辑器 v2 使用的数据库用户。此标签为必填项。

  • RedshiftDbGroups – 此标签定义当连接到查询编辑器 v2 时加入的数据库组。此标签是可选的,其值必须是以冒号分隔的列表,例如 group1:group2:group3。空值将被忽略,也就是说,group1::::group2 被解释为 group1:group2

这些标签将转发到 redshift:GetClusterCredentials API 以获取集群的凭证。有关更多信息,请参阅 设置主体标签以从查询编辑器 v2 连接到集群或工作组

使用数据库用户名的临时凭证

仅在连接到集群时此选项才可用。使用此方法,查询编辑器 v2 会为数据库提供用户名。查询编辑器 v2 会生成临时密码,以便使用您的数据库用户名连接到数据库。必须允许使用此方法进行连接的用户对 redshift:GetClusterCredentials 拥有 IAM 权限。要防止用户使用此方法,请修改其 IAM 用户或角色以拒绝此权限。

使用您的 IAM 身份的临时凭证

仅在连接到集群时此选项才可用。使用此方法,查询编辑器 v2 会将用户名映射到您的 IAM 身份并生成临时密码,以便使用您的 IAM 身份连接到数据库。必须允许使用此方法进行连接的用户对 redshift:GetClusterCredentialsWithIAM 拥有 IAM 权限。要防止用户使用此方法,请修改其 IAM 用户或角色以拒绝此权限。

数据库用户名和密码

使用这种方法,还需要为要连接的数据库提供用户名密码。查询编辑器 v2 代表您创建秘钥并存储在 Amazon Secrets Manager 中。此密钥包含用于连接到数据库的凭证。

Amazon Secrets Manager

使用此方法,不是提供数据库名称,而是提供在 Secrets Manager 中存储的密钥,其中包含您的数据库和登录凭证。有关创建密钥的信息,请参阅为数据库连接凭证创建密钥

当您选择具有查询编辑器 v2 的集群或工作组时,根据上下文,您可以使用上下文(右键单击)菜单创建、编辑和删除连接。您可以选择连接详细信息,查看连接的属性,例如连接 ARN。您还可以编辑附加到连接的标签。

浏览 Amazon Redshift 数据库

在数据库中,您可以在树视图面板中管理架构、表、视图、函数和存储过程。在视图中的每个对象都在上下文(右键单击)菜单中都有与之关联的操作。

分层树状图面板显示数据库对象。要刷新树视图面板以显示可能已在上次显示树视图后创建的数据库对象,请选择 Refresh 图标。打开对象的上下文(右键单击)菜单,以查看您可以执行的操作。

Tree-view icons

选择表后,您可以执行以下操作:

  • 如要在编辑器中开启查询表中所有列的 SELECT 语句启动查询,请使用选择表

  • 要查看属性或表格,请使用显示表定义。使用此选项可查看列名、列类型、编码、分配键、排序键以及列是否可以包含空值。有关语法的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》https://docs.amazonaws.cn/redshift/latest/dg/r_CREATE_TABLE_NEW.html中的 CREATE TABLE

  • 要删除表,请使用删除。您可以使用截断表从表中删除所有行。或使用删除表从数据库中删除表。更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 TRUNCATEDROP TABLE

选择架构以刷新删除架构

选择视图以显示视图定义删除视图

选择函数以显示函数定义删除函数

选择存储过程以显示过程定义删除过程

创建数据库对象

您可以创建数据库对象,包括数据库、架构、表和用户定义的函数 (UDF)。您必须连接到集群或工作组以及数据库才能创建数据库对象。

创建数据库

您可以使用查询编辑器 v2 在集群或工作组中创建数据库。

创建数据库

有关数据库的信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 CREATE DATABASE

  1. 选择Create创建,然后选择数据库

  2. 输入数据库名称

  3. (可选)选择用户和组,然后选择数据库用户

  4. (可选)您可以从数据共享或 Amazon Glue Data Catalog 创建数据库。有关 Amazon Glue 的更多信息,请参阅《Amazon Glue 开发人员指南》中的什么是 Amazon Glue?

    • (可选)选择使用数据共享创建,然后选择选择数据共享。该列表包括可用于在当前集群或工作组中创建使用者数据共享的创建者数据共享。

    • (可选)选择使用 Amazon Glue Data Catalog 创建,然后选择选择 Amazon Glue 数据库。在数据目录架构中,输入在由三部分组成的名称(database.schema.table)中引用数据时将用于架构的名称。

  5. 选择创建数据库

    新数据库将在树状视图面板中显示。

    当您选择此可选步骤查询从数据共享创建的数据库时,请连接到集群或工作组中的 Amazon Redshift 数据库(例如,默认数据库 dev),并使用三部分表示法(database.schema.table),该表示法引用您在选择使用数据共享创建时创建的数据库名称。数据共享数据库在查询编辑器 v2 编辑器选项卡中列出,但未针对直接连接启用此数据库。

    当您选择此可选步骤查询从 Amazon Glue Data Catalog 创建的数据库时,请连接到集群或工作组中的 Amazon Redshift 数据库(例如,默认数据库 dev),并使用三部分表示法(database.schema.table),该表示法引用您在选择使用 Amazon Glue Data Catalog 创建时创建的数据库名称、您在数据目录架构中命名的架构以及 Amazon Glue Data Catalog 中的表。类似于:

    SELECT * FROM glue-database.glue-schema.glue-table
    注意

    确认您已使用连接方法使用您的 IAM 身份的临时凭证连接到默认数据库,并且您的 IAM 凭证已被授予 Amazon Glue 数据库的使用权限。

    GRANT USAGE ON DATABASE glue-database to "IAM:MyIAMUser"

    Amazon Glue 数据库在查询编辑器 v2 编辑器选项卡中列出,但未针对直接连接启用此数据库。

    有关查询 Amazon Glue Data Catalog 的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的以使用者身份使用 Lake Formation 托管的数据共享以创建者身份使用 Lake Formation 托管的数据共享

示例:以数据共享使用者身份创建数据库

以下示例描述了使用查询编辑器 v2 从数据共享创建数据库的特定场景。查看此场景,了解如何从环境中的数据共享创建数据库。此场景使用两个集群,即 cluster-base(创建者集群)和 cluster-view(使用者集群)。

  1. 使用 Amazon Redshift 控制台为集群 cluster-base 中的 category2 表创建数据共享。创建者数据共享命名为 datashare_base

    有关创建数据共享的信息,请参阅《Amazon Redshift 数据库开发人员指南》中的在 Amazon Redshift 中跨集群共享数据

  2. 使用 Amazon Redshift 控制台接受数据共享 datashare_base 作为集群 cluster-viewcategory2 表的使用者。

  3. 在查询编辑器 v2 中查看树视图面板,该面板显示了 cluster-base 的层次结构,如下所示:

    • 集群:cluster-base

      • 数据库:dev

        • 架构:public

          • 表:category2

  4. 选择Create创建,然后选择数据库

  5. 对于数据库名称,请输入 see_datashare_base

  6. 选择使用数据共享创建,然后选择选择数据共享。选择 datashare_base 以用作正在创建的数据库的来源。

    查询编辑器 v2 中的树视图面板显示了 cluster-view 的层次结构,如下所示:

    • 集群:cluster-view

      • 数据库:see_datashare_base

        • 架构:public

          • 表:category2

  7. 查询数据时,连接到集群 cluster-view 的默认数据库(通常命名为 dev),但在 SQL 中引用数据共享数据库 see_datashare_base

    注意

    在查询编辑器 v2 编辑器视图中,选定的集群为 cluster-view。选定的数据库为 dev。数据库 see_datashare_base 已列出,但未针对直接连接启用此数据库。您可以在您运行的 SQL 中选择 dev 数据库并引用 see_datashare_base

    SELECT * FROM "see_datashare_base"."public"."category2";

    该查询从集群 cluster_base 中的数据共享 datashare_base 检索数据。

从 Amazon Glue Data Catalog 创建数据库的示例

以下示例描述了使用查询编辑器 v2 从 Amazon Glue Data Catalog 创建数据库的特定场景。查看此场景,了解如何从环境中的 Amazon Glue Data Catalog 创建数据库。此场景使用一个集群(即 cluster-view)以包含您创建的数据库。

  1. 选择Create创建,然后选择数据库

  2. 对于数据库名称,请输入 data_catalog_database

  3. 选择使用 Amazon Glue Data Catalog 创建,然后选择选择 Amazon Glue 数据库。选择 glue_db 以用作正在创建的数据库的来源。

    选择数据目录架构,然后输入 myschema 作为要在三部分表示法中使用的架构名称。

    查询编辑器 v2 中的树视图面板显示了 cluster-view 的层次结构,如下所示:

    • 集群:cluster-view

      • 数据库:data_catalog_database

        • 架构:myschema

          • 表:category3

  4. 查询数据时,连接到集群 cluster-view 的默认数据库(通常命名为 dev),但在 SQL 中引用数据库 data_catalog_database

    注意

    在查询编辑器 v2 编辑器视图中,选定的集群为 cluster-view。选定的数据库为 dev。数据库 data_catalog_database 已列出,但未针对直接连接启用此数据库。您可以在您运行的 SQL 中选择 dev 数据库并引用 data_catalog_database

    SELECT * FROM "data_catalog_database"."myschema"."category3";

    该查询检索由 Amazon Glue Data Catalog 编目的数据。

创建架构

您可以使用查询编辑器 v2 在集群或工作组中创建架构。

创建架构

有关架构的信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 Schemas

  1. 选择 Create创建,然后选择架构

  2. 输入架构名称

  3. 选择本地外部作为架构类型

    有关本地架构的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 CREATE SCHEMA。有关外部架构的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 CREATE EXTERNAL SCHEMA

  4. 如果选择外部,则可以选择以下外部架构。

    • Glue 数据目录 – 在 Amazon Redshift 中创建引用 Amazon Glue 中的表的外部架构。除了选择 Amazon Glue 数据库,还可选择与集群关联的 IAM 角色以及与数据目录关联的 IAM 角色。

    • PostgreSQL – 在 Amazon Redshift 中创建外部架构,此架构引用 Amazon RDS for PostgreSQL 或 Amazon Aurora PostgreSQL 兼容版本的数据库。还提供数据库的连接信息。有关联合查询的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的通过联合查询来查询数据

    • MySQL – 在 Amazon Redshift 中创建外部架构,该架构引用 Amazon RDS for MySQL 和/或 Amazon Aurora MySQL 兼容版本的数据库。还提供数据库的连接信息。有关联合查询的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的通过联合查询来查询数据

  5. 选择创建架构

    新 Schema 将在树状视图面板中显示。

创建表

您可以使用查询编辑器 v2 在集群或工作组中创建表。

创建表

您可以根据您指定或定义表中每列的逗号分隔值 (CSV) 文件创建表。有关表的信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 Designing tablesCREATE TABLE

选择在编辑器中打开查询在运行查询以创建表之前查看和编辑 CREATE TABLE 语句。

  1. 选择 Create 创建,然后选择

  2. 选择架构。

  3. 输入表名称。

  4. 选择 Create 添加字段以添加列。

  5. 使用 CSV 文件作为表定义模板:

    1. 选择从 CSV 加载

    2. 浏览到文件位置。

      如果您使用 CSV 文件,请确保该文件的第一行包含列标题。

    3. 选择文件,然后选择打开。确认列名和数据类型符合您的要求。

  6. 对于每一列,选择该列并选择所需的选项:

    • 编码选择一个值。

    • 选择默认值

    • 如果您想增加列值,启用自动增量。然后为自动增加种子自动增量步骤指定值。

    • 如果该列应始终包含值,启用非 NULL

    • 输入列的大小值。

    • 如您希望该列成为主密钥,启用主密钥

    • 如您希望该列成为唯一密钥,启用唯一密钥

  7. (可选)选择表详细信息然后选择以下任何选项:

    • 分配密钥列和样式。

    • 对密钥列进行排序和排序类型。

    • 启用备份将表包含在快照中。

    • 启用临时表将表创建为临时表。

  8. 选择在编辑器中打开查询继续指定用于定义表的选项,或选择创建表来创建表。

创建函数

您可以使用查询编辑器 v2 在集群或工作组中创建函数。

创建函数
  1. 选择 Create创建,然后选择函数

  2. 对于类型,选择 SQLPython

  3. 架构选择一个值。

  4. 为函数名称输入一个值。

  5. 为函数波动性输入一个值。

  6. 按输入参数的顺序排列的数据类型选择参数

  7. 返回值选择一种数据类型。

  8. 输入此函数的 SQL 程序Python 程序代码。

  9. 选择创建

有关用户定义的函数 (UDF) 的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的创建用户定义的函数

查看查询和选项卡历史记录

您可以使用查询编辑器 v2 查看查询历史记录。仅使用查询编辑器 v2 运行的查询出现在查询历史记录中。显示已使用编辑器选项卡或笔记本选项卡运行的查询。您可以按时间段筛选显示的列表,例如 This week,其中周定义为星期一至星期日。查询列表一次将提取符合您的筛选条件的 25 行查询。选择加载更多可查看下一组。选择一个查询,在操作菜单中,可用的操作取决于是否已保存所选的查询。您还可以选择以下操作:

  • 查看查询详细信息 - 显示一个查询详细信息页面,其中包含有关已运行的查询的更多信息。

  • 在新选项卡中打开查询 - 打开一个新的编辑器选项卡,并在其中填入所选查询。如果仍处于连接状态,则会自动选择集群或工作组和数据库。要运行查询,请先确认已选择正确的集群或工作组和数据库。

  • 打开源选项卡 - 如果仍处于打开状态,则在运行查询时导航到包含查询的编辑器或笔记本选项卡。运行查询后,编辑器或笔记本的内容可能已发生更改。

  • 打开保存的查询 - 导航到编辑器或笔记本选项卡并打开查询。

您还可以查看编辑器选项卡中运行的查询的历史记录或笔记本选项卡中运行的查询的历史记录。要在选项卡中查看查询历史记录,请选择选项卡历史记录。在选项卡历史记录中,您可以执行以下操作:

  • 复制查询 - 将查询版本 SQL 内容复制到剪贴板。

  • 在新选项卡中打开查询 - 打开一个新的编辑器选项卡,并在其中填入所选查询。要运行查询,您必须选择集群或工作组和数据库。

  • 查看查询详细信息 - 显示一个查询详细信息页面,其中包含有关已运行的查询的更多信息。

使用查询编辑器 v2 时的注意事项

使用查询编辑器 v2 时,请注意以下几点。

  • 最大查询结果大小为 5MB 或 100,000 行中的较小者。

  • 您可以运行最长为 300,000 个字符的查询。

  • 您可以保存最长为 30,000 个字符的查询。

  • 默认情况下,查询编辑器 v2 会自动提交所运行的每个 SQL 命令。当提供 BEGIN 语句时,BEGIN-COMMIT 或 BEGIN-ROLLBACK 块中的语句将作为单个事务运行。有关事务的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 BEGIN

  • 运行 SQL 语句时,查询编辑器 v2 显示的最大警告数为 10。例如,运行存储过程时,显示的 RAISE 语句不超过 10 个。

  • 查询编辑器 v2 不支持包含逗号(,)的 IAM RoleSessionName。您可能会看到类似以下的错误:错误消息:“‘AROA123456789EXAMPLE:mytext,yourtext’不是 TagValue 的有效值 - 它包含非法字符”。当您定义包含逗号的 IAM RoleSessionName,然后将查询编辑器 v2 与该 IAM 角色一起使用时,就会出现此问题。

    有关 IAM RoleSessionName 的更多信息,请参阅《IAM 用户指南》中的 RoleSessionName SAML 属性

更改账户设置

拥有正确 IAM 权限的用户可以查看和更改同一 Amazon Web Services 账户中其他用户的账户设置。该管理员可以查看或设置以下内容:

  • 账户中每个用户的最大并发数据库连接数。这包括用于隔离会话的连接。更改此值时,更改可能需要 10 分钟才能生效。

  • 允许账户中的用户将整个结果集从 SQL 命令导出到文件中。

  • 加载和显示示例数据库以及一些关联的已保存查询。

  • 指定账户用户用于从本地文件加载数据的 Amazon S3 路径。

  • 查看用于加密查询编辑器 v2 资源的 KMS 密钥 ARN。