AWSQLDB与Timestream数据库深度解析
立即解锁
发布时间: 2025-08-22 01:50:57 阅读量: 1 订阅数: 2 


AWS Certified Database Specialist Exam Prep
# AWS QLDB与Timestream数据库深度解析
## 1. 引言
在当今数字化时代,数据管理至关重要。AWS提供了多种专用数据库,以满足不同场景的需求。本文将详细介绍Amazon QLDB和Amazon Timestream这两种数据库,包括它们的特点、架构、查询方法以及部署步骤。
## 2. Amazon QLDB概述
### 2.1 什么是Amazon QLDB
Amazon QLDB是一个完全托管、透明、不可变且可加密验证的事务日志数据库。与传统的关系型数据库管理系统(RDBMS)不同,QLDB不仅存储记录更新或删除后的最新版本,还存储所有先前版本。每次记录更新时,新的版本会包含对前一版本的算法引用,任何未经记录的修改尝试都会导致算法验证失败,从而警示系统被篡改。因此,QLDB非常适合需要确保数据准确性的场景,如金融交易或医疗案例。
### 2.2 QLDB表结构
QLDB表主要由三个部分组成:
- **C表**:保存记录的当前状态。
- **H表**:保存记录的所有历史值。
- **J表**:记录所有更改的日志,包含称为摘要的字母数字字符串,形成哈希链。每次记录修改时,哈希链都会更新,且新条目包含所有先前条目。任何对数据库的更改都需要匹配哈希链,否则验证将失败。由于更改数据需要同时修改所有相关的日志条目,这在当前计算能力下几乎不可能实现,因此QLDB实例被认为是不可变且可加密验证的。
### 2.3 QLDB架构
- **多可用区部署**:QLDB默认跨多个可用区(AZ)部署,每个AZ存储多个数据副本,确保对软件故障的恢复能力和数据持久性。只有当数据成功写入多个AZ的多个存储位置时,写入操作才会提交。
- **无服务器特性**:QLDB是无服务器数据库,无需预先配置计算容量或存储量,它会根据需求自动无缝扩展。
- **与其他AWS服务集成**:QLDB可以轻松连接到其他AWS服务,如Amazon Kinesis Data Streams。通过配置Kinesis,可以将所有数据修改转发到RDS实例。由于QLDB查询速度可能较慢,将其与RDS结合使用,可以在RDS上进行快速的只读查询,同时在QLDB中保留不可变的数据副本用于验证。
### 2.4 访问和查询QLDB数据库
#### 2.4.1 查询方法
QLDB提供三种查询数据的方法:
- **AWS控制台**:内置图形查询工具。
- **Amazon QLDB shell**:可下载的shell,可从本地机器连接到QLDB实例并运行查询。
- **AWS应用程序编程接口(API)**:可下载QLDB驱动程序,使用多种编程语言(如Java、.NET和Python)调用QLDB实例。
#### 2.4.2 查询语言
这些查询方法都使用PartiQL语言,它的结构类似于SQL查询,支持SELECT、UPDATE和DELETE语句,并带有WHERE子句。例如:
```sql
SELECT * FROM Cars AS c WHERE c.Reg IN ('BG12 YHG', 'D150 GWE');
```
查询结果遵循Amazon Ion语法,类似于JavaScript对象表示法(JSON)。
#### 2.4.3 查询元数据
可以使用PartiQL查询记录的元数据,元数据包括记录ID、添加或修改日期、记录大小等信息。例如,查询特定记录的最新提交版本的所有元数据和数据:
```sql
SELECT * FROM _ql_committed_Cars AS c WHERE c.Reg IN ('BG12 YHG', 'D150 GWE');
```
查询结果将返回记录的哈希值、版本号、块地址和元数据ID等信息。
#### 2.4.4 查询历史记录
由于QLDB在历史表中存储了所有更改的详细信息,可以编写查询查看记录的所有先前值或限制在特定时间范围内。例如:
```sql
SELECT * FROM history(Cars, `2021-12-07T00:00:00Z`, `2021-12-10T23:59:59Z`) AS h WHERE h.metadata.id = 'QgSrP4SPSwUWI0RjxureT3'
```
### 2.5 QLDB的配额和限制
在使用QLDB时,需要注意以下关键限制:
| 限制类型 | 限制值 |
| ---- | ---- |
| 任何一个区域中的活动账本数量 | 5 |
| 任何一个账本中的最大并发会话数 | 1,500 |
| 最大活动表数量 | 20 |
| 活动或非活动表的最大数量(已删除的表计为非活动表) | 40 |
| 最大文档大小 | 128千字节(KB) |
### 2.6 部署QLDB数据库
#### 2.6.1 创建账本
1. 打开AWS控制台,导航到Amazon QLDB。
2. 点击“Create ledger”。
3. 在“Ledger name”中输入“dbcert-qldb”,其他设置保持默认值,然后点击页面底部的“Create ledger”。
4. 等待数据库创建完成,直到“Status”列显示为“Available”。
#### 2.6.2 加载数据
1. 点击左侧菜
0
0
复制全文
相关推荐




