创建数据库对象 - Amazon Redshift

创建数据库对象

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

创建数据库

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

创建数据库

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

  1. 选择 Plus sign icon inside a circle, indicating an add or create action. 创建,然后选择数据库

  2. 输入数据库名称

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

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

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

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

  5. 选择创建数据库

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

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

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

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

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

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

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

    有关查询 AWS 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. 选择 Plus sign icon inside a circle, indicating an add or create action. 创建,然后选择数据库

  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 检索数据。

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

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

  1. 选择 Plus sign icon inside a circle, indicating an add or create action. 创建,然后选择数据库

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

  3. 选择使用 AWS Glue Data Catalog 创建,然后选择选择 AWS 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";

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

创建架构

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

创建架构

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

  1. 选择 Plus sign icon inside a circle, indicating an add or create action. 创建,然后选择架构

  2. 输入架构名称

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

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

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

    • Glue 数据目录 – 在 Amazon Redshift 中创建引用 AWS Glue 中的表的外部架构。除了选择 AWS 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. 选择 Plus sign icon inside a circle, indicating an add or create action. 创建,然后选择

  2. 选择架构。

  3. 输入表名称。

  4. 选择 Plus sign icon representing an addition or new item action. 添加字段以添加列。

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

    1. 选择从 CSV 加载

    2. 浏览到文件位置。

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

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

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

    • 编码选择一个值。

    • 选择默认值

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

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

    • 输入列的大小值。

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

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

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

    • 分配密钥列和样式。

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

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

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

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

创建函数

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

创建函数
  1. 选择 Plus sign icon inside a circle, indicating an add or create action. 创建,然后选择函数

  2. 对于类型,选择 SQLPython

  3. 架构选择一个值。

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

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

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

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

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

  9. 选择创建

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