随着信息技术的迅速发展,各行各业积累的数据都呈现出爆炸增长的趋势,我们已经进入了大数据的时代。当前企业数据的规模和复杂度不断增长,如何快速低成本的分析这些海量数据、挖掘数据的价值、让数据为公司的业务提供支撑,成为困扰企业的一个问题。作为全球领先的公有云提供商,AWS提供了一整套数据分析及挖掘的解决方案,涵盖了数据收集、传输、存储、分析、报表等,其中数据仓库服务是尤为重要的一个环节。AWS 2013年在美国区域发布了云数据仓库Redshift服务,让用户无需任何硬件、低成本、快速的分析企业数据中心或者云中的数据。
什么是Redshift
AWS Redshift是一个完全托管的云端的大规模并行PB级数据仓库服务,使您能更高效的分析现有数据。使用云端Redshift服务,您无需管理庞大的服务器集群,分析数据的成本不到传统解决方案的十分之一,也能和您现有的BI产品集成。使用Redshift服务有众多的优势。
Redshift的优势
完全托管,快速上手
使用Redshift云服务,您可以根据业务需要在几分钟内建立几个到几十个节点的数据仓库集群,立刻开始您的数据分析的任务,也能根据需求随时增加或减少集群资源。Redshift是完全托管平台,承担了大量的集群管理、数据库管理、监控、集群健康检查、备份、升级等工作,让您能专注业务分析,无需花大量时间在服务器管理,安全及数据备份等工作上。
为数据仓库而优化的架构
Amazon Redshift基于企业级PostgreSQL数据库,有大规模并行处理 (MPP) 架构,MPP可以通过将数据分布到各个计算节点来解决海量数据的处理难题。在Redshift中,每个集群有1个管理节点和多个计算节点,集群内部使用私有、高速、 低延时的网络连接。每个计算节点都有单独的CPU,内存和附加存储,并且每个计算节点有多个分区,您的数据被分布保存在计算节点的多个分区内,因此每个分区的数据量大大减少,您的查询会在多个分区并行执行,大大的增加了查询的效率。
高性能
很多用户使用Redshift获得了几十倍甚至上百倍的查询加速,Redshift能为您提供非常高效的查询性能,除了专为数据仓库而优化的架构外,还有以下优势:
列式存储
很多数据库使用行式存储,此时如果要基于某个列求和,需要加载整张表的数据,而Redshift列式存储只需要加载一列的数据,磁盘的IO及内存的消耗都显著减少,增加了性能。由于数据仓库中的大部分查询只是扫描整张表中的部分字段,因此Redshift列式存储特别适合数据仓库查询,另外列式存储索引比传统索引能提供5倍以上的压缩效果和10倍以上的性能提升。
数据压缩
作为一个列式数据仓库,Redshift还支持按列数据压缩,数据压缩减少了磁盘占用空间、减少了读写I/O、减少了内存占用空间,并提高了查询的性能。由于Redshift同列的数据类型相同、有些值也相同,因此Redshift的压缩效率很高。
查询优化
Redshift提供了针对MPP架构的查询优化引擎,被编译后的SQL分布在多个计算节点的分区内并行执行,并且***化的利用了列式存储的优势,因此在复杂的多表连接查询的情况下,查询优化器通常能有很大的性能提升。
成本低
使用Redshift无需昂贵的服务器及管理人员成本,仅按使用量付费,并且可以通过购买预留实例来进一步减少成本,实际成本只有传统数据仓库分析的十分之一。
安全
创建Redshift集群的时候,可以选择启用加密来保护数据仓库中的数据,启用加密后,所有的数据库、系统表及备份数据都会被加密,保障了数据的安全。连接Redshift的时候,您也可以使用SSL连接,保障网络传输安全。另外AWS也通过身份管理IAM,虚拟网络VPC,防火墙安全组等保护您数据的安全 。
查询分析
您的应用及工具使用标准的SQL连接Redshift,这意味着开发人员无需为数据分析学习新的技能,您也能使用市场上支持SQL的报表分析工具进行数据的分析。Redshift和很多主流的BI工具的整合已经得到了验证,您可以在AWS的Market Place中寻找合适的BI方案,完成您的数据分析及报表工作。
负载性能监控
Redshift监控让您能了解集群运行的细节,比如您可以随时检查集群节点的CPU、内存、网络、存储的使用状况,了解节点当前负载,确保您使用合适的资源来满足当前的业务需求。Redshift和云监控CloudWatch服务高度集成,CloudWatch能够监测Redshift的各种指标,也可以设置警报,在集群出现故障时***时间通知您。CloudWatch简单易用,是保障集群健康的重要环节。
数据迁移到Redshift
不管您的数据是否在云中,都能轻松的使用Redshift分析现有数据,对于传统的没有使用云的用户,只需要先将数据文件上传到AWS中。AWS提供了多种途径将云中的数据加载到Redshift中。
从S3中加载数据
传统的用户可以将数据文件通过上传到AWS的云存储S3上。对于敏感数据,可以在上传前加密数据或者使用S3云端加密功能,因此无需担心数据安全。Redshift提供了命令自动将S3中的数据并行加载到Redshift中。
从Dynamo DB中加载数据
您也可以将数据加载到AWS的NoSQL数据库(Dynamo DB)中,DynamoDB中的数据可以实时或者批量的导入到Redshift。
从EMR中加载数据
EMR是AWS基于Hadoop框架的大数据处理服务,通过大数据处理平台加工后的数据,可以使用Redshift命令将HDFS中的数据加载到Redshift中。
通过SSH从远程服务器加载数据
Redshift也提供了命令从云中或您数据中心主机上通过SSH连接加载数据,但主机必须要能接受SSH连接。
AWS提供了丰富的功能帮助您将数据中心或云中的数据加载到Redshift中,加载完成后您就可以在Redshift中建立模型,分析数据,使用AWS的QuickSight、Elasticsearch Service等服务显示报表,也可以在AWS的Market Place中寻找行业BI工具分析和显示数据。
总结
除了上面谈到的Redshift的技术特性外,Redshift给您带来的真正价值在于,它消除了企业构建数据仓库的技术壁垒,消除了数据分析需要使用大量基础设施对企业的拖累,让企业专注于自己的核心竞争力;它也能让您随时执行您想要的任何复杂查询,并能快速得到响应。无需担心ETL过程,无需担心数据存放的成本,您所需要的只是连接Redshift,马上得到您想要的答案!