AWSRedshift与DocumentDB:功能、部署与性能优化
立即解锁
发布时间: 2025-08-22 01:50:57 阅读量: 1 订阅数: 3 


AWS Certified Database Specialist Exam Prep
### AWS Redshift与DocumentDB:功能、部署与性能优化
#### 1. Redshift与其他AWS服务的连接
数据仓库的主要优势之一是它为报告和分析所需的所有数据提供了一个单一的存储位置。用户无需在多个不同的地方查找信息,因为所有数据都集中在一处。AWS提供了多种方法,可让用户快速有效地从其他来源加载数据。
##### 1.1 Redshift Spectrum
Redshift Spectrum允许用户使用SQL查询直接从Redshift查询S3存储桶中的数据。在Spectrum推出之前,必须先将数据从S3加载到Redshift中才能进行查询,而现在可以直接在原位查询。使用Redshift Spectrum,需将S3存储桶配置为外部表,以便在查询中调用。甚至可以使用连接操作创建涉及多个S3存储桶、文件以及Redshift数据库表中数据的复杂查询。
##### 1.2 Amazon Kinesis Data Firehose
Amazon Kinesis Data Firehose是一种用于将流式数据加载到包括Redshift在内的各种AWS服务的工具。它是将实时数据加载到Redshift集群的简单而实用的方法。Firehose可以从其他系统捕获信息,并将数据安全高效地发送到Redshift,无需编写代码或批处理流程即可轻松将各种系统直接连接到Redshift。此外,它是一个完全托管的系统,可根据需要自动扩展。
##### 1.3 Amazon QuickSight
Amazon QuickSight是用于商业智能的图形分析工具,它与Redshift原生连接,可根据数据快速创建图形化仪表板。
#### 2. 部署Redshift集群
在配置Redshift Spectrum以访问S3中的数据之前,需要先部署Redshift集群,具体步骤如下:
1. 登录AWS控制台,导航到Amazon Redshift。
2. 选择“创建集群”。
3. 输入集群名称,若有可用的免费试用选项,可选择该选项。
4. 输入密码,然后点击“创建集群”。
5. 控制台将显示连接屏幕,说明如何连接到集群,并在底部显示集群状态。当集群显示为“可用”时,即可配置Redshift Spectrum。
#### 3. 配置Redshift Spectrum
要配置Redshift Spectrum,需要完成以下三项任务:
- 配置IAM角色。
- 创建或确定可用的S3存储桶,这里使用带有示例数据的公共存储桶。
- 创建外部表。
具体操作步骤如下:
1. 打开AWS控制台,导航到IAM部分。
2. 点击左侧菜单中的“角色”。
3. 点击“创建角色”。
4. 从页面底部的列表中选择Redshift。
5. 点击“Redshift - 可定制”,然后点击“下一步:权限”。
6. 选择“AmazonS3ReadOnlyAccess”和“AWSGlueConsoleFullAccess”,然后点击“下一步:标签”,再点击“下一步:审核”。
7. 为角色命名,然后点击“创建角色”。
8. 返回Redshift仪表板。
9. 勾选集群旁边的框,点击“操作”下拉菜单,选择“管理IAM角色”(可能需要滚动菜单)。
10. 从下拉框中选择刚创建的IAM角色,点击“关联IAM角色”,然后选择“保存更改”。
11. 当仪表板重新加载时,通过左侧菜单点击“编辑器”,然后点击“连接到数据库”。
12. 输入必要的数据库详细信息,数据库名称应为“dev”,数据库用户应为“awsuser”,然后点击“连接”。
13. 运行以下代码创建可查询的外部模式和表,需将高亮行修改为与创建的IAM角色的ARN匹配:
```sql
create external schema spectrum_dbcert
from data catalog
database 'dev'
iam_role 'arn:aws:iam::919405152227:role/redshifts3'
create external database if not exists;
```
14. 运行以下代码创建基于S3数据的可查询表,需将高亮部分修改为与刚创建的模式名称匹配:
```sql
create external table spectrum_dbcert.sales(
salesid integer,
listid integer,
sellerid integer,
buyerid integer,
eventid integer,
dateid smallint,
qtysold smallint,
pricepaid decimal(8,2),
commission decimal(8,2),
saletime timestamp)
row format delimited
fields terminated by '\t'
stored as textfile
location 's3://awssampledbuswest2/tickit/spectrum/sales/'
table properties ('numRows'='172000');
```
15. 从“选择模式”下拉菜单中,将能够看到使用的同名模式。选择该模式将显示一个名为“sales”的表,该表从S3中托管的.csv文件读取数据,可根据需要对该数据运行标准SQL查询。
#### 4. DocumentDB概述
Amazon DocumentDB是一个完全托管且可扩展的NoSQL数据库,用于存储和查询半结构化数据,如JSON文档。JSON文档以JavaScript对象表示法(JSON)格式保存,其固定结构允许像查询关系数据库管理系统(RDBMS)表一样查询其中的所有数据和字段。
DocumentDB与另一个流行的文档数据库MongoDB兼容,对于目前使用MongoDB并希望迁移到开源文档数据库的用户来说是一个不错的选择。它与DynamoDB类似,都是NoSQL数据库,但DynamoDB针对键值数据检索操作进行了优化,而DocumentDB更侧重于快速查询处理。此外,DocumentDB的配置方式与RDS类似,需要定义实例大小来处理工作负载,而DynamoDB使用读写容量单位。选择使用哪个数据库取决于所需的查询类型和成本结构。
#### 5. Docume
0
0
复制全文
相关推荐






