自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 hive调优之严格模式

将hive.strict.checks.no.partition.filter设置为true时,对于分区表,除非where语句中含有分区字段过滤条件来限制范围,否则不允许执行。换句话说,就是用户不允许扫描所有分区。这个限制的原因是,通常分区表都拥有非常大的数据集,且数据增加迅速,不进行分区限制的查询可能会消耗庞大的资源来处理这个表。将hive.strict.checks.orderby.no.limit设置为true时,对于使用了order by语句的查询,要求必须使用limit语句。

2024-06-14 08:57:21 178

原创 hive调优部分直接

如果筛选条件里有分区字段,那么 Hive 只需要遍历对应分区目录下的文件即可,不需要遍历全局数据,使得处理的数据量大大减少,从而提高查询效率。Hive Bucket,分桶,指将数据以指定列的值为key进行hash,hash到指定数目的桶里面,这样做的目的和分区表类似,筛选时不用全局遍历所有的数据,只需要遍历所在的桶,这样可以支持高效采样。只需要扫描这张表的一个分区的数据即可。也就是说:当一个 Hive 表的查询大多数情况下,会根据某一个字段进行筛选时,那么非常适合创建为分区表,该字段即为分区字段。

2024-06-14 08:53:08 366

原创 hive高级操作

lateral view语法: 和UDTF函数如explode()函数连用,因为UDTF有限制:No other expressions are allowed in SELECT;pivot()第一个参数为计算结果的聚合函数,for后面跟需要转化的列,in后面跟该列具体的值(即新的列的列名);split() + explode() + lateral view:行炸裂。collect_set() ( + concat_ws() ):行聚合。pivot()函数和unpivot()函数的行列转换。

2024-05-31 08:43:59 230

原创 hive分区(二)

在使用数据时如果指定了需要访问的分区名称,则只会读取相应的分区,避免全表扫描,提高查询效率。分区表指的是在创建表时指定分区空间,实际上就是在hdfs上表的目录下再创建子目录。作用:进行分区裁剪,避免全表扫描,减少MapReduce处理的数据量,提高效率。6.查询某个分区的数据,使用where条件进行分区裁剪,避免了全表扫描,效率高。4.查看某个表的所有分区。5.往分区中插入数据。

2024-05-28 10:54:35 191

原创 Hive 分区类型

如果要在 Hive 使用静态分区,需要把 hive.mapred.mode 设置为 strict,set hive.mapred.mode=strict。假如要对多个列做分区,但又不知道有多少个列,那么适合使用动态分区。通常在加载文件(大文件)到 Hive 表的时候,首先选择静态分区。如果需要存储到表的数据量比较大,那么适合用动态分区。在加载数据的时候,动态分区比静态分区消耗更多时间。可以在 Hive 的内部表和外部表使用静态分区。在加载数据时,静态分区比动态分区更节省时间。动态分区表从非分区表加载数据。

2024-05-28 10:49:43 209

原创 Hive表DDL操作总结

3)关于外部表,drop操作只会删除元数据,不会删除文件系统的数据,而truncate操作不能直接操作外部表,因为外部表的不属于Hive管理,直接操作会报错。2)truncate操作只是会删除表中的数据,不会删除表的元数据(即表还存在,只针对普通表)1)drop 操作会删除元数据(即表不存在)和文件系统的数据(只针对普通表)9.drop 和truncate的区别。6.给分区表添加分区列的值。

2024-05-27 09:20:55 169

原创 内部表与外部表的区别(二)

外部表:表类型表示为,external_taable,Hive在管理外部表时,只能删除元数据信息,而不能删除HDFS中的实际数据,当使用drop删除外部表时,只能删除外部表的元数据,而不能删除外部表位于HDFS中的真实数据,因此,Hive仅能管理外部表的部分内容,所以外部表也可以称为关联表。内部表:表类型表示为Manage_table ,Hive在管理内部表时当使用drop删除表,既能删除内部表的元数据,也能删除在HDFS中的实际数据,因此,Hive能完全控制和管理内部表,所以内部表也可以称为管理表。

2024-05-27 09:06:54 244

原创 操作内部表数据

insert into teacher values (1,"fangGE","Man"),(2,"文。insert into 表名[(字段名, 字段名, …)] values(值, 值, …(1)当数据表字段内容对应了表目录下的文件数据,则会自动映射数据内容。(2)发现当把数据表导入到HDFS对应目录后,这种插入数据的方式。1.truncate table 表名;select * from 表名;比直接insert要更高效。文","Woman");

2024-05-27 09:02:11 117

原创 Hive基本查询(二)

将会返回所有表中符合 WHERE 语句条件的所有记录。(1)where 针对表中的列发挥作用,查询数据;等值 Join:Hive 支持通常的 SQL JOIN 语句,但是只支持等值连接,不支持非等值连接。左外连接:JOIN 操作符左边表中符合 WHERE 子句的所有记录将会被返回。右外连接:JOIN 操作符右边表中符合 WHERE 子句的所有记录将会被返回。案例:根据员工表和部门表中的部门编号相等,查询员工编号、员工名称和部门名称。内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来。

2024-05-24 09:43:51 296 1

原创 Hive查询操作(一)

数据仓库是典型的查多写少,这个是根据HDFS本身的特点来的。HDFS本身不支持随机修改,只支持追加。所以Hive读多改少,写就写一遍,重点在查询。查询的用处在方方面面都有,比如insert等,都需要查询。1、基本查询(Select…(2)SQL 可以写在一行或者多行。(1)SQL 语言大小写不敏感。(3)关键字不能被缩写也不能分行。(5)使用缩进提高语句的可读性。(4)各子句一般要分行写。1. 全表和特定列查询。2).选择特定列查询。

2024-05-24 09:41:42 400

原创 hive内置函数总结2

描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于或者等于表达式B,则为TRUE;描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于或者等于表达式B,则为TRUE;描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;描述: 如果表达式A为NULL,或者表达式B为NULL,返回NULL;描述: 如果表达式A与表达式B相等,则为TRUE;

2024-05-24 09:36:06 298

原创 hive自定义函数总结

当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)。Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。如lateral view explore()类似于:count/max/min。

2024-05-24 09:31:51 101

原创 Hive内部表及外部表

1.内部表目录hive会自动创建在默认的HDFS目录下/user/hive/warehouse/…使用describe可以查看所建的表的全部信息,其中Table Type 表示表的类型。2.创建外部表的时候,需要使用external关键字,并指定表对应hdfs上的目录。删除一个外部表时,只有与表相关的元数据被删除,而不会删除表的内容。当删除一个内部表时,表的元信息和表数据目录都会被删除。

2024-04-07 08:43:02 95 1

原创 HIVE架构设计

5.提供对数据存取的编程接口,支持JDBC、ODBC。1.为超大数据集设计的计算、扩展能力;4.支持非结构化数据的1查询、计算;2.支持SQL like查询语言;3.多表的join操作;

2024-03-08 10:05:58 102 1

原创 关于Docker

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,成为镜像(就是硬盘中的文件)将data拷贝一份到自己的独立文件系统中,写数据的时候写到自己的地方(日志也是同样的原理,镜像不会被干扰和影响)容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。容器可以从镜像中读取数据,但是不能写。那以后MYSQL容器怎么写数据呢?

2024-03-01 10:08:22 106 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除