Amazon Redshift Serverless - Amazon Redshift

Amazon Redshift Serverless

如果您是首次接触 Amazon Redshift Serverless 的用户,我们建议您先阅读以下部分,以帮助您开始使用 Amazon Redshift Serverless。Amazon Redshift Serverless 的基本流程是创建无服务器资源,连接到 Amazon Redshift Serverless,加载示例数据,然后对数据运行查询。在本指南中,您可以选择从 Amazon Redshift Serverless 或 Amazon S3 存储桶加载示例数据。

注册 AWS

如果您还没有 AWS 账户,请先注册一个。如果您已有账户,则可以跳过此先决条件步骤,并使用您已有的账户。

  1. 打开 https://portal.aws.amazon.com/billing/signup

  2. 按照屏幕上的说明进行操作。

    当您注册 AWS 账户时,系统会创建一个 AWS 账户根用户。根用户有权访问该账户中的所有 AWS 服务和资源。作为安全最佳实践,请为管理用户分配管理访问权限,并且只使用根用户执行需要根用户访问权限的任务

使用 Amazon Redshift Serverless 创建数据仓库

首次登录 Amazon Redshift Serverless 控制台时,系统会提示您访问入门体验,您可以通过该体验创建和管理无服务器资源。在本指南中,您将使用 Amazon Redshift Serverless 的默认设置创建无服务器资源。

要更精细地控制您的设置,请选择 Customize settings(自定义设置)。

要使用原定设置进行配置,请执行以下操作:
  1. 登录 AWS Management Console,然后通过以下网址打开 Amazon Redshift 控制台:https://console.aws.amazon.com/redshiftv2/

    选择试用 Amazon Redshift Serverless

  2. Configuration(配置)下,选择 Use default settings(使用原定设置)。Amazon Redshift Serverless 将创建一个原定设置命名空间,其中包含与该命名空间关联的原定设置工作组。选择 Save configuration

    以下屏幕截图显示 Amazon Redshift Serverless 的默认设置。

    选择默认设置,为 Amazon Redshift Serverless 使用默认值。
  3. 设置完成后,选择 Continue(继续)以转到 Serverless dashboard(Serverless 控制面板)。您可以看到无服务器工作组和命名空间可用。

    完成设置后,工作组和命名空间即可使用。

加载示例数据

现在,使用 Amazon Redshift Serverless 设置了数据仓库之后,您可以使用 Amazon Redshift 查询编辑器 v2 来加载示例数据。

  1. 要从 Amazon Redshift Serverless 控制台启动查询编辑器 v2,请选择查询数据。当您从 Amazon Redshift Serverless 控制台调用查询编辑器 v2 时,将打开一个新的浏览器选项卡,其中包含查询编辑器。查询编辑器 v2 将从客户端计算机连接到 Amazon Redshift Serverless 环境。

    Amazon Redshift Serverless 控制台中的查询数据按钮将启动查询编辑器 v2。
  2. 如果您是首次启动查询编辑器 v2,则必须先配置 AWS KMS 加密,然后才能继续。您还可以选择指定 S3 存储桶的 URI,以供稍后加载数据。完成后,选择配置账户

    在继续操作之前,请配置 AWS KMS 加密并指定 S3 存储桶 URI。

    如需详细了解查询编辑器 v2(包括需要哪些权限)的配置,请参阅《Amazon Redshift 管理指南》中的配置您的 AWS 账户

  3. 要连接到工作组,请在树视图面板中选择工作组名称。

    要连接到工作组,请在树视图面板中选择工作组名称。
  4. 在查询编辑器 v2 中首次连接到新工作组时,必须选择连接到该工作组所用的身份验证类型。在本指南中,选择联合用户,然后选择创建连接

    您可以选择使用临时密码进行连接,还是使用数据库用户名和密码组合进行连接。

    连接之后,您可以选择从 Amazon Redshift Serverless 或从 Amazon S3 存储桶加载示例数据。

  5. 在 Amazon Redshift Serverless 原定设置工作组下,展开 sample_data_dev 数据库。有三个示例架构对应于三个示例数据集,您可以将这些示例数据集加载到 Amazon Redshift Serverless 数据库中。选择要加载的示例数据集,然后选择打开示例笔记本

    展开 sample_data_dev 数据库,然后选择要加载的架构。
  6. 首次加载数据时,查询编辑器 v2 将提示您创建示例数据库。选择创建

运行示例查询

设置 Amazon Redshift Serverless 之后,您可以开始在 Amazon Redshift Serverless 中使用示例数据集。Amazon Redshift Serverless 自动加载示例数据集,例如 tickit 数据集,然后您便立即可以查询数据。

  • Amazon Redshift Serverless 完成示例数据的加载后,所有示例查询都会加载到编辑器中。您可以选择运行全部来运行示例笔记本中的所有查询。

    选择“运行全部”按钮以运行所有示例查询。

    您也可以将结果导出为 JSON 或 CSV 文件,或者以图表格式查看结果。

您还可以从 Amazon S3 存储桶加载数据。要了解更多信息,请参阅从 Amazon S3 加载数据

从 Amazon S3 加载数据

创建数据仓库后,您可以从 Amazon S3 加载数据。

此时,您拥有了一个名为 dev 的数据库。接下来,在该数据库中创建一些表,将数据上传到表,然后尝试执行查询。为方便起见,您上载的示例数据在 Amazon S3 桶中可用。

  1. 在从 Amazon S3 中加载数据之前,您必须先创建具有必要权限的 IAM 角色并将其附加到无服务器命名空间。为此,请从导航菜单中选择命名空间配置,然后选择安全和加密。然后选择管理 IAM 角色

    从命名空间配置页面,选择“安全和加密”,然后选择“管理 IAM 角色”。
  2. 展开管理 IAM 角色菜单,然后选择创建 IAM 角色

    展开“管理 IAM 角色”菜单,然后选择“创建 IAM 角色”。
  3. 选择您要授予此角色的 S3 存储桶访问权限级别,然后选择创建 IAM 角色作为默认角色

  4. 选择 Save changes(保存更改)。现在您可从 Amazon S3 加载示例数据。

以下步骤使用公共 Amazon Redshift S3 存储桶中的数据,不过您可以使用自己的 S3 存储桶和 SQL 命令重复相同的步骤。

从 Amazon S3 加载示例数据
  1. 在查询编辑器 v2 中,选择 Editor “添加”,然后选择笔记本以创建新的 SQL 笔记本。

  2. 切换到 dev 数据库。

    切换到开发数据库,从 S3 存储桶加载数据。
  3. 创建表。

    如果您使用查询编辑器 v2,请复制并运行下列 create table 语句,以在 dev 数据库中创建表。有关语法的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 CREATE TABLE

    create table users( userid integer not null distkey sortkey, username char(8), firstname varchar(30), lastname varchar(30), city varchar(30), state char(2), email varchar(100), phone char(14), likesports boolean, liketheatre boolean, likeconcerts boolean, likejazz boolean, likeclassical boolean, likeopera boolean, likerock boolean, likevegas boolean, likebroadway boolean, likemusicals boolean); create table event( eventid integer not null distkey, venueid smallint not null, catid smallint not null, dateid smallint not null sortkey, eventname varchar(200), starttime timestamp); create table sales( salesid integer not null, listid integer not null distkey, sellerid integer not null, buyerid integer not null, eventid integer not null, dateid smallint not null sortkey, qtysold smallint not null, pricepaid decimal(8,2), commission decimal(8,2), saletime timestamp);
  4. 使用查询编辑器 v2,在笔记本中创建一个新的 SQL 单元格。

    在查询编辑器 v2 中创建新的 SQL 单元格来运行 SQL 命令。
  5. 现在,您可以在查询编辑器 v2 中使用 COPY 命令,将大型数据集从 Amazon S3 或 Amazon DynamoDB 加载到 Amazon Redshift 中。有关 COPY 语法的更多信息,请参阅《Amazon Redshift 数据库开发人员指南中的 COPY

    您可以使用公共 S3 存储桶中的一些示例数据运行 COPY 命令。在查询编辑器 v2 中运行以下 SQL 命令。

    COPY users FROM 's3://redshift-downloads/tickit/allusers_pipe.txt' DELIMITER '|' TIMEFORMAT 'YYYY-MM-DD HH:MI:SS' IGNOREHEADER 1 REGION 'us-east-1' IAM_ROLE default; COPY event FROM 's3://redshift-downloads/tickit/allevents_pipe.txt' DELIMITER '|' TIMEFORMAT 'YYYY-MM-DD HH:MI:SS' IGNOREHEADER 1 REGION 'us-east-1' IAM_ROLE default; COPY sales FROM 's3://redshift-downloads/tickit/sales_tab.txt' DELIMITER '\t' TIMEFORMAT 'MM/DD/YYYY HH:MI:SS' IGNOREHEADER 1 REGION 'us-east-1' IAM_ROLE default;
  6. 加载数据后,在笔记本中创建另一个 SQL 单元格,然后尝试执行一些示例查询。有关使用 SELECT 命令的更多信息,请参阅《Amazon Redshift 开发人员指南》中的 SELECT。要了解示例数据的结构和架构,请使用查询编辑器 v2 进行探索。

    -- Find top 10 buyers by quantity. SELECT firstname, lastname, total_quantity FROM (SELECT buyerid, sum(qtysold) total_quantity FROM sales GROUP BY buyerid ORDER BY total_quantity desc limit 10) Q, users WHERE Q.buyerid = userid ORDER BY Q.total_quantity desc; -- Find events in the 99.9 percentile in terms of all time gross sales. SELECT eventname, total_price FROM (SELECT eventid, total_price, ntile(1000) over(order by total_price desc) as percentile FROM (SELECT eventid, sum(pricepaid) total_price FROM sales GROUP BY eventid)) Q, event E WHERE Q.eventid = E.eventid AND percentile = 1 ORDER BY total_price desc;

现在,在加载了数据并运行了一些示例查询后,您可以探索 Amazon Redshift Serverless 的其他领域。请参阅以下列表,详细了解如何使用 Amazon Redshift Serverless。

  • 您可以从 Amazon S3 存储桶加载数据。有关更多信息,请参阅从 Amazon S3 加载数据

  • 您可以使用查询编辑器 v2,从小于 5MB 的本地字符分隔文件中加载数据。有关更多信息,请参阅从本地文件加载数据

  • 您可以使用具有 JDBC 和 ODBC 驱动程序的第三方 SQL 工具连接到 Amazon Redshift Serverless。有关更多信息,请参阅连接到 Amazon Redshift Serverless

  • 还可使用 Amazon Redshift 数据 API 连接到 Amazon Redshift Serverless。有关更多信息,请参阅使用 Amazon Redshift Data API

  • 您可以通过 CREATE MODEL 命令,将 Amazon Redshift Serverless 中的数据与 Redshift ML 结合使用来创建机器学习模型。请参阅教程:构建客户流失模型,了解如何构建 Redshift ML 模型。

  • 您可以从 Amazon S3 数据湖中查询数据,而无需将任何数据加载到 Amazon Redshift Serverless 中。有关更多信息,请参阅查询数据湖