导航:首页 > 数据处理 > vertica中如何修改表数据

vertica中如何修改表数据

发布时间:2024-09-07 18:00:39

1. 究竟是什么让Redshift比Hive快10倍

究竟是什么原因产生了如此悬殊的速度,有网友在Quora上提出了这个问题,并得到了Reynold Xin的解答:

Redshift采用了专有的叫做ParAccel的并行数据库实现机制。我想在很多工作情境中,你会发现大多数并行数据库引擎要比Hive快。接下来,我将给出答案,并解释其中的某些原因。请注意的是,虽然该答案针对的是ParAccel,其中的大部分因素也适用于Vertica、Greenplum、OracleRAC等并行数据库。

在答案中呢,我将使用三个可互换的术语“并行数据库”、“关系型数据库”和“分析型数据库”。

比起并行数据库,Hive在可扩展性、灵活度方面遥遥领先。例如,Facebook使用Hive数据仓库跨越成千上万个节点。说起灵活度,Hive设计的初衷是与一些系列存储系统(HDFS、HBase、S3)配合使用,并能够支持多种输入格式(压缩、未压缩、Avro、纯文本、JSON)。

易扩展和高灵活度在给你带来便利的同时,却也阻碍了你构建性能更好的查询引擎。接下来,我将列举哪些特征会影响查询性能:

数据格式:数据以类似纯文本文件,相对未优化的形式存储在HDFS中。Hive 作业在处理数据之前,需要先花大量时间从硬盘中读取数据,再反序列化这些数据。

发起任务的系统开销:Hadoop MapRece 使用心跳机制(heartbeats)制定作业计划,每项任务作为一独立的JVM过程发起。在Hadoop MapRece 中,仅仅是发起一项作业就需要几十秒钟,在秒级时间单位内,是无法运行任何进程的。相反,并行数据库拥有持续进程或线程池,它们能够大大减少任务安排及发起所需要的系统开销。

中间数据物化 vs数据传输:Hive 使用拥有二阶模型(Map和Rece)的MapRece来执行。通常一个复杂的SQL查询被映射为MapRece的多个阶段,不同阶段的中间数据在硬盘上物化。并行数据库内置有用于执行SQL查询的引擎,执行查询时,该引擎在查询操作符和数据流(steram data)之间跨节点传递数据。

列数据格式:列数据库将数据按照列式的格式进行存储。在典型的数据仓库中,每张数据表能够存储成百上千列,而大多数查询仅查找少数列。让我们来考虑一下如下查询,要查找的是沃尔玛每家店的营业额。它仅需要查找两三列(商店的编号、每件商品的零售价,或者还有销售日期)。以列式存储数据,执行查询时,引擎可以跳过不相关的列。这样可以减少上百次的硬盘I/O。此外,按列存储数据能够大大增加压缩比率。

列查询引擎:除了上面提到的按列式存储的数据格式,还可以按列构建查询执行引擎,该引擎在分析型工作负载方面得到了较好的优化。其中的技巧包括:晚期物化(late materialization)、直接操作压缩过的数据、利用现代CPU提供的向量化操作(SIMD)。

更快的S3连接:在这里我将给出一个大胆的猜测:AWS可能已经为他们的Redshift实例实现了一个比普通S3能够提供的更高带宽的S3整体负载。

我需要申明,我们刚刚讨论的这些因素是基于Hive当前版本(2013年2月)。毫无置疑,Hive社区将会推进开发工作,并解决其中的一些难题。

2. vertica数据库中怎么实现动态参数

MAX_UTILIZATION代表数据库自上次启动以来达到的最大值,LIMIT_VALUE代表设置的最大值
select resource_name,MAX_UTILIZATION,LIMIT_VALUE from v$resource_limit where resource_name in ('processes','sessions')!

3. 设计一个大数据实时分析平台要怎么做呢

PetaBase-V作为Vertica基于亿信分析产品的定制版,提供面向大数据的实时分析服务,采用无共享大规模并行架构(MPP),可线性扩展集群的计算能力和数据处理容量,基于列式数据库技术,使 PetaBase-V 拥有高性能、高扩展性、高压缩率、高健壮性等特点,可完美解决报表计算慢和明细数据查询等性能问题。
大数据实时分析平台(以下简称PB-S),旨在提供数据端到端实时处理能力(毫秒级/秒级/分钟级延迟),可以对接多数据源进行实时数据抽取,可以为多数据应用场景提供实时数据消费。作为现代数仓的一部分,PB-S可以支持实时化、虚拟化、平民化、协作化等能力,让实时数据应用开发门槛更低、迭代更快、质量更好、运行更稳、运维更简、能力更强。
整体设计思想
我们针对用户需求的四个层面进行了统一化抽象:
统一数据采集平台
统一流式处理平台
统一计算服务平台
统一数据可视化平台
同时,也对存储层保持了开放的原则,意味着用户可以选择不同的存储层以满足具体项目的需要,而又不破坏整体架构设计,用户甚至可以在Pipeline中同时选择多个异构存储提供支持。下面分别对四个抽象层进行解读。
1)统一数据采集平台
统一数据采集平台,既可以支持不同数据源的全量抽取,也可以支持增强抽取。其中对于业务数据库的增量抽取会选择读取数据库日志,以减少对业务库的读取压力。平台还可以对抽取的数据进行统一处理,然后以统一格式发布到数据总线上。这里我们选择一种自定义的标准化统一消息格式UMS(Unified Message Schema)做为 统一数据采集平台和统一流式处理平台之间的数据层面协议。
UMS自带Namespace信息和Schema信息,这是一种自定位自解释消息协议格式,这样做的好处是:
整个架构无需依赖外部元数据管理平台;
消息和物理媒介解耦(这里物理媒介指如Kafka的Topic, Spark Streaming的Stream等),因此可以通过物理媒介支持多消息流并行,和消息流的自由漂移。
平台也支持多租户体系,和配置化简单处理清洗能力。
2)统一流式处理平台
统一流式处理平台,会消费来自数据总线上的消息,可以支持UMS协议消息,也可以支持普通JSON格式消息。同时,平台还支持以下能力:
支持可视化/配置化/SQL化方式降低流式逻辑开发/部署/管理门槛
支持配置化方式幂等落入多个异构目标库以确保数据的最终一致性
支持多租户体系,做到项目级的计算资源/表资源/用户资源等隔离
3)统一计算服务平台
统一计算服务平台,是一种数据虚拟化/数据联邦的实现。平台对内支持多异构数据源的下推计算和拉取混算,也支持对外的统一服务接口(JDBC/REST)和统一查询语言(SQL)。由于平台可以统一收口服务,因此可以基于平台打造统一元数据管理/数据质量管理/数据安全审计/数据安全策略等模块。平台也支持多租户体系。
4)统一数据可视化平台
统一数据可视化平台,加上多租户和完善的用户体系/权限体系,可以支持跨部门数据从业人员的分工协作能力,让用户在可视化环境下,通过紧密合作的方式,更能发挥各自所长来完成数据平台最后十公里的应用。
以上是基于整体模块架构之上,进行了统一抽象设计,并开放存储选项以提高灵活性和需求适配性。这样的RTDP平台设计,体现了现代数仓的实时化/虚拟化/平民化/协作化等能力,并且覆盖了端到端的OLPP数据流转链路。
具体问题和解决思路
下面我们会基于PB-S的整体架构设计,分别从不同维度讨论这个设计需要面对的问题考量和解决思路。
功能考量主要讨论这样一个问题:实时Pipeline能否处理所有ETL复杂逻辑?
我们知道,对于Storm/Flink这样的流式计算引擎,是按每条处理的;对于Spark Streaming流式计算引擎,按每个mini-batch处理;而对于离线跑批任务来说,是按每天数据进行处理的。因此处理范围是数据的一个维度(范围维度)。
另外,流式处理面向的是增量数据,如果数据源来自关系型数据库,那么增量数据往往指的是增量变更数据(增删改,revision);相对的批量处理面向的则是快照数据(snapshot)。因此展现形式是数据的另一个维度(变更维度)。
单条数据的变更维度,是可以投射收敛成单条快照的,因此变更维度可以收敛成范围维度。所以流式处理和批量处理的本质区别在于,面对的数据范围维度的不同,流式处理单位为“有限范围”,批量处理单位为“全表范围”。“全表范围”数据是可以支持各种SQL算子的,而“有限范围”数据只能支持部分SQL算子。
复杂的ETL并不是单一算子,经常会是由多个算子组合而成,由上可以看出单纯的流式处理并不能很好的支持所有ETL复杂逻辑。那么如何在实时Pipeline中支持更多复杂的ETL算子,并且保持时效性?这就需要“有限范围”和“全表范围”处理的相互转换能力。
设想一下:流式处理平台可以支持流上适合的处理,然后实时落不同的异构库,计算服务平台可以定时批量混算多源异构库(时间设定可以是每隔几分钟或更短),并将每批计算结果发送到数据总线上继续流转,这样流式处理平台和计算服务平台就形成了计算闭环,各自做擅长的算子处理,数据在不同频率触发流转过程中进行各种算子转换,这样的架构模式理论上即可支持所有ETL复杂逻辑。
2)质量考量
上面的介绍也引出了两个主流实时数据处理架构:Lambda架构和Kappa架构,具体两个架构的介绍网上有很多资料,这里不再赘述。Lambda架构和Kappa架构各有其优劣势,但都支持数据的最终一致性,从某种程度上确保了数据质量,如何在Lambda架构和Kappa架构中取长补短,形成某种融合架构,这个话题会在其他文章中详细探讨。
当然数据质量也是个非常大的话题,只支持重跑和回灌并不能完全解决所有数据质量问题,只是从技术架构层面给出了补数据的工程方案。关于大数据数据质量问题,我们也会起一个新的话题讨论。
3)稳定考量
这个话题涉及但不限于以下几点,这里简单给出应对的思路:
高可用HA
整个实时Pipeline链路都应该选取高可用组件,确保理论上整体高可用;在数据关键链路上支持数据备份和重演机制;在业务关键链路上支持双跑融合机制
SLA保障
在确保集群和实时Pipeline高可用的前提下,支持动态扩容和数据处理流程自动漂移
弹性反脆弱
? 基于规则和算法的资源弹性伸缩
? 支持事件触发动作引擎的失效处理
监控预警
集群设施层面,物理管道层面,数据逻辑层面的多方面监控预警能力
自动运维
能够捕捉并存档缺失数据和处理异常,并具备定期自动重试机制修复问题数据
上游元数据变更抗性
?上游业务库要求兼容性元数据变更
? 实时Pipeline处理显式字段
4)成本考量
这个话题涉及但不限于以下几点,这里简单给出应对的思路:
人力成本
通过支持数据应用平民化降低人才人力成本
资源成本
通过支持动态资源利用降低静态资源占用造成的资源浪费
运维成本
通过支持自动运维/高可用/弹性反脆弱等机制降低运维成本
试错成本
通过支持敏捷开发/快速迭代降低试错成本
5)敏捷考量
敏捷大数据是一整套理论体系和方法学,在前文已有所描述,从数据使用角度来看,敏捷考量意味着:配置化,SQL化,平民化。
6)管理考量
数据管理也是一个非常大的话题,这里我们会重点关注两个方面:元数据管理和数据安全管理。如果在现代数仓多数据存储选型的环境下统一管理元数据和数据安全,是一个非常有挑战的话题,我们会在实时Pipeline上各个环节平台分别考虑这两个方面问题并给出内置支持,同时也可以支持对接外部统一的元数据管理平台和统一数据安全策略。
以上是我们探讨的大数据实时分析平台PB-S的设计方案。

阅读全文

与vertica中如何修改表数据相关的资料

热点内容
如何批量复制重复数据 浏览:569
自贡大安市场猪肉多少钱一斤 浏览:552
平顶山宠物市场在哪里 浏览:623
食品代理商如何做好 浏览:285
外汇交易要学会哪些技术 浏览:658
什么市场下载的游戏内存很小 浏览:486
手机技术含量最高的是什么企业 浏览:321
直通车代理需要什么 浏览:229
国家什么时间放开信息垄断 浏览:856
咔咔酸奶有哪些产品 浏览:190
微信群信息时间间隔多久显示 浏览:408
如何使用stc下载程序 浏览:686
vivoxplay5用什么数据线 浏览:17
德国先进技术有哪些 浏览:672
炒股三成技术是什么意思 浏览:392
有数据如何做分析图 浏览:519
双方交易受益怎么处理 浏览:790
如何运用已有数据进行创新 浏览:379
苹果跟安卓怎么互导数据 浏览:327
单位人事代理人员工资怎么样 浏览:164