简介:随着互联网技术的发展,数据量表的扩展以及复杂需求方案的出现,传统的大数据架构无法携带。
传统的大数据技术源自三个Google GFS,MapReduce,Bigtable及其导数开源分布式文件系统HDF,分布式计算机MAPREDUCE和分布式数据库HBase。最初的大数据技术和需求通常集中在大型数据存储中,数据处理,在线查询等。在此阶段,许多公司将选择通过自行制造的机床构建Hadoop的方法。大数据技术和需求集中在离线计算和大规模存储上。常见表现是T+1报告,大型数据在线查询等。
随着互联网技术的发展,数据量表的扩展以及复杂需求方案的出现,传统的大数据架构无法实现。近年来,大数据架构的演变主要反映了以下方面:
这里的量表主要反映在大数据技术的使用规模和数据增长的规模上。大数据技术规模的增加代表了越来越复杂的需求,数据量表的增长决定了传统的准核-big数据技术(例如MySQL)无法解决所有问题。因此,就存储组件而言,通常将其分为不同的数据层,面临着不同维度的优化偏差,例如规模,成本,查询和分析性能,以满足该偏差多样性的需求。
传统的T+1离线大数据技术无法满足建议和监视类别的需求。整个大数据生态和技术架构在过去十年中经历了很高的升级。在存储,传统的HDFS文件存储和Hive位置方面,可以更新迭代的需求,因此数据解决方案如在计算条款中,传统的MapReduce批处理处理能力无法实现第二级数据处理。Storm具有更多原始的真实 - 时间处理和Spark流的微批量处理。当前,基于数据流模型的FLINK的真实时间计算框架是在实时计算中以实时计算计算的,该字段占据了绝对的主导位置。
传统公司经常选择建造自制造的机房,或在云中购买机器部署以部署云监管形式,但是该体系结构在槽期间的利用率较低,存储计算的存储和计算很差,并且存储和计算弹性差,升级升级以及升级。云以实现统一的管理,统一的存储和弹性计算大数据架构。计算存储架构。它的主要技术功能是存储和计算分离和无服务器。服务,计算服务和元数据管理服务。每个组件必须分为不同的单位,该单元具有能力独立扩展,更开放,灵活,更灵活。
本文将根据基于云的大数据架构的场景实时讨论维度的体系结构选择和结果表。
1个真实的计算场景
大数据的快速发展已经超过10年了,大数据也从计算的规模到更真实的时间趋势。真实的时间计算场景主要具有以下最常见的场景:
2 Flink SQL真实计算
实际 - 时间计算需要一组非常强大的大数据计算功能。Apache Flink诞生于开源大数据实时计算技术。由于传统的Hadoop,Spark和其他计算引擎本质上是一批计算机。通过有限数据集的数据处理,无法保证处理及时性。从设计的开头,Apache Flink将其定位为流计算引擎。它可以实时订阅实时生成的流数据,实时分析和处理数据并生成结果,以便该数据首次有价值。
Flink选择了一种语句语言,例如SQL作为TOP API,它很方便使用用户,并且还符合云的趋势 - 本地的大数据架构:
上图是Flink SQL的一些基本操作。可以看出,SQL的语法和标准SQL非常相似。该示例包括基本选择和过滤操作。它可以使用构建的函数(例如日期格式)或注册功能后的自定义功能。
Flink SQL实时分为源表。结果表和尺寸表已在这三个表的DDL语句(例如创建表)(例如创建表)中注册。这意味着实时计算任务的拓扑关系以实现完成真实的效果 -通过SQL计算任务。
下图是一个完整的实时计算示例。示例中的Flink SQL任务。该任务的目的是计算每分钟不同商品分类的GMV(总商品卷,总产品交易)。在此任务中,Flink的真实时间消费者用户订单数据的KAFKA源表通过REDIS Dimension Tabt要获取产品ID以获取产品分类,请根据1分钟间隔的产品分类计算总交易的总交易金额,并将计算最后一个交易。结果是用RDS编写的(关系数据库服务,例如MySQL)结果表。
这是一个非常常见的真实时间计算处理链接。在后续章节中,我们将分析实际时间计算的维度和结果的关键功能,并讨论体系结构的选择。
在数据仓库的构建中,它通常是围绕星模和雪花模型设计或结构的。真实计算也不例外。一个共同的需求是弥补数据流。由于数据收集终结所收集的数据通常相对有限,在进行数据分析之前,必须构建所需的维度信息。例如,仅记录了产品ID收集的交易日志,但是在做生意时,有必要根据商店的维度或行业纬度进行汇总。此处提到的维度与数据仓库中的概念相似,并且是尺寸的一组尺寸,例如商品维度,用户学位,放置尺寸等。
作为保留用户尺寸的数据存储,有必要在实时计算中应对大型低删除访问。根据此定位,我们总结了结构化大数据存储的几个关键需求:
1.高吞吐量和低潜伏期的阅读能力
首先,除了优化开源引擎自身的尺寸外,尺寸表还必须能够在实际计算方案中使用大量(成千上万的QPS)数据访问权限,并且也可以在极低(毫秒)延迟的延迟下返回查询。
2.与计算引擎的高集成功能
除了考虑性能,稳定性和成本的考虑,尺寸本身的能力外,计算引擎本身通常具有一些流量卸载功能。在某些情况下,如果没有每个请求,就无需访问下游维度。例如,Flink支持优化功能,例如在维生素方案中的异步IO和缓存策略。一个更好的尺寸需要高度与开源计算引擎进行高度对接。一方面,它可以改善计算层的性能。一方面,它也可以有效地卸载流量的部分,确保无法访问尺寸的尺寸太多,并减少它。尺寸的计算成本。
3.在光存储下计算能力的弹性
尺寸表通常是共享表,存储尺寸属性和其他元数据信息。访问量表通常很大,并且存储量表通常不是特别大。访问尺寸的尺度取决于依赖于真实时间数据流的数据流量。例如,如果真实 -时间流已经扩大了数十次,目前将大大改善对维度维度的访问次数。例如,如果添加了多个实时计算任务。在这些情况下,存储量表通常不会显着增加。
因此,计算最好是在 - 需要的,弹性的。是否是新的或离线的真实计算任务,或增加访问流量,它不会影响访问性能。在同一时间,计算和存储应分开,由于访问量的激增,存储成本不会增加。
mysql
在大数据开始和真实计算技术的开头,在互联网的早期很快开发了大量的LAMP(Linux + Apache + MySQL + PHP)体系结构。因此,由于业务历史数据已经存在在MySQL中,在最初的实时计算维度选择中使用了大量MySQL。
随着大数据体系结构的更新,MySQL云上层体系结构也不断改进,但是在维度的应用程序方案中仍然存在以下问题:
上述限制使MySQL具有大数据维度的性能瓶颈,而且成本相对较高。但是总体而言,MySQL是一个非常好的数据库产品。在数据量表的情况下,MySQL绝对是一个不错的选择。
Redis
在云上的应用程序体系结构中,由于MySQL很难承担增加业务负载,因此Redis通常将Redis用作MySQL查询结果集腔,以帮助MySQL抵抗大多数查询流量。
在此体系结构中,MySQL用作主存储服务器,Redis是辅助存储。Binlog或MySQL UDF + Trigger可以实时实现MySQL与REDIS的同步。在此体系结构中,Redis可用于缓存以提高查询性能,同时降低MySQL崩溃的风险。
由于REDIS中的一致性较弱,REDIS通常被用作实时计算的维度。
Redis具有其突出的优势,但也有一个无法忽略的缺陷:尽管Redis具有良好的扩展计划,但由于内存中的高速缓存数据,成本很高。如果业务数据的维度很大(例如用户,用户尺寸和商品维度),则使用REDIS作为维度时的成本很高。
tablestore
Tablestore是由阿里巴巴云开发的结构化大数据存储产品。特定产品介绍可以参考官方网站和权威指南。在大数据维度的情况下,Tablestore具有独特的优势:
以上是对每个维度前面提到的几个维度的比较。接下来,将在细致的比较中引用一些特定方案:成本:成本:
1.高存储和高计算:尺寸的尺寸需要100亿个数据订单,总存储量需要1T。尽管该业务在Flink任务方面配备了缓存策略,但仍然有一个高度的KV查询汇。不同维度所需的成本如下:
2.低存储和低计算:尺寸的尺寸需要100万个区域尺寸,总存储量需要10m,flink任务中业务方面的尺寸表配置了LRU缓存策略,以抵制广泛的范围大多数流量。QPS峰值的平均值为250。不同维度所需的配置要求和购买成本如下:
3.高存储和低计算:尺寸的尺寸需要100亿个数据订单,总存储量需要1T,Flink任务中业务方面的尺寸配置了LRU缓存策略以抵制绝大多数流量。QPS峰值的平均值为250。配置要求和不同维度所需的购买成本如下:
4.低存储和高计算:Redis作为内存数据库,具有超高 - 频率数据KV查询功能,只有4核8G内存REDIS群集,您可以支持160,000 QPS的并行访问。费用预计为1600元/月。存储高计算场景具有明显的成本优势。
从上述成本比较报告可以看出:
1)由于缺乏存储和计算弹性以及关系数据库的固有缺点,MySQL在不同程度的存储和计算下成本高。
2)Redis作为内存数据库,在低存储(小于128G)高计算场景时具有明显的成本优势。但是,由于存储器存储的成本高和缺乏弹性,随着数据量表的增加,索引的成本会增加。
3)TableSore可以基于基于云的体系结构对存储和计算进行弹性,并且当数据存储和访问规模不大时,成本很低。
4)Tablestore在SOSQL数据库存储成本中的成本较低,并且在高存储(128G)方案中具有明显的成本优势。
作为按实时计算计算的存储系统,可以将其分为关系数据库,搜索引擎,结构化的大数据离线存储和结构化的大数据在线存储。通过下表总结了具体差异。
对于这些数据产品,它们在各自的场景中都具有自己的优势,并且它们的起源不同。为了促进查询,我们缩小了问题域,并且仅考虑在这种情况下需要采取更好的结果表存储需要什么角色实时计算。
上面提到了真实时间计算的主要场景。真实的 - 时间仓库,真实的时间推荐,对三种情况的真实时间监视需要考虑选择结果表。我们一一分析它们。
通过上述需求分析,我们可以总结几个真实的 - 时间大数据结果表的关键功能:
1.大型数据存储
结果表存储的定位是集中式的大型存储。作为在线数据库的摘要,或实际计算(或离线)的输入和输出,有必要支持PB - 级数据存储。
2.丰富的数据查询和聚合分析能力
结果,该表需要具有丰富的数据查询和聚合分析功能,并且需要优化以支持高效率在线查询。通用查询优化包括带有高速缓存,高和低delay的随机查询条件组合查询和数据检索。这些查询优化的技术手段是缓存和索引。该索引的支持是多元化的,并且为不同的查询方案提供了不同类型的索引。多条件组合查询和全文检索的倒置索引。
3.高通量写作能力
实时计算的数据表需要能够承受大型数据计算引擎的巨大结果。因此,有必要支持高通量数据编写,并且通常使用优化的存储引擎来编写。
4.数据得出的能力
在完整的数据系统体系结构下,多个存储组件需要共存。并且根据查询和分析功能的不同要求,需要在数据衍生系统下动态扩展存储。因此,对于大数据存储,它还需要扩展扩展数据处理能力的衍生功能。判断存储组件是否具有更好的数据衍生功能取决于其是否具有成熟的CDC技术。
5.云本地体系结构:存储和计算成本的分离
在Yunyuan的大数据架构中,每一层体系结构都在不断发展,以服务,存储服务,计算服务和元数据管理服务。每个组件必须分为不同的单元。结果表,也不例外。它需要具有独立扩展的能力,这更开放,灵活和更灵活。
从结果表中,只有符合云本地体系结构的组件,即基于存储计算分离体系结构实施的产品,可以分离存储和计算成本以及独立的扩展。存储和计算分离的优势将是在一个简单的示例中,在大数据系统下更明显的是,随着数据的积累,结构化大数据存储的存储量将变得越来越大,但是数据编写的量相对稳定。因此,需要连续扩展存储,但是支持数据编写或临时数据分析所需的计算资源是相对固定的,并且需要根据需要。
mysql
像Weimoto一样,在大数据和真实时间计算技术的开始时,MySQL是通用存储。几乎所有需求都可以通过MySQL完成。因此,应用量表非常宽,结果表也不例外。随着数据量表的连续扩展和越来越复杂的需求方案,MySQL很难携带。在结果表的后果中,主要存在以下问题:
上述限制使MySQL在大数据结果表中具有性能瓶颈,并且成本相对较高,但是作为一个关系数据库,它并不特别适合大数据结果表。
HBase
由于关系数据库的天然瓶颈,应运输基于Boogtable概念的分布式NOSQL结构化数据库。卡桑德拉(Cassandra)是WideColumn模型NOSQL类别下的Top-1产品,该类别被广泛在国外使用。在本文中,我们专注于在中国应用更多的HBASE。HBASE是基于HDFS存储计算分离体系结构的WideColumn模型数据库。它具有非常好的可扩展性,可以支持大型数据存储。它的优势是:
HBase具有出色的优势,但也有一些不容忽视的主要缺陷:
中国的大多数高级球员将根据HBase进行二级发展。基本上,他们正在采取各种解决方案来弥补弱HBase查询功能的问题。根据自己的业务,他们制定了自己的索引方案,例如自我开发的第二级索引方案,连接Solrdo Full -Text索引或数据集的位图索引方案,以较少区分。产品,并且有许多出色的设计思想值得学习。
HBase + Elasticsearch
为了解决弱HBase查询功能的问题,许多国内公司通过Elasticsearch加速数据检索,并根据HBase + Elasticsearch方案实施其结构。,Elasticsearch用于数据检索。其中,由于HBASE没有CDC技术,因此业务伙伴应用程序层对双重写入HBase和Elasticsearch,或者启动数据同步任务将同步HBASE同步HBase同步任务将同步HBase Synchronization.to Elasticsearch。
该方案可以大大弥补通过Elasticsearch进行HBASE查询的问题,但是由于HBase和Elasticsearch本身缺乏能力,将会有几个问题:
tablestore
Tablestore是由阿里巴巴云开发的结构化大数据存储产品。特定产品介绍可以涉及官方网站和权威指南。Tablestore的设计概念在很大程度上考虑了数据系统中结构化的大数据存储的需求,并且基于派生数据系统的设计概念,它具有专门设计和实现了一些特征功能。简而言之,总结了Tablestore的技术概念:
为了给出特定的方案,结果表需要节省数百级的E-商业订单交易数据。总存储量需要1T。用户需要分析和灵活地分析此类数据。每日订单查询和数据检索的频率为1,000次/s,数据分析约为每分钟10次。
以下是不同体系结构满足所需的所需的配置,以及阿里巴巴云上的购买成本:
本文讨论了在Yunyuan的大数据架构下的真实时间计算维度和结果的设计和选择。在它们的大型数据架构中,阿里巴巴云大游戏在这些情况下具有某些功能,希望通过本文对我们有更深入的了解。- 我们将在Tablestore上发表一篇来自零施工Flink的文章,并为后果的维度和结果推出最佳的实用文章。