黄东旭解析 TiDB 的核心优势
988
2023-06-14
本文讲述了基于云端的数据仓库的优势,解密云数据仓库内部结构
基于云端的数据科学和分析已经成为了现代大数据的典范。由于存储、处理数据的成本和要求的不断增加,出现了用于数据科学和分析的云存储和处理服务。在这种情况下,云端的弹性、成本效益、安全性和物理位置是最基本的要求。由于从传统的本地数据仓库,过渡到现代基于云端的替代方案的日益普遍,数据科学和分析的总体实施方式发生了巨大的变化。
由于地球上不断增加的数据量,可扩展存储和处理的必要性大大增加。维护这种架构的成本,来自于运行它相关的庞大数量、处理能力、安全性和人力资源。对于很难继续通过传统方式管理数据的企业来说,一个有吸引力的选择逐渐出现了———将这种财务责任交给这些服务的专业提供商。这种情况,或者类似的情况,导致了云技术的兴起。云技术的常见定义是根据外部软件或硬件,提供存储服务 (SaaS) ,通常由互联网通过 TCP/IP的 访问。
Inmon 将数据库描述为“面向主题的、集成的、随时间变化的、非易失性的数据集合,主要用于组织决策的制定”。总而言之,数据仓库是在企业生命周期中,纵向收集的业务数据的中央存储库,数据仓库做出的分析可以为未来的业务决策提供信息,以及衡量先前决策的影响。
数据仓库的规模和复杂性,随着业务的发展在不断的增加。这种增长意味着有效运行数据仓库所需的系统资源,会随着时间的推移而增加。数据仓库的核心,是存储、处理、内存和输入输出的能力。这些核心分别包含在以下两个更高级别的分类中:软件要求、安全和硬件要求。
一个存储引擎,一个规则和处理引擎是一个成功的数据库在软件方面必不可少的内容。存储引擎提供原始数据本身的接口。一般来说,它关系到数据库管理系统的工作。但是,如果我们使用面向对象的数据库、或半结构化的替代方案(如文档存储),则需要略有转变。同时,数据仓库的规则引擎部分负责处理数据的转换。规则引擎通常为日常任务提供设计模板,当和 DataVault 2.0 等现代仓储实践相结合时,规则引擎则可以实现高度的自动化、和元数据驱动的 ETL 流程。
取决于特定业务的细分市场,和法律问题时,数据仓库的安全性要求可能会变得有点复杂。尽管如此,数据仓库的安全要求仍然可以简化为安全模型的总体概念。 安全模型需要有一定的复杂程度,去允许对所有业务分支进行适当级别的访问,同时,不会停止日常任务所需的访问。数据仓库的这一部分通常很复杂。由于不同软件提供访问的方式在各种存储引擎之间不断变化,数据仓库的这一部分必须在设计时从最开始考虑到最后。由于逻辑模型中,生成物理模型通常高度依赖于软件技术,所以,这个一般为设计过程中最受安全模型影响的点。
数据仓库的硬件需求高度取决于业务:然而,所有公司的共同观点是,这一要求会随着时间的推移而改变。从长远来看,随着更多数据的添加,增加处理和存储要求增多,这种需求通常会呈上升趋势。 从更尖锐的角度来看,数据仓库需要硬件性能和容量的弹性扩展,因为在ETL 进程在运行时会消耗大量的处理和存储能力。但是当它们处于空闲状态时,这种大量的需求则会大大减少。
云技术这个术语,通常指运行大规模仓库规模数据中心的公司的产品。这些公司通过将服务器群的一部分出售给个体企业来提供存储、处理能力和安全性。通过有效地整理对该基础设施的多种业务的需求,这些公司能够获得利润。在处理基于云技术的系统时,因为云服务提供商处理这些决策和复杂性,所以硬件要求被排除在外。除此之外,因为企业将自身数据的大部分分包给了云提供商,企业的管理安全团队和架构/运营团队的开销也随之而减少;因为提供商会处理故障转移,所以租用云技术的企业可以有效地租用硬件。基于云技术的服务提供商支持越来越多的数据库和数据处理服务。因为,当数据仓库托管在云中时,数据的进入和退出以及提取、转换和加载 (ETL) 过程的方式存在显著的差异,所以,这些要求各有利弊。
弹性可以保证系统资源可以独立无缝扩展,而不影响数据可用性或性能的能力。云计算的这一特性,使其成为数据仓库和分析/数据科学工作负载的主要核心。弹性处理和内存扩展的能力,让应用程序在短时间内利用增加的资源,来克服短暂但密集的工作负载,所以,企业不必一直通过增加硬件数量来维持运行。因为磁盘空间的弹性扩展,公司可以不用直接购买硬件、而是通过临时租用这些磁盘空间,并在 ETL 过程结束时退还它们。弹性扩展不仅降低了购买此硬件的初始成本,同时还降低了企业用于保持这些驱动器始终运行的电力成本。
但与此同时,将存储和处理转移到外部会给业务带来新的问题。这些新的问题包括更改数据管理计划来将数据存储在外部,通过互联网而不是本地服务器访问数据相关的延迟,以及员工对所需流程和培训的改变的抵制。分析师和数据科学同时也会直接或间接的受到这些问题的影响。像我们上面提到的,虽然围绕管理和访问存在着直接的影响,但是,在与数据处理和存储中采用云技术的其他问题相比,云技术能支持最杰出的数据科学堆栈。在今天的分享中,我们将重点分享关于云数据库给分析和数据科学带来的好处。
云端数据库通常具有非常快的企业就绪流程,而且可以直接连入互联网。要加载托管在互联网上的数据集时,这通常需要非常庞大的的吞吐量。但是,这也会损害一些拥有较差的LAN到WAN 传输速度的企业,导致这些企业在把大型数据集从公司本地存储、通过互联网加载到其云数据库时出现问题。作为初始设置或迁移到云数据仓库的一部分,这个 LAN 到 WAN 速度问题最为明显且重要。这通常称为批量迁移或批量加载阶段。一旦数据仓库在云端中运行,企业就可以更加广泛地传送更少量的数据。这样,标准业务部分受 到LAN 到 WAN 速度问题的影响要轻微的多。
Talend 认为,从根本上讲,以下是企业希望将数据仓库和分析/数据科学堆栈迁移到云的原因。首先是,企业的总成本降低了,因为他们不需要购买所需的硬件,也不需要在整个时间内租用大量的处理能力。云计算解决方案提供的弹性使公司能够节省这笔支出,但可以通过弹性扩展资源来匹配工作负载,同时,企业也可以在使用增加的功率时,只为他们需要的东西付费。这种无缝扩展和降低总体成本的能力,使企业能够在同等预算的情况下,购买更高的性能水平。整体处理能力的提高,使企业在经济中更具成本效益和竞争优势。新数据集市的启动以及暂存区的便利性,都能让企业进行更高级的开发和测试实践,并且通过自动化和封装,为业务提供更快的开发迭代,从而再次增加他们在市场上的优势。将数据托管在云端中,还可以改善对数据的访问,云供应商拥有庞大的专门团队来处理安全问题,这也比企业内部雇佣安全团队更便宜。同时,企业也可以更轻松地访问他们的数据。
基于云端的数据库,是数据科学和分析在云端数据中移动的重要推动因素。将云端中的数据科学、分析堆栈、与数据仓库处理管道的存储放在一起,是一个必然的前景。现在,我以云数据库如何影响数据科学和分析的举一个例子。目前,云数据仓储领域的领头羊是Snowflake。Snowflake 提供真实的云数据库体验,弹性计算能力和存储。除此之外,他们 还集成了直接托管在其数据仓库产品中的数据科学和分析工具。
如之前所提到的,在云上托管分析和数据仓库可以快速、直接地访问通过数据科学实践获得的报告和知识。这些能力,加上从任何地方都能访问这些公司内外的数据,能帮助企业获得竞争优势。除了访问外,在云中托管数据仓库和包含的数据集,还可以快速无缝地深入分析来自世界任何地方的原始底层的数据。
基于云端的数据仓库对数据科学和分析产生了深远的影响。在云中,托管虚拟数据仓库以及现代分析堆栈的能力,已成为近年来数据科学最重要的转变之一。正如同时得到 Smoot、Ren、Lindstedt 和 Zulkernine 等研究人员的证实, 以及Talend 和 Gartner 在内的公司所解释的那样,易用性、弹性扩展、增强的安全性、物理位置以及总体成本的降低,是基于云端的数据仓库如何影响分析和数据科学的关键。新兴的数据科学和分析堆栈,通常是从头开始设计,来支持云端硬件上的弹性扩展和部署,从而在物理上与云数据仓库所接近,并为云数据仓库增长趋势提供帮助和好处。
随着数据的不断增长和应用场景的扩大,数据仓库作为一种专门用于支持企业决策和分析的技术架构,也得到了越来越广泛的应用。而随着云计算的发展,云数据仓库也成为了一个新的趋势,它能够更加灵活、可扩展、安全和成本效益更高地支持企业的数据分析需求。笔者将探讨云数据仓库架构中的结构,包括数据集成、数据存储、数据处理和数据访问四个方面。
一、数据集成
数据集成是云数据仓库中最重要的组成部分之一。数据集成的目标是将来自不同数据源的数据整合在一起,以便进行有效的分析和决策。在云数据仓库中,数据集成通常包括以下三个步骤:
数据提取:从不同数据源中提取数据,并将其转换为统一的格式,以便进行后续的数据处理。
数据转换:对提取的数据进行清洗、重组、聚合等处理,以便满足特定的分析需求。
数据加载:将转换后的数据加载到云数据仓库中,以便进行后续的数据分析。
数据集成需要考虑到数据的质量、完整性、一致性和可靠性等方面。因此,云数据仓库中的数据集成通常需要使用一些数据集成工具和技术来支持数据的提取、转换和加载。例如,AWS Glue是一个完全托管的ETL(抽取、转换和加载)服务,可以帮助用户轻松地从各种数据源中提取数据并将其加载到AWS云数据仓库中。
二、数据存储
数据存储是云数据仓库中的另一个重要组成部分。数据存储是指在云上存储分析数据的过程。在云数据仓库中,数据存储通常分为两个层次:原始数据层和分析数据层。
原始数据层:原始数据层是云数据仓库中的第一个层次。它存储来自不同数据源的原始数据,包括结构化、半结构化和非结构化数据。原始数据层通常采用分布式存储系统,如Amazon S3(Simple Storage Service)等。
分析数据层:分析数据层是云数据仓库中的第二个层次。它存储经过ETL处理后的分析数据,这些数据被组织成特定的数据模型以支持企业分析和决策。分析数据层通常采用云数据库服务,如Amazon Redshift、Google BigQuery等。
在数据存储方面,云数据仓库需要考虑到数据的安全性、可扩展性、性能和成本等方面。为了实现这些目标,云数据仓库通常采用多层存储架构和数据分区技术。例如,云数据仓库可以使用Amazon S3作为原始数据层,使用Amazon Redshift作为分析数据层,并利用Amazon Glue进行ETL处理和数据转换。
三、数据处理
数据处理是云数据仓库中的另一个重要组成部分。数据处理是指在云上对数据进行处理和分析的过程。在云数据仓库中,数据处理通常分为两个层次:批处理和实时处理。
批处理:批处理是指对数据进行批量处理的过程。批处理通常用于大量数据的离线处理,例如数据清洗、聚合、归档等。在云数据仓库中,批处理通常采用MapReduce、Hive等技术来实现。
实时处理:实时处理是指对数据进行实时处理的过程。实时处理通常用于需要实时响应的应用场景,例如监控、实时报警等。在云数据仓库中,实时处理通常采用流处理技术,例如Spark Streaming、Kafka Streams等来实现。
数据处理需要考虑到数据的实时性、准确性、一致性和可靠性等方面。为了实现这些目标,云数据仓库通常采用分布式计算框架和流处理引擎等技术。例如,云数据仓库可以使用Amazon EMR作为批处理平台,使用Amazon Kinesis作为流处理平台,并利用Apache Spark进行数据处理和分析。
四、数据访问
数据访问是云数据仓库中的最后一个组成部分。数据访问是指通过各种方式来访问和使用云数据仓库中的数据,例如SQL查询、BI工具、API等。在云数据仓库中,数据访问通常分为两个层次:数据查询和数据可视化。
数据查询:数据查询是指通过SQL查询等方式来访问和查询云数据仓库中的数据。在云数据仓库中,数据查询通常使用OLAP(在线分析处理)技术来实现,例如使用Amazon Redshift Spectrum来支持针对Amazon S3中存储的数据的查询。
数据可视化:数据可视化是指通过可视化工具来将云数据仓库中的数据转换为易于理解和分析的图表和报表。在云数据仓库中,数据可视化通常
使用BI(商业智能)工具和数据可视化平台来实现,例如使用Tableau、Power BI等工具来创建可视化报表和仪表板。
数据访问需要考虑到数据的安全性、可用性和性能等方面。为了实现这些目标,云数据仓库通常采用数据访问控制、数据缓存和负载均衡等技术。例如,云数据仓库可以使用Amazon IAM来控制数据访问权限,使用Amazon CloudFront来缓存数据,并利用负载均衡器来提高数据访问的性能和可用性。
结论
云数据仓库是一个复杂的系统,由多个组成部分组成。在云数据仓库架构中,数据采集、数据存储、数据处理和数据访问是最重要的四个组成部分。在设计和实现云数据仓库时,需要考虑到数据的安全性、可扩展性、性能和成本等方面。为了实现这些目标,云数据仓库可以采用多层存储架构、数据分区技术、分布式计算框架和流处理引擎等技术。通过合理的架构设计和技术选择,云数据仓库可以实现高效、可靠、安全和可扩展的数据处理和分析。
上文就是小编为大家整理的基于云端的数据仓库的优势,解密云数据仓库内部结构
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。