![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA
文章平均质量分 59
JAVA学习记录
lilyjoke
这个作者很懒,什么都没留下…
展开
-
Spark jdbc读写的数据对账功能和问题解决
3. 当某一条数据写入错误时,整个spark任务是失败状态,但是发现有部分数据已经成功写到表,有部分数据回退的情况。1. 注册JdbcRelationProvider,实现createRelation, 通过调用JdbcUtils.saveTable()方法实现写表功能。可以发现,savePartition是有做事务的,发生错误之后可以回退。2. saveTable的内部实现,可以看到主要实现方法是,拼接了一个insert的执行对象,然后根据写入的分区遍历写入。这个时候,其实是异步的,并不是串行的。原创 2023-03-29 11:44:06 · 531 阅读 · 0 评论 -
Hive表热度统计
通过解析hiveserver2的info日志,获取每个执行sql命令。通过durid对sql进行解析,获取对于表的操作,并写到数据库中。接口提供,最小粒度到分钟,给到应用做展现。原创 2023-03-08 15:09:23 · 328 阅读 · 0 评论 -
Dolphinscheduler定时调度没有启动Handling 4 trigger(s) that missed their scheduled fire-time
无业务信息,只是问题记录积累。原创 2023-01-19 22:53:47 · 3086 阅读 · 0 评论 -
基于Durid解析SQL语法树获取单查询该查询的最终输出字段
本来方案是,直接用Durid里面自带得HiveSchemaStatVisitor,进行SQL遍历,就可以获取所需的Select字段。测试结果发现不是这样,原生的解析拿不到子查询的明细字段,也拿不到"*"对应的字段,如下图。需求:要解析用户的SQL,从语法上获取SQL的输出字段,这样好和后面的入库字段做映射。2、将子查询内的字段展现(最终是输出的字段),如果最终不输出,也不考虑这些字段。该记录不涉及任何业务信息,仅作学习记录,代码在最下面。下图是和上图用的同一句SQL,测试输出的结果。原创 2022-09-03 17:03:17 · 1459 阅读 · 2 评论 -
基于语法树解析Spark SQL 获取访问的表/字段/UDF等信息
最近有需求,需要拆解Spark SQL中的表,字段等信息,然后配合Ranger实现一些权限校验。其实难度不大,就是需要根据语法树做一些递归拆解,然后就能拆解出一段SQL中的相关信息,再创建一些数据结构bean对象用于配合校验。下面是部分源码(全部本人原创),不涉及业务信息。对于Presto我也做了拆解,欢迎沟通交流。import test.AccessType;import test.ColumnAccess;import test.ColumnsWithTable;import l原创 2022-04-13 10:59:22 · 4143 阅读 · 0 评论 -
自定义child-first类加载器解决Jar包冲突
自定义java类加载器解决Jar包冲突最新使用tika进行非结构化数据的抽取,因为现场抽取的种类很多,针对EXCLE数据,需要引用到poi-ooxml中的方法,但是现场的poi-ooxml的版本和tika-app中依赖的版本有冲突,因此需要解决该问题。概念此处来源 https://www.jianshu.com/p/1e4011617650BootstrapClassLoader(启动类加载器)c++编写,加载java核心库 java.*,构造ExtClassLoader和AppClas原创 2021-01-18 14:18:50 · 2081 阅读 · 5 评论