introduction to Amazon Redshift

  • 任务需求: 启动 Redshift 集群 将 SQL 客户端连接到 Amazon Redshift 集群 将数据从 S3 存储桶加载到 Amazon Redshift 集群中 对 Amazon Redshift 中存储的数据运行查询

相关技术背景知识

  • Amazon Redshoft Amazon Redshift 是一种快速、完全托管的数据仓库,可让您使用标准 SQL 和现有的商业智能 (BI) 工具轻松且经济高效地分析所有数据。

    实验手册

    任务1:启动 Amazon Redshift 集群

  1. 在搜索栏中搜索 Amazon Redshift

  2. 在左侧导航窗格中,选择 Clusters (集群) 您可能必须选择菜单图标才能展开左侧导航窗格。

  3. 选择创建集群以打开 Redshift 集群创建向导

  4. 在 Cluster configuration (集群配置) 部分中,配置:

  • 集群标识符:lab 节点类型: dc2.large 节点数: 2

  1. 在 Database configurations (数据库配置) 部分中,配置:

  • 管理员用户名:master 对于 Admin Password(管理员密码),选择 Manually add the admin password and configure Admin user password(手动添加管理员密码并配置管理员用户密码):粘贴DBPassword:2kQj0Wsalerb

  1. 选择 Disable cluster encryption(禁用集群加密)

  2. 对于 Associated IAM roles (关联的 IAM 角色),选择关联 IAM 角色选择Redshift-Role.

  3. 选择关联 IAM 角色.

  4. 在 Additional configurations (其他配置) 部分中,取消选择 Use defaults(使用默认值)。

  5. 展开 Network and security(网络和安全),然后配置

  • 虚拟私有云实验室 VPC

  • VPC 安全组: 取消选择 default 选择 Redshift Security Group (Redshift 安全组)

  1. 展开 Database configurations(数据库配置),然后配置:

  • 数据库名称 labdb

  1. 滚动到屏幕底部,然后选择创建集群.集群需要几分钟时间才能启动。请继续执行实验室步骤。无需等待。

  2. 选择您的 Cluster (lab) 的名称

  3. 等待集群的 Status 显示 Available,然后再继续下一个任务。您应该会看到一条成功消息已成功创建 lab.如有必要,请刷新屏幕。

任务2:使用 Redshift 查询编辑器与 Redshift 集群通信

  1. 在左侧导航窗格中,选择 Query editor(查询编辑器),选择连接到数据库,然后选择 Temporary credentials(临时凭证),然后配置:

  • 簇: lab (Available) 数据库名称:labdb 数据库用户:master

  1. 选择连接.

任务3:创建表

  1. 复制此 SQL 命令并将其粘贴到 Query 1 (查询 1) 窗口中,然后选择run.

CREATE TABLE users (
  userid INTEGER NOT NULL,
  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
);

任务4:从 Amazon S3 加载示例数据

  1. 删除现有查询,然后将此 SQL 命令粘贴到 Query 1 (查询 1) 窗口中。

COPY users FROM 's3://awssampledbuswest2/tickit/allusers_pipe.txt'
CREDENTIALS 'aws_iam_role=YOUR-ROLE'
DELIMITER '|';

在运行此命令之前,您需要插入 Redshift 将用于访问 Amazon S3 的 ROLE。

  1. 在您当前正在阅读的说明左侧,复制 Role (角色) 的值。角色:arn:aws:iam::692581534793:role/Redshift-Role

  2. 将 Role 粘贴到查询窗口中,替换文本 YOUR-ROLE 第 2 行现在应如下所示:

COPY users FROM 's3://awssampledbuswest2/tickit/allusers_pipe.txt'
CREDENTIALS 'aws_iam_role=arn:aws:iam::xxxxxxxxxxxx:role/Redshift-Role'
DELIMITER '|';

选择run

任务 5:查询数据

  1. 运行此查询以计算 users 表中的行数:

SELECT COUNT(*) FROM users;
  1. 运行以下查询

SELECT userid, firstname, lastname, city, state
FROM users
WHERE likesports AND NOT likeopera AND state = 'OH'
ORDER BY firstname;
  1. 运行以下查询

SELECT
  city,
  COUNT(*) AS count
FROM users
WHERE likejazz
GROUP BY city
ORDER BY count DESC
LIMIT 10;

挑战

  • 尝试为这些要求编写查询 仅显示 firstname 和 lastname 同时喜欢 Theatre 和 Classical Music 的用户数量 姓氏为 Smith

  • 在看到答案之前,试着自己动手。

  • 如果您不知道答案 请点击此处