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

查询 Amazon Glue Data Catalog

您可以使用查询编辑器 v2 查询在 Amazon Glue Data Catalog 中编目的数据。默认情况下,Amazon Glue Data Catalog 列为名为 awsdatacatalog 的查询编辑器 v2 数据库。查询 Amazon Glue Data Catalog 并非在所有 Amazon Redshift Amazon Web Services 区域中都可用。使用 SHOW 命令确定此功能是否可用。有关 Amazon Glue 的更多信息,请参阅《Amazon Glue 开发人员指南》中的什么是 Amazon Glue?

注意

查询 Amazon Glue Data Catalog 仅在 Amazon Redshift RA3 节点类型集群和 Amazon Redshift Serverless 中受到支持。

您可以使用以下 SQL 命令配置您的数据仓库并查看编目的 Amazon Glue 数据库对象:

  • SHOW – 显示是否为当前连接的数据仓库安装了 awsdatacatalog。例如,要显示 data_catalog_auto_mount 参数值,请运行:

    SHOW data_catalog_auto_mount;

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

  • ALTER SYSTEM – 更改 data_catalog_auto_mount 的系统级配置。例如,要将 data_catalog_auto_mount 参数值更改为 on,请运行:

    ALTER SYSTEM SET data_catalog_auto_mount = on;

    当重新引导预置集群或自动暂停并恢复无服务器工作组时,更改将生效。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 ALTER SYSTEM

  • SHOW SCHEMAS – 显示架构列表。数据库中名为 awsdatacatalog 的架构代表 Amazon Glue Data Catalog 中编目的 Amazon Glue 数据库。例如,要显示这些架构,请运行:

    SHOW SCHEMAS FROM DATABASE awsdatacatalog;

    有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 SHOW SCHEMAS

  • SHOW TABLES – 显示架构中表的列表。例如,要显示名为 awsdatacatalog 的 Amazon Glue Data Catalog 数据库中的表(这些表位于架构 myglue 中),请运行:

    SHOW TABLES FROM SCHEMA awsdatacatalog.myschema;

    有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 SHOW TABLES

  • SHOW COLUMNS – 显示表中列的列表。例如,要显示名为 awsdatacatalog 的 Amazon Glue Data Catalog 数据库中的列(这些列位于架构 myglue 和表 mytable 中),请运行:

    SHOW COLUMNS FROM TABLE awsdatacatalog.myglue.mytable;

    有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 SHOW COLUMNS

要向您的 IAM 用户或角色授予查询 Amazon Glue Data Catalog 的权限,请按照以下步骤操作
  1. 在树视图窗格中,使用数据库用户名和密码身份验证方法,连接到预置集群或无服务器工作组中的初始数据库。例如,使用您在创建集群或工作组时使用的管理员用户和密码连接到 dev 数据库。

  2. 在编辑器选项卡中,运行以下 SQL 语句以授予 IAM 用户对 Amazon Glue Data Catalog 的访问权限。

    GRANT USAGE ON DATABASE awsdatacatalog to "IAM:myIAMUser"

    其中,IAM:myIAMUser 是您想要向其授予对 Amazon Glue Data Catalog 的使用权限的 IAM 用户。或者,您可以向 IAM 角色的 IAMR:myIAMRole 授予使用权限。

  3. 在树视图窗格中,编辑或删除与您之前创建的集群或工作组的连接。通过以下方式之一连接到您的集群或工作组:

    • 要从集群访问 awsdatacatalog 数据库,您必须使用身份验证方法使用您的 IAM 身份的临时凭证。有关此身份验证方法的更多信息,请参阅连接到 Amazon Redshift 数据库。您的查询编辑器 v2 管理员可能需要配置账户的账户设置,才能在连接窗口中显示此身份验证方法。

    • 要从工作组访问 awsdatacatalog 数据库,必须使用身份验证方法联合用户。有关此身份验证方法的更多信息,请参阅连接到 Amazon Redshift 数据库

  4. 通过授予的权限,您可以使用 IAM 身份对您的 Amazon Glue Data Catalog 运行 SQL。

连接后,您可以使用查询编辑器 v2 查询在 Amazon Glue Data Catalog 中编目的数据。在查询编辑器 v2 树视图窗格上,选择集群或工作组和 awsdatacatalog 数据库。在编辑器或笔记本窗格中,确认选择了正确的集群或工作组。选择的数据库应该是初始 Amazon Redshift 数据库,例如 dev。有关编写查询的信息,请参阅编写和运行查询编写和运行笔记本。预留名为 awsdatacatalog 的数据库,用于引用您账户中的外部数据目录数据库。对 awsdatacatalog 数据库的查询只能是只读的。使用由三部分组成的表示法来引用 SELECT 语句中的表。其中第一部分是数据库名称,第二部分是 Amazon Glue 数据库名称,第三部分是 Amazon Glue 表名称。

SELECT * FROM awsdatacatalog.<aws-glue-db-name>.<aws-glue-table-name>;

您可以执行各种场景来读取 Amazon Glue Data Catalog 数据并填充 Amazon Redshift 表。

以下示例 SQL 联接了在 Amazon Glue 中定义的两个表。

SELECT pn.emp_id, alias, role, project_name FROM "awsdatacatalog"."empl_db"."project_name_table" pn, "awsdatacatalog"."empl_db"."project_alias_table" pa WHERE pn.emp_id = pa.emp_id;

以下示例 SQL 创建了一个 Amazon Redshift 表,并使用来自两个 Amazon Glue 表联接的数据填充该表。

CREATE TABLE dev.public.glue AS SELECT pn.emp_id, alias, role, project_name FROM "awsdatacatalog"."empl_db"."project_name_table" pn, "awsdatacatalog"."empl_db"."project_alias_table" pa WHERE pn.emp_id = pa.emp_id;