DATAX改造支持geometry类型数据同步

数据库使用postgresql安装了postgis插件存储了geometry空间数据,想使用datax做数据同步,但datax本身不支持geometry类型数据,如何改造呢?

1.首先下载已改造支持geometry类型的datax引擎,下载地址

https://download.csdn.net/download/letterss/88799803

 2.将下载的datax引擎解压,将plugin里面reader模块的postgresqlreader和wrtier模块的postgresqlwriter分别替换自己的引擎模块即可,如果只使用postgresql数据库,则不用替换直接使用下载的引擎。

3.测试

新建了两张表my_table,my_table_copy1

CREATE TABLE my_table (id SERIAL PRIMARY KEY, geom GEOMETRY);

CREATE TABLE my_table_copy1(id SERIAL PRIMARY KEY, geom GEOMETRY);

向my_table添加数据

INSERT INTO my_table (geom) VALUES ('POINT(0 0)'); 

查询数据显示如下

 DATAX改造支持geometry类型数据同步_第1张图片

使用datax同步,dataxjson如下

{
	"job": {
		"setting": {
			"speed": {
				"channel": "6",
				"byte": "12242880"
			},
			"errorLimit": {
				"record": "5",
				"percentage": "0.02"
			}
		},
		"content": [{
			"reader": {
				"name": "postgresqlreader",
				"parameter": {
					"username": "XVko54UY9nOe/3JQGQUikw==",
					"password": "fMaKElymbiVDjjwluBXyhA==",
					"column": ["\"id\"", "\"geom\""],
					"splitPk": "",
					"connection": [{
						"table": ["public.my_table"],
						"jdbcUrl": ["jdbc:postgresql://localhost:5432/postgres"]
					}]
				}
			},
			"writer": {
				"name": "postgresqlwriter",
				"parameter": {
					"username": "XVko54UY9nOe/3JQGQUikw==",
					"password": "fMaKElymbiVDjjwluBXyhA==",
					"column": ["\"id\"", "\"geom\""],
					"preSql": ["truncate table public.my_table_copy1"],
					"connection": [{
						"table": ["public.my_table_copy1"],
						"jdbcUrl": "jdbc:postgresql://localhost:5432/postgres"
					}]
				}
			},
			"transformer": []
		}]
	}
}

 同步成功,可以看到my_table_copy1 geom字段也有数据了,且数据一致

DATAX改造支持geometry类型数据同步_第2张图片

你可能感兴趣的:(数据库)