零,应用场景
刚刚接触arcgis不久,最近有需求增量同步其他数据库的地理数据到arcgis server 使用的sql server数据库中,升级为Geodatabase的sqlserver数据库不方便直接往数据表中更新数据,更新数据只能通过其预制的存储过程(猜想),提供的feature access接口,或者重新发布更新后的要素,要从其他数据库自动同步数据到已经发布的图层,本文介绍一种kettle+feature access的方案。
为什么用kettle呢?1. 快,接触水壶两天就走通技术路线了;2.能够Post;3.水壶好像很受欢迎。
feature access提供的rest api有增删查改操作,怎么发布feature access服务这里就不再描述,可以参考arcgis文档。
feature access REST接口
增量同步数据的具体需求尚不明确,但无非是:1,只更新,2,只新增,3,更新又新增,4,增删改,这个以后再深入探讨,本文主要讨论通过kettle的post请求功能来进行要素的同步。
本文将从kettle小白的角度实现一个简单的技术demo,有待完善的地方欢迎一起研究。
一,kettle安装
kettle是一款不错的ETL工具,可以省下写原生代码进行ETL的功夫。
首先下载kettle,下载页在这里:下载页,找到Downloads下载即可。
下载页
下载完毕,解压压缩包,双击运行Spoon.bat就可进入kettle的可视化操作界面,忘了说了,要想使用kettle得先准备好java环境,本人使用的是64位jdk1.8.1,如果启动过程出现问题可以使用SpoonDebug.bat进行启动,然后检查SpoonDebug.txt进行排错。
调试工具
二,数据库连接和表输入
进入勺子(Spoon.bat),新建一个“转换(transformation)”任务,这个“转换”就负责执行我们同步数据的具体流程。新建“表输入”,在“编辑”中设置好数据库连接(这里以mysql为例),