DataX PostgreSQL 读写支持Geometry类型

这里写目录标题

  • 简要说明
  • 依赖
  • 代码

简要说明

通过简单修改源码中关于相关的reader、writer和DBUtil工具类,实现表到表之间的Geometry字段类型数据的输送,目前修改仅测试过在postgresql的postgis插件下的Geometry类型可行。

依赖

1.通过gitclone 或者 到github 下载dataX的源码
2.后期的本地测试debug方式,可参考 https://blog.csdn.net/qq_41613913/article/details/140638920

代码

用ide 打开项目后,找到相应的模块进行修改。
1.CommonRdbmsReader类的修改
在模块plugin-rdbms-util下,找到CommonRdbmsReader类,找到buildRecord方法。
因为在关系型数据库下的读数据都是通过CommonRdbmsReader封装的逻辑,在现在的框架下,是不支持geometry类型的字段的,你可以通过java.sql.Types了解到,并没有geometry的对应值,所以通过jdbc connection执行得到的字段元数据中,geometry的数据库类型被标注为‘1111’(代表其他),所以我们必须做些特殊处理
修改如下:
在这里插入图片描述
在这里插入图片描述
即是在组装record时,遍历读取到的数据时,当columnTypeName为geometry时,当成字符串处理。

2.PostgresqlWriter类型的修改
在这里插入图片描述
其中calcValueHolder() 方法的意义,你可以理解为字段值的类型指明

3.DBUtil工具类的修改
在这里插入图片描述
在写入目标表时,会先查询目标表的字段类型,而Triple<List, List, List> 分别代表Left:ColumnName Middle:ColumnType Right:ColumnTypeName,因为在现有的代码中,中间的ColumnType 当是‘1111’ 时,CommonRdbmsWriter是不支持处理的,所以对应读取时的修改,这里直接当做普通字符串去处理。

至此,修改完毕,进行打包,替换jar
在这里插入图片描述
只需打包部分模块,将最外层的pom.xml文件中,只保留

        <module>common</module><module>core</module><module>transformer</module><module>postgresqlreader</module><module>postgresqlwriter</module><module>plugin-rdbms-util</module>

拿到postgresqlreader-0.0.1-SNAPSHOT.jar、postgresqlwriter-0.0.1-SNAPSHOT.jar和plugin-rdbms-util-0.0.1-SNAPSHOT.jar后,替换本地或者服务器上的plugin目录下reader 和 writer 的对应的jar,比如reader下
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/394358.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用户规模NO.1之后,钉钉还有多大的成长空间?

近日&#xff0c;第三方数据机构QuestMobile发布的《2024半年度中国移动互联网实力价值榜》显示&#xff0c;钉钉与微信、淘宝、抖音等一同入榜 “TOP50赛道用户规模NO.1 App”&#xff0c;蝉联效率办公赛道榜首。 可以看出&#xff0c;现阶段钉钉打开了较大的市场空间&#x…

Qt 跨平台APP单实例运行实现

一.调用方法 支持coreApplication和简单的application两种继承&#xff1a; 二.源码地址&#xff1a; SingleApp: Qt 单实例实现

android13 串口编号修改 串口名修改

总纲 android13 rom 开发总纲说明 目录 1.前言 2.技术分析 别名定义的语法规则 3.修改示例 使用别名 注意事项 4.不生效分析 5.编译查看 6.其他方法 7.彩蛋 1.前言 更改Android设备的串口编号涉及对系统深层次的配置进行修改,通常是为了解决硬件兼容性问题或满足特…

选择文件鼠标右键自定义菜单

注册表路径 计算机\HKEY_CLASSES_ROOT\*\shell 效果 操作 1.定位 winr&#xff0c;输入regedit, 地址栏输入以下路径&#xff0c;并回车。 计算机\HKEY_CLASSES_ROOT\*\shell 2.在shell上右键&#xff0c;新建项 3右键新建字符串值&#xff0c;Icon,Position 4 右键新建c…

LabVIEW压电陶瓷阻抗测试系统

开发了一种基于LabVIEW软件与PXI模块化仪器的压电陶瓷阻抗测试系统。该系统能在高电压工作条件下测量压电陶瓷的阻抗特性&#xff0c;包括阻抗模值与阻抗角的频率特性&#xff0c;为压电陶瓷的进一步分析与应用提供了重要参考。 项目背景 现有的阻抗测试仪大多只能在低电压条件…

【多模态】Flamingo: a Visual Language Model for Few-Shot Learning

链接&#xff1a;https://arxiv.org/pdf/2204.14198 论文&#xff1a;Flamingo: a Visual Language Model for Few-Shot Learning Introduction Motivation&#xff1a;仅使用少量标注样本来快速适应新任务的建模方式是多模态机器学习研究的一个挑战与难点定位&#xff1a;a …

案例分享-国外UI设计界面赏析

国外UI设计倾向于简洁的布局和清晰的排版&#xff0c;减少视觉干扰&#xff0c;提升用户体验。通过合理的色彩搭配和图标设计&#xff0c;营造舒适愉悦的使用氛围。 设计师不拘泥于传统框架&#xff0c;勇于尝试新元素和理念&#xff0c;使界面独特有趣。同时&#xff0c;强调以…

指纹失效,忘记iPhone屏幕解锁密码怎么应对?

为保证手机的安全及隐私&#xff0c;我们会给手机设置屏幕锁屏密码&#xff0c;通过输入设置密码来解锁手机屏幕锁&#xff0c;但为了给大家提供快速便捷的解锁方式&#xff0c;苹果公司提供了指纹解锁&#xff0c;不仅解锁更便捷了还极大地增强了设备的安全性。但有时我们手指…

Prompt万能框架与常用评估指标

引言 在人工智能的飞速发展中&#xff0c;大型语言模型&#xff08;LLM&#xff09;已成为研究和应用的热点。LLM以其强大的语言理解和生成能力&#xff0c;在诸如自然语言处理、文本生成、问答系统等多个领域展现出巨大潜力。然而&#xff0c;要充分发挥LLM的能力&#xff0c…

【Material-UI】按钮组:Split Button 详解

文章目录 一、Split Button 概述1. 组件介绍2. 基本用法 二、Split Button 的应用场景1. 提交操作2. 导出操作3. 文件操作 三、Split Button 的样式定制1. 变体&#xff08;Variants&#xff09;2. 颜色&#xff08;Colors&#xff09; 四、Split Button 的优势1. 提升用户体验…

信创安全 | 新一代内网安全方案—零信任沙盒

在当今数字化时代&#xff0c;访问安全和数据安全成为企业面临的重要挑战。传统的边界防御已经无法满足日益复杂的内网办公环境&#xff0c;层出不穷的攻击手段已经让市场单一的防御手段黔驴技穷。当企业面临越来越复杂的网络威胁和数据泄密风险时&#xff0c;更需要一种综合的…

数字新时代,如何守护网络空间安全?(非常详细)零基础入门到精通,收藏这一篇就够了

- 书籍推荐 - 网络空间已经成为继陆、海、空、天之后的第五疆域。随着大数据、云计算、人工智能的迅速发展&#xff0c;网络入侵、信息恶意窃取、数据篡改以及伪造攻击等行为严重影响国家安全&#xff0c;也损害公民、法人及其他组织的合法权益。毫无疑问&#xff0c;网络空间安…

华为OD-D卷多段线数据压缩

下图中&#xff0c;每个方块代表一个像素&#xff0c;每个像素用其行号和列号表示。 为简化处理&#xff0c;多段线的走向只能是水平、竖直、斜向45度。 上图中的多段线可以用下面的坐标串表示&#xff1a;(2, 8), (3, 7), (3, 6), (3, 5), (4, 4), (5, 3), (6, 2), (7, 3), (8…

Java语言程序设计基础篇_编程练习题**16.11(创建表示字母出现次数的直方图)

目录 题目&#xff1a;**16.11&#xff08;创建表示字母出现次数的直方图&#xff09; 习题思路 1.HistogramPane类 2. HistogramPaneDemo类 代码示例 结果展示 题目&#xff1a;**16.11&#xff08;创建表示字母出现次数的直方图&#xff09; 编写一个程序&#xff0c;从文件…

CAD启动时自动加载vba程序方法

启动AutoCAD时自动启动你的dvb文件&#xff0c;方法如下&#xff1a; 方法一、加载 VBA 时&#xff0c;它会在 AutoCAD安装 目录中&#xff0c;查找名为 acad.dvb 的工程删除&#xff0c;将你的dvb文件命名为acad.dvb,替换掉原始文件即可。方法二、启动 AutoCAD 时&#xff0c…

Python 异步编程:Sqlalchemy 异步实现方式

SQLAlchemy 是 Python 中最流行的数据库工具之一&#xff0c;在新版本中引入了对异步操作的支持。这为使用异步框架&#xff08;如 FastAPI&#xff09;开发应用程序带来了极大的便利。在这篇文章中&#xff0c;简单介绍下 SQLAlchemy 是如何利用 Greenlet 实现异步操作的。 什…

proteus仿真c51单片机(四)双机串口通信(电路设计及代码)

实验要求 1.通过甲机的按键给乙机发送控制字符&#xff0c;同时也可以实现乙机给甲机发送控制字符 2&#xff0e;用PROTEUS软件根据所给电路画出电路图&#xff0c;用KEIL软件调试程序和编译&#xff0c;最后在PROTEUS软件中实现仿真。 3.甲乙两个单片机通过串口进行通信&am…

第R2周:Pytorch实现:LSTM-火灾温度预测

nn.LSTM() 函数详解 nn.LSTM 是 PyTorch 中用于创建长短期记忆&#xff08;Long Short-Term Memory&#xff0c;LSTM&#xff09;模型的类。LSTM 是一种循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;的变体&#xff0c;用于处理序列数据&#…

工业设计用什么CAD软件?SolidWorks 成为您创意实现的得力助手

随着科技的发展&#xff0c;工业设计已经进入了数字化时代。对于设计师来说&#xff0c;选择一款高效、功能全面的设计软件至关重要。在市场上众多的CAD&#xff08;计算机辅助设计&#xff09;软件中&#xff0c;SolidWorks因其出色的性能和广泛的适用性而备受青睐。本文将介绍…

5.1 Python 函数的定义

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 工&#x1f497;重&#x1f497;hao&#x1f497;&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题.…