# 数据库服务 - 数据库解决方案 - 关系型数据典型代表(Amazon RDS) - 非关系型数据库(Amazon DynamoDB) - 数据库缓存 - 数据库迁移工具 ## 数据库服务 - SQL和NoSQL - OLTP(事务类数据库),OLAT(分析性数据库,大批量的数据分析) - SQL(SQL语句查询方便,数据格式较为固定) - RDS - Aurora - ReadShift(数据仓库) - NoSQL(大吞吐,低延迟,灵活性,不限于表结构,水平扩展) - MongoDB(DocumentDB) - DynamoDB(键值对数据库,高性能,低延迟,大吞吐) - 缓存数据库(ElastiCache,基于键值对的,托管的Redis,MemCached解决方案) - 基于Redis的持久化数据库(MemoryDB) - 高吞吐的水平扩展的(KeySpace,兼容开源的Apache Cassandra,非关系型数据) - TimeStream(时序类的数据库,IoT物联网,传感器,监控设备上的数据) - Neptune(图形数据库,graph database,social network,recommendations,关系分析) - 区块链底层的数据库(不可删除和修改,Quantum Ledger) ![1732946103443](./figures/database_services.png) ![1732946925040](./figures/sql_nosql.png) ## Amazon RDS - 提供六种常用的数据库引擎供您选择,包括 - Amazon Aurora - (兼容MySQL和PostgreSQL) - serverless方案 - 底层用什么实例,多大容量自行调整 - 最小实例切换到最大实例毫秒级 - 无感知的使用数据库 - 无服务器的方式按实际使用量收费 - 数据库集群方案,吞吐量比mysql和PostgreSQL高 ```{image} ./figures/aurora.png :width: 600px :align: center ``` - PostgreSQL - MySQL - MariaDB - Oracle Database - Microsoft SQL Server - 扩展读的场景 - 水平扩展,建立更多的数据库,创建只读副本,将主数据异步复制到副数据库(主从时间差,replica lag) - 数据库安全 - 静态数据加密 - 安全的密钥管理器(KMS,根密钥,嵌套加密) ## Amazon DynamoDB - 可扩展的NoSQL数据库,键值对数据库 - 超大的吞吐,超低的延迟,水平扩展(数据分区,按key进行分区,分区键,复合主键,排序键可选,其他属性可有可无,没有不用存储,可以和json格式进行类比) - 无服务器的服务,不需要创建数据库实例,按需扩展(费用比较高),流量模型有清晰的了解(预置的方式,采用弹性伸缩的方式进行调整) - 可以通过API创建数据 - primary key,attributes - 最终一致性,保证立刻复制到其他副本(0.5个读取容量单位) - 强一致性,RCU (Read Capacity Unit):1 RCU = 每秒支持 1 个强一致性读取 或 2 个最终一致性读取,对于 4 KB 大小的数据。 - 全局表,全球不同的区域创建某一张表的副本,读取和写入,全球多副本 ## 数据库缓存 - 两种方式 - 延迟加载 - 更新数据库同时写到缓存里,缓存存储过多的数据,成本较高 - 性能优先还是成本优先 - 管理缓存 - TTL,变更频繁的数据TTL短一点 ### Amazon ElastiCache - MemCached - Redis