如果说Hive是离线数据仓库的代表,那么Greenplum就是MPP数据库的代表。离线数据仓库时代,以Hive为核心的数据仓库席卷了数据仓库市场,几乎成为离线数据仓库的代名词。然而,Hive的查询能力非常弱,通常需要其他计算引擎的协助才能完成OLAP查询。
具体来说,Hive数据仓库中的查询引擎主要有以下几个选项
Spark支持需要启动ThriftServer的SQL查询。它不稳定,查询速度通常为几秒到几分钟。
Impala是CDH公司发布的产品,一般使用在CDH上,它的查询速度比Spark更快,并且是用C++开发的,很难安装在CDH以外的上。
Presto和Hive一样,也是Facebook开源的,但其语法与Hive不兼容。查询速度也比较快,基于MPP架构。
Kylin是一款中国开源MOLAP软件,基于Spark引擎预计算Hive数据并将其存储在Hbase或其他存储中。查询速度非常快且可靠,通常不到10秒。但该模型构建复杂,使用和操作不方便。
Clickhouse是目前使用最广泛的OLAP查询软件,集成了各大数据库最好的引擎,独立于Hadoop,需要同步迁移Hive数据,支持很少的join。
Greenplum支持行存储和列存储,其开发和使用与传统数据库几乎相同。查询速度通常为1至10秒。
由于当时认知水平有限,多丽丝没有被纳入比较之列。
根据我的经验,最大的典型业务查询表的数据量不到1亿条。我们建议您直接使用Greenplum数据库作为您的数据仓库或数据中心,而不是构建Hive数据仓库。当数据量超过1亿时,HiveonSpark实现了更好的批处理,降低了硬件成本,但此时Greenplum就成为数据应用层的可选数据库之一。
如果您使用Greenplum作为ADS存储,则需要将ADS图层数据批量导入Greenplum。这就是GPLoad发挥重要作用的地方。
GPLoad是Greenplum数据库提供的一个用于并行数据加载的工具。GPLoad的实现原理是来自Greenplum数据库的一组指令,使用可读外部表和并行文件服务gpfdist加载数据。您可以使用配置文件通过设置数据格式、文件位置等参数来创建外部表。GPLoad命令加载以YAML格式定义的配置文件,然后执行插入、更新和合并操作,将数据加载到目标数据库表中。
GPLoad的控制文件以YAML11文档格式编写,因此它们必须是有效的YAML格式。YAML配置文件格式要求如下
VERSION:1001DATABASE:opsUSER:gpadminHOST:mdw-1PORT:5432GPLOAD:INPUT:-SOURCE:LOCAL_HOSTNAME:-etl1-1-etl1-2-etl1-3-etl1-48081FILE33360-/var/load/data/-COLUMNS:-名称文本-金额float4-类别文本-descr:文本-date:日期-FORMAT:文本-DELIMITER:39;-ERROR_LIMIT:25-LOG_ERRORS:TrueOUTPUT:-TABLE:应付费用-MODE:INSERTSQL:-BEFORE:39;开始34;-之后39;结束34;接下来,我们将模板脚本传递给shell,该程序实现了HDFS数据批量导入到Greenplum中。我们在2020年上半年实现了这个脚本,它仍然在生产中可靠运行。
首先,定义一个模板yml文件gpload_cfg_templateyml,内容如下
版本1001DATABASE:xxxUSER:xxxHOST:192168530PORT:5432GPLOAD:INPUT:-SOURCE:LOCAL_HOSTNAME:-192168510PORT:12000PORT_RANGE33360[12000,13000]FILE:-/data/hdsp/infra/ETL_HOME/shell/tempdata//-FORMAT:文本-HEADER:false-DELIMITER:39-NULL_AS:39;OUTPUT:-TABLE:-MODE:INSERTPRELOAD:-TRUNCATE:trueSQL:其次,创建shell脚本hive2gp_gploadsh来实现以下功能。
复制yaml模板,根据shell脚本参数重命名数据库表和表名。
在线从HDFS下载文件到本地计算机,数据文件必须是TEXT格式。
运行gpload命令将数据加载到Greenplum数据库中。
删除本地文件。外壳代码是
配置无密码登录使用~pgpassif[!-n34;然后回显34;表名=$2;fisource~/bash_profile;shellpath=/data/hdsp/infra/ETL_HOME/shellyml_file$/gpload_yml/$$ymlif[!-f$];cp$shellpath/gpload_yml/gpload_cfg_templateyml$sed-i34;$yml_file;fi34;从hdfs导入hdfs文件。-gethdfs://hdp01/data/apps/hive/warehouse/cabbeen_dwdb/$tablename$shellpath/tempdata/$$echo34;34;Y-m-d-H-M-S34;[$$]:加载成功!这次,删除解压的文件以节省空间。rm-rf$shellpath/tempdata/$$以下是调用脚本的方法
shhive2gp_gploadshdbnametablename使用此方法需要满足以下先决条件
1Hive表数据为文本格式,分隔符默认分隔符u0001。
2需要安装gpload,也可以直接复制Greenplum安装包来配置环境变量。
3数据库用户需要有创建表的权限。
4gp和hiveschema和表的映射关系相同,字段顺序也必须一致。
Hive数据仓库面试通常会询技能、经验和项目相关的题。
由于Hive是数据仓库和数据处理领域应用广泛的技术,应用广泛,因此企业对人才的需求量很高,对候选人的技术技能和项目经验要求也很高。同时,我们也关注面试官的学习能力和解决题的能力。
面试所需的材料和知识还包括基础知识、数据存储和处理、性能优化、设计和开发等。
一、rhythmhive要挂梯吗?
我不想
总的来说,RhythmHive的发展是通过经验的积累和任务的完成来实现的。1-Rhythmhive进阶需要积累经验并完成任务。2-通过积累经验,Rhythmhive可以提高你的水平和技能,让你更轻松地完成任务,提高你的成功率。同时,完成任务是获得经验的重要途径,所以完成任务的次数对你的晋升也有很大的影响。3-除了积累经验、完成任务之外,参加培训、互动也是提升晋升的有效途径。通过培训,你可以获得更多的技能和知识,提高你的认知能力,通过表达意见、参与讨论等相互交流,提高你的沟通表达能力和社交能力。
二、hive和mysql哪个难?
Hive和MySQL是不同的数据库管理系统,难度因人而异。总的来说,Hive比MySQL更难学习和使用。Hive是一个基于Hadoop的数据仓库工具。要使用Hive,您必须了解Hadoop生态系统和大数据处理概念。它使用HiveQL查询语言,与SQL类似,但也有一些区别。Hive还要求您配置和管理Hadoop集群。相比之下,MySQL是传统的关系型数据库,更容易上手。它使用SQL查询语言,具有相对简单的语法,并提供广泛的文档和社区支持。总体而言,对于没有大数据和Hadoop经验的人来说,学习和使用Hive可能会更加困难。
对于hive使用经验和一些hive 使用的相关内容,本文作了详细解,希望能帮到诸位。
No Comment