叠词句子大全套路 形容妈妈的叠词

国学综合

叠词句子大全套路 形容妈妈的叠词

天寂轮回围观:℉更新时间:05-15 20:26

你现在阅读的是一篇关于叠词句子大全套路的文章,里面有丰富多彩的内容,还有给你准备形容妈妈的叠词和叠词句子大全套路的精彩内容哦。

叠词句子大全套路 形容妈妈的叠词

叠词句子大全套路 形容妈妈的叠词

一年级下册了,语文中关于句子仿写的内容,孩子们都学习得如何?可以很流畅正确的写出来吗?如果还不可以,那么请一定要好好看看这份资料了。

1、你姓什么?我姓李。什么李?木子李。

这个仿写句子,主要是利用拆字的方法,来说自己的姓氏。

仿写:你姓什么?我姓章。什么章?立早章。

2、双人徐,言午许。

这个仿写句子,主要是利用说偏旁法来说说自己的姓氏。

仿写:文刀刘,耳东陈。

3、小小青蛙大眼睛。

这个句式是叠词+事物+特点,要体现用能体现事物的叠词来形容食物,然后说出该事物的另一个特点。

仿写:高高长颈鹿长脖子。

仿写:小小老鼠细尾巴。

仿写:大大河马宽嘴巴。

4、吃水不忘挖井人,时刻想念毛主席。

仿写:成才不忘启蒙师,时刻想念好老师。

仿写:长大不忘慈母恩,时刻想念老母亲。

5、我多想去看看。

仿写:我多想快点儿长大。

仿写:我多想成为一名画家。

仿写:我多想去北京看看。

6、正和小伙伴们玩着跳房子,操场上却响起了上课铃声。

“……却……”前面正进行一种情况,表示转折,突然出现与前面不同的情况。

仿写:我睡得正香,窗外却响起了一阵吵闹声。

仿写:我正津津有味地看着喜欢的动画片,妈妈却叫我去看书。

7、高山、田野、街道、校园,到处一片清凉。

仿写:草地、树林、田野、山谷,到处一片生机勃勃。

8、小公鸡找到了许多虫子,吃得很欢。

“得”用在动词或形容词后,连接表示结果或程度的补语。

仿写:小女孩找不到自己的妈妈,急得直哭。

仿写:小朋友在做游戏,玩得很欢。

9、树很孤单,喜鹊也很孤单。

“……也……”表示同一事物具有两种现象或两种事物具有相同的现象。

仿写:爸爸喜欢看书,也喜欢打羽毛球。

仿写:我很高兴,妹妹也很高兴。

10、可我一看窗外心就乱跳。

“一……就……”表示一件事情发生之后紧接着发生另一件事情,这两件事情在时间上紧密相连。

仿写:我一听见雷声就害怕。

仿写:我一考试就紧张。

仿写:我一回家就做作业。

仿写:妈妈一有空就打扫房间。

11、粽子吃起来又黏又甜。

“又~又~”用又字把两个特点连接起来,使句子更加生动。

仿写:十五的月亮又大又圆。

仿写:藤上的青瓜又细又长。

仿写:树上的苹果又大又圆,吃起来又脆又甜。

12、如果我提着它,走到桥上,把水洒下来,那不就是我在下雨吗?

“如果……”假设一种情况,“不就……”说明在假设的情况下产生的结果。

仿写:如果下雪了,我们不就可以打雪仗了吗?

仿写:如果我学习进步了,那不就可以得到妈妈的表扬吗?

13、蝴蝶花间做迷藏。

这个句式是谁在哪里干什么三部分组成的。

仿写:青蛙田间捉害虫。

仿写:小羊山坡吃青草。

仿写:小鸟枝头高声唱。

14、荷叶圆圆的,绿绿的。

这个句子运用叠词,写出了事物两方面的特点。

仿写:月儿弯弯的,小小的。

仿写:太阳圆圆的,大大的。

仿写:草芽尖尖的,绿绿的。

仿写:水珠圆圆的,亮亮的。

15、我正忙着捉虫子呢!

这个句式是谁正忙着干什么呢!写人物正在做某事。

仿写:我正忙着写作业呢!

仿写:老师正忙着批改作业呢!

仿写:同学们正忙着打扫卫生呢!

仿写:妈妈正忙着准备晚饭呢!

好了内容预览到这里,需要电子版,关注头条号,私信:资料

关于列数字的句子(数仓)

在企业中使用Hive构建离线数仓是一种十分普遍的方案。尽管Hive的使用场景是通过批处理的方式处理大数据,通常对处理时间不敏感。但是在资源有限的情况下,我们需要关注Hive的性能调优,从而方便数据的快速产出。

HQL提供了两个查看查询性能的工具:explain与analyze,除此之外Hive的日志也提供了非常详细的信息,方便查看执行性能和报错排查。

善用explain语句

explain语句是查看执行计划经常使用的一个工具,可以使用该语句分析查询执行计划,具体使用语法如下:

EXPLAIN [FORMATTED|EXTENDED|DEPENDENCY|AUTHORIZATION] hql_query

上面的执行语句中,有4个可选的关键字,其具体含义如下:

一个典型的查询执行计划主要包括三部分,具体如下:

举个栗子

假设有一张表:

CREATE TABLE employee_partitioned( name string, work_place ARRAY<string>, gender_age STRUCT<gender:string,age:int>, skills_score MAP<string,int>, depart_title MAP<STRING,ARRAY<STRING>>)PARTITIONED BY (Year INT, Month INT)ROW FORMAT DELIMITEDFIELDS TERMINATED BY '|'COLLECTION ITEMS TERMINATED BY ','MAP KEYS TERMINATED BY ':';

查看执行计划:

EXPLAINSELECT gender_age.gender, count(*)FROM employee_partitionedWHERE YEAR=2023GROUP BY gender_age.genderLIMIT 2;

执行计划概览:

执行计划详细信息:

STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 Stage-0 depends on stages: Stage-2STAGE PLANS: Stage: Stage-1 Map Reduce Map Operator Tree: TableScan alias: employee_partitioned filterExpr: (year = 2023) (type: boolean) Statistics: Num rows: 1 Data size: 227 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: gender_age (type: struct<gender:string,age:int>) outputColumnNames: gender_age Statistics: Num rows: 1 Data size: 227 Basic stats: PARTIAL Column stats: NONE Reduce Output Operator key expressions: gender_age.gender (type: string) sort order: + Map-reduce partition columns: rand() (type: double) Statistics: Num rows: 1 Data size: 227 Basic stats: PARTIAL Column stats: NONE Reduce Operator Tree: Group By Operator aggregations: count() keys: KEY._col0 (type: string) mode: partial1 outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 227 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false table: input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe Stage: Stage-2 Map Reduce Map Operator Tree: TableScan Reduce Output Operator key expressions: _col0 (type: string) sort order: + Map-reduce partition columns: _col0 (type: string) Statistics: Num rows: 1 Data size: 227 Basic stats: COMPLETE Column stats: NONE value expressions: _col1 (type: bigint) Reduce Operator Tree: Group By Operator aggregations: count(VALUE._col0) keys: KEY._col0 (type: string) mode: final outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 227 Basic stats: COMPLETE Column stats: NONE Limit Number of rows: 2 Statistics: Num rows: 1 Data size: 227 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false Statistics: Num rows: 1 Data size: 227 Basic stats: COMPLETE Column stats: NONE table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator limit: 2 Processor Tree: ListSink

巧用analyze语句

analyze语句可以收集一些详细的统计信息,比如表的行数、文件数、数据的大小等信息。这些统计信息作为元数据存储在hive的元数据库中。Hive支持表、分区和列级别的统计(与Impala类似),这些信息作为Hive基于成本优化策略(Cost-Based Optimizer (CBO))的输入,该优化器的主要作用是选择耗费最小系统资源的查询计划。

-- 不使用NOSCAN关键字hive> ANALYZE TABLE user_behavior COMPUTE STATISTICS;...Table default.user_behavior stats: [numFiles=1, numRows=10, totalSize=229, rawDataSize=219]Time taken: 23.504 seconds-- 使用NOSCAN关键字hive> ANALYZE TABLE user_behavior COMPUTE STATISTICS NOSCAN;Table default.user_behavior stats: [numFiles=1, numRows=10, totalSize=229, rawDataSize=219]Time taken: 0.309 seconds
-- 收集具体分区的统计信息hive> ANALYZE TABLE employee_partitioned PARTITION(year=2023, month=06) COMPUTE STATISTICS;...Partition default.employee_partitioned{year=2023, month=06} stats: [numFiles=1, numRows=0, totalSize=227, rawDataSize=0]Time taken: 19.283 seconds-- 收集所有分区的统计信息hive> ANALYZE TABLE employee_partitioned PARTITION(year, month) COMPUTE STATISTICS;...Partition default.employee_partitioned{year=2023, month=06} stats: [numFiles=1, numRows=0, totalSize=227, rawDataSize=0]Time taken: 17.528 seconds
hive> ANALYZE TABLE user_behavior COMPUTE STATISTICS FOR COLUMNS user_id ;
-- 查看一个分区的统计信息hive> DESCRIBE FORMATTED employee_partitioned PARTITION(year=2023, month=06);...Partition Parameters: COLUMN_STATS_ACCURATE true numFiles 1 numRows 0 rawDataSize 0 totalSize 227 transient_lastDdlTime 1591437967 ...-- 查看一张表的统计信息hive> DESCRIBE FORMATTED employee_partitioned;...Table Parameters: numPartitions 1 transient_lastDdlTime 1591431482 ...-- 查看某列的统计信息hive> DESCRIBE FORMATTED user_behavior.user_id;

常用日志分析

日志提供了job运行的详细信息,通过查看日志信息,可以分析出导致作业执行瓶颈的问题,主要包括两种类型的日志:系统日志和作业日志。

系统日志包含了Hive运行时的状态等信息,可以通过{HIVE_HOME}/conf/hive-log4j.properties文件进行配置,主要的配置选项有:

hive.root.logger=WARN,DRFA ## 日志级别hive.log.dir=/tmp/${user.name} ## 日志路径hive.log.file=hive.log ## 日志名称

也可以通过Hive cli命令行设置日志级别:$hive --hiveconf hive.root.logger=DEBUG,console这种方式只能在当前会话生效。

作业日志所包含的作业信息通常是由YARN管理的,可以通过yarn logs -applicationId <application_id>命令查看作业日志。

分区表

值得注意的是,分区字段的选择是影响查询性能的重要因素,尽量避免层级较深的分区,这样会造成太多的子文件夹。一些常见的分区字段可以是:

比如year、month、day或者hour,当表中存在时间或者日期字段时,可以使用些字段。

比如国家、省份、城市等

比如部门、销售区域、客户等等

分桶表

与分区表类似,分桶表的组织方式是将HDFS上的文件分割成多个文件。分桶可以加快数据采样,也可以提升join的性能(join的字段是分桶字段),因为分桶可以确保某个key对应的数据在一个特定的桶内(文件),所以巧妙地选择分桶字段可以大幅度提升join的性能。通常情况下,分桶字段可以选择经常用在过滤操作或者join操作的字段。

索引

创建索引是关系型数据库性能调优的常见手段,在Hive中也不例外。Hive从0.7版本开始支持索引,使用索引相比全表扫描而言,是一种比较廉价的操作,Hive中创建索引的方式如下:

CREATE INDEX idx_user_id_user_behaviorON TABLE user_behavior (user_id)AS 'COMPACT'WITH DEFERRED REBUILD;

上面创建的是COMPACT索引,存储的是索引列与其对应的block id的pair对。除了此种索引外,Hive还支持位图索引(BITMAP),使用方式如下:

CREATE INDEX idx_behavior_user_behaviorON TABLE user_behavior (behavior)AS 'BITMAP'WITH DEFERRED REBUILD;

上面创建的索引时,使用了WITH DEFERRED REBUILD选项,该选项可以避免索引立即被创建,当建立索引时,可以使用LTER...REBUILD命令(见下面的示例),值得注意的是:当基表(被创建索引的表)发生变化时,该命令需要被再次执行以便更新索引到最新的状态。

ALTER INDEX idx_user_id_user_behavior ON user_behavior REBUILD;

一旦索引创建成功,会生成一张索引表,表的名称格式为:数据库名__表名_索引名__,可以使用下面的命令查看索引:

hive> SHOW TABLES '*idx*';OKdefault__user_behavior_idx_user_id_user_behavior__Time taken: 0.044 seconds, Fetched: 1 row(s)

索引表包含索引列、HDFS的文件URI以及每行的偏移量,可以通过下面命令查看:

-- 查看索引表结构hive> DESC default__user_behavior_idx_user_id_user_behavior__;OKuser_id int _bucketname string _offsets array<bigint> Time taken: 0.109 seconds, Fetched: 3 row(s)-- 查看索引表内容hive> SELECT * FROM default__user_behavior_idx_user_id_user_behavior__;OK9 hdfs://cdh03:8020/user/hive/warehouse/user_behavior/userbehavior.csv [181]7 hdfs://cdh03:8020/user/hive/warehouse/user_behavior/userbehavior.csv [136]1 hdfs://cdh03:8020/user/hive/warehouse/user_behavior/userbehavior.csv [0]6 hdfs://cdh03:8020/user/hive/warehouse/user_behavior/userbehavior.csv [113]5 hdfs://cdh03:8020/user/hive/warehouse/user_behavior/userbehavior.csv [90]10 hdfs://cdh03:8020/user/hive/warehouse/user_behavior/userbehavior.csv [205]4 hdfs://cdh03:8020/user/hive/warehouse/user_behavior/userbehavior.csv [66]8 hdfs://cdh03:8020/user/hive/warehouse/user_behavior/userbehavior.csv [158]3 hdfs://cdh03:8020/user/hive/warehouse/user_behavior/userbehavior.csv [44]2 hdfs://cdh03:8020/user/hive/warehouse/user_behavior/userbehavior.csv [22]Time taken: 0.28 seconds, Fetched: 10 row(s)

如果要删除索引,可以使用DROP INDEX命令,如下:

DROP INDEX idx_user_id_user_behavior ON user_behavior;

使用skewed/temporary表

Hive除了可以使用内部表、外部表、分区表、分桶表之外,也可以使用skewed/temporary表,也可以在一定程度上提升性能。

Hive从0.10版本之后开始支持skewed表,该表可以缓解数据倾斜。这种表之所以能够提升性能,是因为可以自动将造成数据倾斜的数据分割成不同的文件或者路径。使用示例如下:

CREATE TABLE sample_skewed_table (dept_no int, dept_name string) SKEWED BY (dept_no) ON (1000, 2000);-- 指定数据倾斜字段

另外,还可以使用temporary临时表,将公共使用部分的数据集建成临时表,同时临时表支持SSD或memory的数据存储,从而可以提升性能。

文件格式

Hive支持TEXTFILE, SEQUENCEFILE, AVRO, RCFILE, ORC,以及PARQUET文件格式,可以通过两种方式指定表的文件格式:

一旦存储文件格式为TEXT的表被创建,可以直接通过load命令装载一个text类型的文件。我们可以先使用此命令将数据装载到一张TEXT格式的表中,然后在通过INSERT OVERWRITE/INTO TABLE ... SELECT命令将数据装载到其他文件格式的表中。

TEXT, SEQUENCE和 AVRO文件是面向行的文件存储格式,不是最佳的文件格式,因为即便是只查询一列数据,使用这些存储格式的表也需要读取完整的一行数据。另一方面,面向列的存储格式(RCFILE, ORC, PARQUET)可以很好地解决上面的问题。关于每种文件格式的说明,如下:

创建表时的默认文件格式,数据被存储成文本格式。文本文件可以被分割和并行处理,也可以使用压缩,比如GZip、LZO或者Snappy。然而大部分的压缩文件不支持分割和并行处理,会造成一个作业只有一个mapper去处理数据,使用压缩的文本文件要确保文件的不要过大,一般接近两个HDFS块的大小。

key/value对的二进制存储格式,sequence文件的优势是比文本格式更好压缩,sequence文件可以被压缩成块级别的记录,块级别的压缩是一个很好的压缩比例。如果使用块压缩,需要使用下面的配置:set hive.exec.compress.output=true; set io.seqfile.compression.type=BLOCK

二进制格式文件,除此之外,avro也是一个序列化和反序列化的框架。avro提供了具体的数据schema。

全称是Record Columnar File,首先将表分为几个行组,对每个行组内的数据进行按列存储,每一列的数据都是分开存储,即先水平划分,再垂直划分。

全称是Optimized Row Columnar,从hive0.11版本开始支持,ORC格式是RCFILE格式的一种优化的格式,提供了更大的默认块(256M)

另外一种列式存储的文件格式,与ORC非常类似,与ORC相比,Parquet格式支持的生态更广,比如低版本的impala不支持orc格式

压缩

压缩技术可以减少map与reduce之间的数据传输,从而可以提升查询性能,关于压缩的配置可以在hive的命令行中或者hive-site.xml文件中进行配置

SET hive.exec.compress.intermediate=true

开启压缩之后,可以选择下面的压缩格式:

关于压缩的编码器可以通过mapred-site.xml, hive-site.xml进行配置,也可以通过命令行进行配置,比如:

-- 中间结果压缩SET hive.intermediate.compression.codec=org.apache.hadoop.io.compress.SnappyCodec-- 输出结果压缩SET hive.exec.compress.output=true;SET mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodc

存储优化

经常被访问的数据称之为热数据,可以针对热数据提升查询的性能。比如通过增加热数据的副本数,可以增加数据本地性命中的可能性,从而提升查询性能,当然这要与存储容量之间做出权衡。

$ hdfs dfs -setrep -R -w 4 /user/hive/warehouse/employee

注意,大量的小文件或者冗余副本会造成namenode节点内存耗费,尤其是大量小于HDFS块大小的文件。HDSF本身提供了应对小文件的解决方案:

对于Hive而言,可以使用下面的配置将查询结果的文件进行合并,从而避免产生小文件:

当一个作业的输出结果文件的大小小于hive.merge.smallfiles.avgsize设定的阈值,并且hive.merge.mapfiles与hive.merge.mapredfiles设置为true,Hive会额外启动一个mr作业将输出小文件合并成大文件。

本地模式

当Hive处理的数据量较小时,启动分布式去处理数据会有点浪费,因为可能启动的时间比数据处理的时间还要长,从Hive0.7版本之后,Hive支持将作业动态地转为本地模式,需要使用下面的配置:

SET hive.exec.mode.local.auto=true; -- 默认 falseSET hive.exec.mode.local.auto.inputbytes.max=50000000;SET hive.exec.mode.local.auto.input.files.max=5; -- 默认 4

一个作业只要满足下面的条件,会启用本地模式

JVM重用

默认情况下,Hadoop会为为一个map或者reduce启动一个JVM,这样可以并行执行map和reduce。当map或者reduce是那种仅运行几秒钟的轻量级作业时,JVM启动进程所耗费的时间会比作业执行的时间还要长。Hadoop可以重用JVM,通过共享JVM以串行而非并行的方式运行map或者reduce。JVM的重用适用于同一个作业的map和reduce,对于不同作业的task不能够共享JVM。如果要开启JVM重用,需要配置一个作业最大task数量,默认值为1,如果设置为-1,则表示不限制:

SET mapreduce.job.jvm.numtasks=5;

这个功能的缺点是,开启JVM重用将一直占用使用到的task插槽,以便进行重用,直到任务完成后才能释放。如果某个“不平衡的”job中有某几个reduce task执行的时间要比其他Reduce task消耗的时间多的多的话,那么保留的插槽就会一直空闲着却无法被其他的job使用,直到所有的task都结束了才会释放。

并行执行

Hive的查询通常会被转换成一系列的stage,这些stage之间并不是一直相互依赖的,所以可以并行执行这些stage,可以通过下面的方式进行配置:

SET hive.exec.parallel=true; -- 默认falseSET hive.exec.parallel.thread.number=16; -- 默认8

并行执行可以增加集群资源的利用率,如果集群的资源使用率已经很高了,那么并行执行的效果不会很明显。

Fetch模式

Fetch模式是指Hive中对某些情况的查询可以不必使用MapReduce计算。可以简单地读取表对应的存储目录下的文件,然后输出查询结果到控制台。在开启fetch模式之后,在全局查找、字段查找、limit查找等都启动mapreduce,通过下面方式进行配置:

hive.fetch.task.conversion=more

JOIN优化

普通join

普通join又称之为reduce端join,是一种最基本的join,并且耗时较长。对于大表join小表,需要将大表放在右侧,即小表join大表。新版的hive已经对小表JOIN大表和大表JOIN小表进行了优化。小表放在左边和右边已经没有明显区别。

map端join

map端join适用于当一张表很小(可以存在内存中)的情况,即可以将小表加载至内存。Hive从0.7开始支持自动转为map端join,具体配置如下:

SET hive.auto.convert.join=true; -- hivev0.11.0之后默认trueSET hive.mapjoin.smalltable.filesize=600000000; -- 默认 25mSET hive.auto.convert.join.noconditionaltask=true; -- 默认true,所以不需要指定map join hintSET hive.auto.convert.join.noconditionaltask.size=10000000; -- 控制加载到内存的表的大小

一旦开启map端join配置,Hive会自动检查小表是否大于hive.mapjoin.smalltable.filesize配置的大小,如果大于则转为普通的join,如果小于则转为map端join。

关于map端join的原理,如下图所示:

首先,Task A(客户端本地执行的task)负责读取小表a,并将其转成一个HashTable的数据结构,写入到本地文件,之后将其加载至分布式缓存。

然后,Task B任务会启动map任务读取大表b,在Map阶段,根据每条记录与分布式缓存中的a表对应的hashtable关联,并输出结果

注意:map端join没有reduce任务,所以map直接输出结果,即有多少个map任务就会产生多少个结果文件。

Bucket map join

bucket map join是一种特殊的map端join,主要区别是其应用在分桶表上。如果要开启分桶的map端join,需要开启一下配置:

SET hive.auto.convert.join=true;SET hive.optimize.bucketmapjoin=true; -- 默认false

在一个分桶的map端join中,所有参与join的表必须是分桶表,并且join的字段是分桶字段(通过CLUSTERED BY指定),另外,对于大表的分桶数量必须是小表分桶数量的倍数。

与普通的join相比,分桶join仅仅只读取所需要的桶数据,不需要全表扫描。

Sort merge bucket (SMB) join

SMBjoin应用与分桶表,如果两张参与join的表是排序的,并且分桶字段相同,这样可以使用sort-merge join,其优势在于不用把小表完全加载至内存中,会读取两张分桶表对应的桶,执行普通join(包括map与reduce)配置如下:

SET hive.input.format=org.apache.hadoop.hive.ql.io.BucketizedHiveInputFormat;SET hive.auto.convert.sortmerge.join=true;SET hive.optimize.bucketmapjoin=true;SET hive.optimize.bucketmapjoin.sortedmerge=true;SET hive.auto.convert.sortmerge.join.noconditionaltask=true;

Sort merge bucket map (SMBM) join

SMBM join是一种特殊的bucket map join,与map端join不同的是,不用将小表的所有数据行都加载至内存中。使用SMBM join,参与join的表必须是排序的,有着相同的分桶字段,并且join字段与分桶字段相同。配置如下:

SET hive.auto.convert.join=true;SET hive.auto.convert.sortmerge.join=trueSET hive.optimize.bucketmapjoin=true;SET hive.optimize.bucketmapjoin.sortedmerge=true;SET hive.auto.convert.sortmerge.join.noconditionaltask=true;SET hive.auto.convert.sortmerge.join.bigtable.selection.policy=org.apache.hadoop.hive.ql.optimizer.TableSizeBasedBigTableSelectorForAutoSMJ;

Skew join

当被处理的数据分布极其不均匀时,会造成数据倾斜的现象。Hive可以通过如下的配置优化数据倾斜的情况:

-- 默认false,如果数据倾斜,可以将其设置为trueSET hive.optimize.skewjoin=true;-- 默认为100000,如果key的数量大于配置的值,则超过的数量的key对应的数据会被发送到其他的reduce任务SET hive.skewjoin.key=100000;

执行引擎

Hive支持多种执行引擎,比如spark、tez。对于执行引擎的选择,会影响整体的查询性能。使用的配置如下:

SET hive.execution.engine=<engine>; -- <engine> = mr|tez|spark

优化器

与关系型数据库类似,Hive会在真正执行计算之前,生成和优化逻辑执行计划与物理执行计划。Hive有两种优化器:Vectorize(向量化优化器)与Cost-Based Optimization (CBO,成本优化器)。

向量化优化器

向量化优化器会同时处理大批量的数据,而不是一行一行地处理。要使用这种向量化的操作,要求表的文件格式为ORC,配置如下:

SET hive.vectorized.execution.enabled=true; -- 默认 false

成本优化器

Hive的CBO是基于apache Calcite的,Hive的CBO通过查询成本(有analyze收集的统计信息)会生成有效率的执行计划,最终会减少执行的时间和资源的利用,使用CBO的配置如下:

SET hive.cbo.enable=true; --从 v0.14.0默认trueSET hive.compute.query.using.stats=true; -- 默认falseSET hive.stats.fetch.column.stats=true; -- 默认falseSET hive.stats.fetch.partition.stats=true; -- 默认true

总结

本文主要介绍了Hive调优的基本思路。总共分为四部分,首先介绍了调优的基本工具使用(explain、analyze);接着从表设计层面介绍了一些优化策略(分区、分桶、索引);然后介绍了数据存储方面的优化(文件格式、压缩、存储优化);最后从作业层面介绍了优化的技巧(开启本地模式、JVM重用、并行执行、fetch模式、Join优化、执行引擎与优化器)。本文主要为Hive性能调优提供一些思路,在实际的操作过程中需要具体问题具体分析。总之一句话,重剑无锋,为作业分配合理的资源基本上可以满足大部分的情况,适合的就是最好的,没有必要追求狂拽酷炫的技巧,应该把更多的精力放在业务问题上,因为工具的存在的价值是为了解决业务问题的,切不可本末倒置。

关于列数字的句子(把多列数据合并为一列高阶表格函数详解)

Excel函数学习:悟空百问の015:详细解析把多列数据合并为一列数据的高阶函数

可能是上一课的课程重点是分摊了三种情况下的分列数据的合并,把最后一种高阶函数简单的说了下就结束了。有点烂尾了,刚好又有朋友指出了这一点,今天就来深入解析这个函数,没看懂的今天大饱眼福,来细细的解读这串代码。

本期重点

函数在此:

=IFERROR(OFFSET(XXB1!$A$1,MOD(ROW(XXB1!A1)-1,COUNTA(XXB1!A:A)),IF(INT((ROW(XXB1!A1)-0.1)/COUNTA(XXB1!A:A))<8,INT((ROW(XXB1!A1)-0.1)/COUNTA(XXB1!A:A)),"")),"")

效果展示:

效果展示

首先这串代码分为几个层次:

=IFERROR(函数A,"")

函数A=OFFSET(函数B,函数C,函数D,“”)

函数B=XXB1!$A$1

函数C=MOD(ROW(XXB1!A2)-1,COUNTA(XXB1!A:A))

函数D=IF(函数E<8,函数E,"")

函数E=INT((ROW(XXB1!A1)-0.1)/COUNTA(XXB1!A:A))

总的概括下此函数的逻辑:

创建一个以A1为起始的一个引用区域,横向执行函数E(每列获取非空单元格数的列值),纵向获取值为函数C(连续获取1-5,1-5的列值),最后呈现出来的结果就是把A列,B列,C列连续的获取在我们所需的A列中。

重点概述:

1.IFERROR函数解析

=IFERROR(函数A,"")

IFERROR函数正如其词义一样,就是判断错误函数,当函数正常时得函数所获得值,当函数错误时,获得第二参数值。这里要了解的地方就是IFERROR的结果是对或者错,所以当第一个参数是判断语句时,得到的答案是对错。

2.OFFSET函数解析

函数A=OFFSET(函数B,函数C,函数D,“”)

OFFSET函数,简单的来就是创建一个引用区域,然后包含四个参数ABCD,A代表的是这个区域的左上角第一个值,B是向下(正数)或者向上(负数)偏移的行数,C是向右(正数)或者向左(负数)偏移的列数,CD是获取的区域,1,1就是获取一个单元格,不写的时候默认是1,1,获取的是一个单元格内容。

简单实操一下获取一个名叫香港的美丽地方。

OFFSET函数解析

3.函数C解析

函数C=MOD(ROW(XXB1!A2)-1,COUNTA(XXB1!A:A))

这列先说MOD函数是求余数函数,两个参数分别是A和B。

A=ROW(XXB1!A2)-1

A求得的结果是每行的行值-1,获得一个列为123456的行值

B=COUNTA(XXB1!A:A)

B求得结果是获取A列的非空单元格的数量。

用A去取B的余数,获得的数组结果就成了:

1/N=1 2/N=2 3/M=3 直至 N/N=0

N+1/N=1 N+2/N=2 N+3/N=3 直至 N+N/N=0

获得结果是一个1至N然后0至N的循环结果,这就是后面要连续取行值循环做准备。

效果展示

4.函数D解析

函数D=IF(函数E<8,函数E,"")

这个简单来说就是判断抵达第八列,就结束,没到第八列就继续取值,直至第八列结束。

5.函数E解析

函数E=INT((ROW(XXB1!A1)-0.1)/COUNTA(XXB1!A:A))

INT函数是向下去最近一个整数,2.5INT取值是2,然后通过行值减去0.1除以本行的非控制的个数,获取的值就是一列有1111,2222,3333,4444,的循环数列,然后通过这个信息来向右进行偏移。获得我们需要的值。

函数效果

收尾

此篇是上一篇的精华解析版,讲述这个分列数据的整个单列数据的事宜。请大家细细阅读,好好学习。加油哦~

举例子的句子有哪些(一年级语文)

大家知道,语文是一门非常注重基础和积累的学科,所以不仅仅只是将书本上所讲的知识要掌握好以外,很多的课外知识也是需要去积累和学习的。尤其是低年级阶段,同学们学习的知识比较简单,时间也比较放松,所以孩子们对于语文的学习并不重视,导致到了高年级,成绩出现下滑和跟不上的现象。

今天老师整理了一年级语文“照样子写句子”专项练习,这也是同学们平时考试中比较容易出错的部分,虽然所占的分值比例不大,但是却考验了孩子们的语言组织能力,所以还是要多多练习,建议家长们可以为孩子收藏打印一份,让孩子利用空闲时间做一做,我相信这对于提高孩子的综合能力会有很大的帮助!

文末有word版完整高清资料获取的方法!

关于列数字的句子(从零开始学MySQL)

学习目标

SQL语句介绍

1.SQL语句定义

结构化查询语言(Structured Query Language)简称SQL,是==关系型数据库管理系统都需要遵循的规范==,是数据库认识的语句。

标准的SQL语句,它W3C组织制定的。

虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。

然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。

举例:

普通话:各数据库厂商都遵循的ISO标准。

方言:数据库特有的关键字。

2. SQL语句作用

3. SQL的分类

SQL是用来存取关系数据库的语言,具有查询、操纵、定义和控制关系型数据库的四方面功能。

3.1 数据定义语言:

简称DDL(Data Definition Language) 用来定义数据库对象:数据库,表,列等。 关键字:create,alter,drop等

3.2 数据操作语言:

简称DML(Data Manipulation Language) 用来对数据库中表的记录进行更新。 关键字:insert,delete,update等

3.3 数据查询语言:

简称DQL(Data Query Language) 用来查询数据库中表的记录。 关键字:select,from,where等

3.4 数据控制语言:

简称DCL(Data Control Language) 用来定义数据库的访问权限和安全级别,及创建用户。

注意:

如果把SQL比喻成Excel:

4. SQL通用语法

SHOW DATABASES;# 等价于show databases;

/**/:多行注释,在注释区域内可以随意换行

/*多行注释,内部可与随意换行换行后,注释效果依然存在*/

-- # :单行注释,写在语句开头,换行后注释截止。

# 单行注释-- 单行注释SHOW DATABASES;

注释快捷键:ctrl+/

5.小结

以上内容是关于叠词句子大全套路和形容妈妈的叠词的内容,小编幸苦为你编辑整理,喜欢的请点赞收藏把。

标签:形容妈妈的叠词

标题:叠词句子大全套路 形容妈妈的叠词

链接:http://m.zhaichaow.cn/z/1588667.html