0 业务目的:
将oracle的存储过程业务搬迁到hive, 因此涉及不少 sql ---> hql的替换工作,基本都能实现,
hive函数不支持的oracle函数功能的就用自定义函数,遇到join的不等值连接就用mr实现,
现在说说 oracle中insert表中
insert into table f_ent_norm_statistics
select xxx , SYS_GUID() ;
oracle的SYS_GUID() 是生成32位byte的uuid,hive的rand()达不到这个目的,因此需要自定义,
这里参考下 rand源码:
@Description(name = "rand", value = "_FUNC_([seed]) - Returns a pseudorandom number between 0 and 1") @UDFType(deterministic = false) @VectorizedExpressions({FuncRandNoSeed.class, FuncRand.class}) public class UDFRand extends UDF { private Random random; private final DoubleWritable result = new DoubleWritable(); public UDFRand() { } public DoubleWritable evaluate() { if (random == null) { random = new Random(); } result.set(random.nextDouble()); return result; } public DoubleWritable evaluate(LongWritable seed) { if (random == null) { random = new Random(seed.get()); } result.set(random.nextDouble()); return result; } }
主要是
1 random = new Random(seed.get());
2 @UDFType(deterministic = false) 如果不加入这句,那么hql跑的时候只会返回一个值。
下面是我的 udf uuid写法:
/** * * @author zm * return uuid of 32bytes * eg: return F18031C69D8345DEB305D4B2E796A282 like oracle SYS_GUID() */ @UDFType(deterministic = false) public class SysGuidFun extends UDF{ public Text evaluate() { String id = UUID.randomUUID().toString(); id = id.replace("-", ""); return new Text(id); } }
相关推荐
含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-3.1.2-bin.tar.gz 含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-3.1.2-bin.tar.gz 含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-...
### Spark与Hive自定义函数兼容性问题解析 在大数据处理领域,Apache Spark 和 Apache Hive 都是非常重要的工具。Spark 是一种快速通用的大规模数据处理系统,而Hive 则是一种数据仓库工具,主要用于对存储在 ...
apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tarapache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tarapache-hive-2.1.1-bin.tar apache-hive-2.1.1-...
05.hive中如何自定义函数--json解析函数示例.mp4
02、hive-exec-2.1.1-cdh6.3.1.jar 03、hive-jdbc-2.1.1-cdh6.3.1.jar 04、hive-jdbc-2.1.1-cdh6.3.1-standalone.jar 05、hive-metastore-2.1.1-cdh6.3.1.jar 06、hive-service-2.1.1-cdh6.3.1.jar 07、libfb303-...
Apache Hive(apache-hive-3.1.3-bin.tar.gz、apache-hive-3.1.3-src.tar.gz)是一种分布式容错数据仓库系统,支持大规模分析,并使用 SQL 促进读取、写入和管理驻留在分布式存储中的 PB 级数据。Hive 构建在 Apache...
Apache Hive(apache-hive-1.2.2-bin.tar.gz、apache-hive-1.2.2-src.tar.gz)是一种分布式容错数据仓库系统,支持大规模分析,并使用 SQL 促进读取、写入和管理驻留在分布式存储中的 PB 级数据。Hive 构建在 Apache...
标题中的"**hive-jdbc-uber-2.6.5.0-292.jar**"是一个Uber(也称为Shaded)JAR文件,它集成了Hive JDBC驱动的所有依赖项。Uber JAR的目的是为了方便部署,因为它将所有必需的库合并到一个单一的文件中,避免了类路径...
《DBeaver与Hive连接:hive-jdbc-uber-2.6.5.0-292.jar驱动详解》 在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,广泛用于数据查询和分析。而DBeaver,作为一款跨平台的数据库管理工具,以其用户友好的...
01.hive内置函数--集合函数--条件控制函数.mp4
hive-jdbc-3.1.2-standalone适用于linux
Apache Hive(hive-storage-2.8.1.tar.gz、hive-storage-2.7.3.tar.gz)是一种分布式容错数据仓库系统,支持大规模分析,并使用 SQL 促进读取、写入和管理驻留在分布式存储中的 PB 级数据。Hive 构建在 Apache ...
02.hive内置函数--窗口分析函数--row_number_over.mp4
09.hive内置函数--表生成函数--行转列explode--lateral-view.mp4
hive-jdbc-uber-2.6.5.0-292.jar DbVisualizer (as of version 9.5.5) Below is an example configuration using DbVisualizer: Open the Diver Manager dialog ("Tools" > "Driver Manager...") and hit the ...
hive-jdbc-1.2.1-standalone.jar hive-jdbc驱动jar包,欢迎下载
"hive-jdbc-jar-多版本.zip"是一个压缩包,包含了不同版本的Hive JDBC Uber Jars,覆盖了从1.5到1.8的多个Hive版本,适应不同的项目需求。 首先,我们要理解Uber JAR的概念。Uber JAR(也称为Shaded JAR)是一个...
这里我们关注的是"Hive-jdbc-uber-3.1.2",这是一个包含所有依赖的Uber jar包,旨在简化部署和使用流程。 Hive JDBC Uber 3.1.2是Hive的Java数据库连接器的一个优化版本,它通过将所有必需的依赖项打包到一个单一的...
hive-jdbc-2.3.7-standalone,可用dbeaver连接hive数据库,在工具中进行数据库记录的新增改查
标题中的“hive-jdbc-uber-2.6.5.0-292.zip”指的是Hive JDBC驱动的Uber版本,版本号为2.6.5.0-292。Uber JAR是一种包含所有依赖的单一JAR文件,便于分发和使用,特别是对于连接工具如DataGrip这样的集成开发环境...