Amazon Redshift数据库

Amazon Redshift介绍数据库

  Amazon Redshift是一种可轻松扩展的彻底托管型PB级数据仓库,它经过使用列存储技术和并行化多个节点的查询来提供快速的查询性能,使您可以更高效的分析现有数据。使用云端Amazon Redshift服务,您无需管理庞大的服务器集群,分析数据的成本不到传统解决方案的十分之一。安全

  Amazon Redshift使用列存储技术改善I/O效率并跨过多个节点平行放置查询,从而提供快速的查询性能。Redshift使用标准的PostgreSQL JDBC和ODBC驱动程序,从而使您可以使用各类常见SQL客户端。数据加载速度与集群大小呈线性关系。服务器

做为AWS的服务之一的Redshift有哪些优点呢?网络

一、彻底托管,快速上手架构

  使用Redshift云服务,您能够根据业务须要在几分钟内创建几个到几十个节点的数据仓库集群,马上开始您的数据分析的任务,也能根据需求随时增长或减小集群资源。Redshift是彻底托管平台,承担了大量的集群管理、数据库管理、监控、集群健康检查、备份、升级等工做,让您能专一业务分析,无需花大量时间在服务器管理,安全及数据备份等工做上。
二、为数据仓库而优化的架构框架

  Amazon Redshift基于企业级PostgreSQL数据库,有大规模并行处理(MPP)结构,MPP能够经过将数据分布到各个计算节点来解决海量数据的处理难题。在Redshift中,每一个集群有一个管理节点和多个计算节点。集群内部使用私有、高速、 低延时的网络链接。每一个计算节点都有单独的CPU,内存和附加存储,而且每一个计算节点有多个分区,您的数据被分布保存在计算节点的多个分区内,所以每一个分区的数据量大大减小,您的查询会在多个分区并行执行,大大的增长了查询的效率。工具

  注:MPP是将任务并行的分散到多个服务器和节点上,在每一个节点上计算完成后,将各自部分的结果汇总在一块儿获得最终的结果(与Hadoop类似),详情点击;https://blog.csdn.net/qq_42189083/article/details/80610092oop

三、查询优化性能

  Redshift提供了针对MPP架构的查询优化引擎,被编译后的SQL分布在多个计算节点的分区内并行执行,而且最大化的利用了列式存储的优点,所以在复杂的多表链接查询的状况下,查询优化器一般能有很大的性能提高。大数据

四、高性能

  不少用户使用Redshift得到了几十倍甚至上百倍的查询加速,Redshift为您提供很是搞笑的查询性能,除了上面讲的专为数据仓库而优化的架构外,还有如下优点:

  4.一、列式存储

    不少数据库使用行式存储,此时若是要基于某个列求和,须要加载整张表的数据,而Redshift列式存储只须要加载一列的数据,磁盘的IO以及内存的消耗都显著减小,增长了性能。因为数据仓库中的大部分查询只是扫描整张表中的部分字段,所以Redshift列式存储特别适合数据仓库查询,另外列式存储索引比传统索引能提供5倍以上的压缩效果和10倍以上的性能提高。

  4.二、数据压缩

    做为一个列式数据仓库,Redshift还支持列数据压缩,数据压缩减小了磁盘占用空间,减小了读写I/O、减小了内存占用空间,并提升了查询的性能。因为Redshift同列的数据类型相同,有些值也相同,所以Redshift的压缩率很高

五、成本低

  使用Redshift无需昂贵的服务器及管理人员成本,仅按使用量付费,而且能够经过购买预留实例来进一步减小成本,实际成本只有传统数据仓库分析的十分之一。

六、安全

  建立Redshift集群的时候,能够选择启用加密来保护数据仓库中的数据,启用加密后,全部的数据库、系统表及备份数据都会被加密,保障了数据的安全。链接Redshift的时候,您也可使用SSL链接,保障网络传输安全。另外AWS也经过身份管理IAM,虚拟网络VPC,防火墙安全组等保护您数据的安全 。
七、负载性能监控

  Redshift监控让您能了解集群运行的细节,好比您能够随时检查集群节点的CPU、内存、网络、存储的使用情况,了解节点当前负载,确保您使用合适的资源来知足当前的业务需求。Redshift和云监控CloudWatch服务高度集成,CloudWatch可以监测Redshift的各类指标,也能够设置警报,在集群出现故障时第一时间通知您。CloudWatch简单易用,是保障集群健康的重要环节。
八、数据迁移到Redshift

无论您的数据是否在云中,都能轻松的使用Redshift分析现有数据,对于传统的没有使用云的用户,只须要先将数据文件上传到AWS中。AWS提供了多种途径将云中的数据加载到Redshift中,下面介绍几种:

  8.一、从S3中加载数据

  传统的用户能够将数据文件经过上传到AWS的云存储S3上。对于敏感数据,能够在上传前加密数据或者使用S3云端加密功能,所以无需担忧数据安全。Redshift提供了命令自动将S3中的数据并行加载到Redshift中。

  8.二、从Dynamo DB中加载数据

  您也能够将数据加载AWS的NoSQL数据库(Dynamo DB)中,Dynamo DB中的数据能够实时或者批量的导入到Redshift。

  8.三、从EMR中加载数据

  EMR是AWS基于hadoop框架的大数据处理服务,经过大数据处理平台加工后的数据,可使用Redshift命令将HDFS中的数据加载到Redshift中。

  8.四、经过SSH从远程服务器加载数据

  Redshift也提供了命令从云中或您数据中心主机上经过SSH链接加载数据。

  AWS提供了丰富的功能帮助您将数据中心或云中的数据加载到Redshift中,加载完成后您就能够在Redshift中创建模型,分析数据,使用AWS的QuickSight、Elasticsearch Service等服务显示报表,也能够在AWS的Market Place中寻找行业BI工具分析和显示数据。