

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 创建数据库对象
<a name="query-editor-v2-object-create"></a>

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

## 创建数据库
<a name="query-editor-v2-object-create-database"></a>

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

**创建数据库**

有关数据库的信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的 [CREATE DATABASE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_DATABASE.html)。

1. 选择![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/qev2-add.png)**创建**，然后选择**数据库**。

1. 输入**数据库名称**。

1. （可选）选择**用户和组**，然后选择**数据库用户**。

1. （可选）您可以从数据共享或 AWS Glue Data Catalog 创建数据库。有关 AWS Glue 的更多信息，请参阅《*AWS Glue 开发人员指南*》中的[什么是 AWS Glue？](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)。
   + （可选）选择**使用数据共享创建**，然后选择**选择数据共享**。该列表包括可用于在当前集群或工作组中创建使用者数据共享的创建者数据共享。
   + （可选）选择**使用 AWS Glue Data Catalog 创建**，然后选择**选择 AWS Glue 数据库**。在**数据目录架构**中，输入在由三部分组成的名称（database.schema.table）中引用数据时将用于架构的名称。

1. 选择**创建数据库**。

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

   当您选择此可选步骤查询从数据共享创建的数据库时，请连接到集群或工作组中的 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 托管的数据共享](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-consumer.html)和[以创建者身份使用 Lake Formation 托管的数据共享](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-producer.html)。

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

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

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

   有关创建数据共享的信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的[在 Amazon Redshift 中跨集群共享数据](https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html)。

1. 使用 Amazon Redshift 控制台接受数据共享 `datashare_base` 作为集群 `cluster-view` 中 `category2` 表的使用者。

1. 在查询编辑器 v2 中查看树视图面板，该面板显示了 `cluster-base` 的层次结构，如下所示：
   + 集群：`cluster-base`
     + 数据库：`dev`
       + 架构：`public`
         + 表：`category2`

1. 选择![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/qev2-add.png)**创建**，然后选择**数据库**。

1. 对于**数据库名称**，请输入 `see_datashare_base`。

1. 选择**使用数据共享创建**，然后选择**选择数据共享**。选择 `datashare_base` 以用作正在创建的数据库的来源。

   查询编辑器 v2 中的树视图面板显示了 `cluster-view` 的层次结构，如下所示：
   + 集群：`cluster-view`
     + 数据库：`see_datashare_base`
       + 架构：`public`
         + 表：`category2`

1. 查询数据时，连接到集群 `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.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/qev2-add.png)**创建**，然后选择**数据库**。

1. 对于**数据库名称**，请输入 `data_catalog_database`。

1. 选择**使用 AWS Glue Data Catalog 创建**，然后选择**选择 AWS Glue 数据库**。选择 `glue_db` 以用作正在创建的数据库的来源。

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

   查询编辑器 v2 中的树视图面板显示了 `cluster-view` 的层次结构，如下所示：
   + 集群：`cluster-view`
     + 数据库：`data_catalog_database`
       + 架构：`myschema`
         + 表：`category3`

1. 查询数据时，连接到集群 `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 编目的数据。

## 创建架构
<a name="query-editor-v2-object-create-schema"></a>

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

**创建架构**

有关架构的信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的 [Schemas](https://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html)。

1. 选择 ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/qev2-add.png)**创建**，然后选择**架构**。

1. 输入**架构名称**。

1. 选择**本地**或**外部**作为**架构类型**。

   有关本地架构的更多信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的 [CREATE SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_SCHEMA.html)。有关外部架构的更多信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的 [CREATE EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html)。

1. 如果选择**外部**，则可以选择以下外部架构。
   + **Glue 数据目录** – 在 Amazon Redshift 中创建引用 AWS Glue 中的表的外部架构。除了选择 AWS Glue 数据库，还可选择与集群关联的 IAM 角色以及与数据目录关联的 IAM 角色。
   + **PostgreSQL** – 在 Amazon Redshift 中创建外部架构，此架构引用 Amazon RDS for PostgreSQL 或 Amazon Aurora PostgreSQL 兼容版本的数据库。还提供数据库的连接信息。有关联合查询的更多信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的[通过联合查询来查询数据](https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html)。
   + **MySQL** – 在 Amazon Redshift 中创建外部架构，该架构引用 Amazon RDS for MySQL 和/或 Amazon Aurora MySQL 兼容版本的数据库。还提供数据库的连接信息。有关联合查询的更多信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的[通过联合查询来查询数据](https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html)。

1. 选择**创建架构**。

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

## 创建表
<a name="query-editor-v2-object-create-table"></a>

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

**创建表**

您可以根据您指定或定义表中每列的逗号分隔值 (CSV) 文件创建表。有关表的信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的 [Designing tables](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html) 和 [CREATE TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html)。

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

1. 选择 ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/qev2-add.png) **创建**，然后选择**表**。

1. 选择架构。

1. 输入表名称。

1. 选择 ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/add-plus.png) **添加字段**以添加列。

1. 使用 CSV 文件作为表定义模板：

   1. 选择**从 CSV 加载**。

   1. 浏览到文件位置。

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

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

1. 对于每一列，选择该列并选择所需的选项：
   + 为**编码**选择一个值。
   + 选择**默认值**。
   + 如果您想增加列值，启用**自动增量**。然后为**自动增加种子**和**自动增量步骤**指定值。
   + 如果该列应始终包含值，启用**非 NULL**。
   + 输入列的**大小**值。
   + 如您希望该列成为主密钥，启用**主密钥**。
   + 如您希望该列成为唯一密钥，启用**唯一密钥**。

1. （可选）选择**表详细信息**然后选择以下任何选项：
   + 分配密钥列和样式。
   + 对密钥列进行排序和排序类型。
   + 启用**备份**将表包含在快照中。
   + 启用**临时表**将表创建为临时表。

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

## 创建函数
<a name="query-editor-v2-object-create-function"></a>

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

**创建函数**

1. 选择 ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/qev2-add.png)**创建**，然后选择**函数**。

1. 对于**类型**，选择 **SQL** 或 **Python**。

1. 为**架构**选择一个值。

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

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

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

1. 为**返回值**选择一种数据类型。

1. 输入此函数的 **SQL 程序**或 **Python 程序**代码。

1. 选择**创建**。

有关用户定义的函数 (UDF) 的更多信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的[创建用户定义的函数](https://docs.aws.amazon.com/redshift/latest/dg/user-defined-functions.html)。