Hive宏(Macro)简介

hive 专栏收录该内容
9 篇文章 0 订阅

最近在开发中用到了宏,用起来的确很方便,大大简化了代码,提高了可读性和可维护性,在此记录下宏的用法,以后有机会多更新一些宏的复杂用法。

什么是 Macro

在进行 Hive SQL 开发的时候,有一些逻辑需要反复使用,如果代码中每次都把所需逻辑复制粘贴一遍,不仅会造成代码冗余,还会增加维护难度,这时使用 Hive宏 对逻辑进行提炼,可以起到简化代码,提高开发效率,提升程序可读性的效果。

如何使用 Macro

宏的使用主要分为:创建、使用、销毁这三步,其中最重要的是创建部分,定义好后可以将宏像函数一样使用,最后的销毁是出于开发规范的需要。下面举一个简单例子:

1、创建

创建宏的标准语法:

CREATE TEMPORARY MACRO macro_name([col_name col_type, ...]) expression;

创建一个简单的字符串拼接宏:

create temporary macro test_macro(input_string string)
concat('hello' , ' ' , input_string);

创建一个两个参数的求和宏:

CREATE TEMPORARY MACRO simple_add (x int, y int) x + y;

2、使用

类似于UDF,直接传参使用:

select test_macro('test');

3、销毁

​ 标准语法:

DROP TEMPORARY MACRO [IF EXISTS] macro_name;

为什么要使用 Macro

  1. Macro 的开发过程比 UDF 更简单
  2. 与 UDF 相比,因为 UDF 是用 Java 代码开发的,堆变量的内存回收不受开发者控制,由虚拟机决定,并且实际生产中需要将 UDF 嵌套到 HQL 中,因此如果表的数据量比较大,存在发生 OOM 的风险。
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值