金仓数据库 KingbaseES V8 GIS数据迁移方案(3. 基于ArcGIS平台的数据迁移到KES)

栏目归类:人大金仓数据库
发布时间:2024-03-26 18:50:40

3.?基于ArcGIS平台的数据迁移到KES

本章主要介绍基于ArcGIS/GeoScene 平台的两种数据迁移方案,首先是基于KDTS的迁移,主要应用在数据图层较多且数据体量巨大的情况,另一种为利用ArcGIS/GeoScene 平台的异构数据库迁移,主要是一些少量图层或者小数据量的迁移需求。

3.1.?KDTS工具迁移GIS数据

3.1.1.?KDTS迁移步骤

下面讲述通过KDTS工具完成GIS空间数据库的迁移工作。

通过KDTS迁移GIS数据主要是基于两种情况:

其一,在GIS平台中,数据存储在OracleSpatial数据库中,且数据量巨大。上一章节所述的GIS平台适合迁移如要素类、要素集、单个库等少量数据,当数据表体量巨大时,迁移过程较慢;

其二,原始数据存储在OracleSpatial数据数据库中,不论数据量的多少,但没有GIS平台支撑,只有备份的数据库文件。

上述两种情况下,都可以采用KDTS数据迁移工具完成GIS空间数据库的迁移工作。

图 3.1.1?KDTS迁移方案

  1. 以迁移Oracle数据库数据为例(默认客户已安装Oracle软件)

    1. ArcGIS连接源数据库与目标数据库

    • 创建数据库连接

      在开始菜单中启动ArcMap软件,在菜单栏点击“Arctoolbox”图标,在右侧显示的Arctoolbox栏中,选择数据管理工具->地理数据库管理->创建企业级地理数据库,界面截图如下:

    • Oracle数据库(待迁移GIS数据的数据库)连接配置

      图 3.1.2?数据库配置

    • KES数据库连接配置

      通过ArcMap菜单栏,打开ArcCatalog软件,在目录树中点击“数据库连接”->“添加 数据库连接”。在“数据库连接”对话框中设置KES连接参数,其中需要注意的是instance端口号不使用5432时,需要注明端口号;例如:192.168.4.30,5444。

      图 3.1.3?数据库连接

    • 启动地理数据库

      在ArcCatalog软件目录树中点选已连接的数据库,右键选择“启动地理数据库”功能,源数据库和目标数据库都要进行此操作。配置对应参数时,选择ArcGIS授权文件需要注意只能用*.ecp文件。

  2. KDTS迁移

KDTS迁移工具使用插件方式动态加载待迁移的数据库访问接口,方便用户定制和使用。支持同异构数据源之间的数据迁移、支持结构迁移、支持全量数据迁移、支持列名映射,支持数据迁移过滤,在配置数据任务时,可以对迁移的表配置 where 条件、通过匹配的 where 条件过滤需要迁移的数据。

其中异构数据源之间的数据迁移:支持 Oracle9i、10g、11g、12c、19c 到 KingbaseES V8 的数据库迁移。(KingbaseES V8.7 迁移工具还支持mysql5.1、sqlserver2005、sqlserver2014、神通、sybase15.7 到 KingbaseES V8 的表结构和数据迁移。

下图为KDTS数据迁移字段对应表,其中包含GIS常用的模型ST_GEOMETRY和SDO_GEOMETRY。

图 3.1.4?KDTS迁移方案设置

下面详细介绍KDTS迁移工具的使用方案:

  1. 启动数据迁移工具

选择『开始』|『程序』|『KingbaseES V8』|『数据迁移工具』,启动数据迁移工具。

  1. 创建数据迁移项目

打开数据迁移工具,工具已经默认创建了一个项目。用户也可以在左侧资源管理器中右键新建数据迁移项目。数据迁移项目是数据迁移的起点,一个迁移项目可以包含多个数据库连接、多个数据迁移任务和迁移后的日志信息。如图下图所示。

执行一个迁移任务,所需的必要步骤如下:

  • 新建源库数据库连接,新建目的库数据库连接;

  • 新建迁移任务,选择源库和目的库;

  • 打开迁移任务,选择非表对象配置;

  • 进行源库与目标库的关系映射;

  • 执行迁移任务,查看迁移日志;

图 3.1.5?新建项目

KingbaseES V8 数据库数据迁移工具采用JDBC 的方式管理数据库连接,支持JDBC URL 参数配置。可以在资源管理器上对数据库连接进行删除或者编辑操作,数据库连接信息持久化本地,迁移时不需要重复配置连接。

在数据迁移项目下的数据库连接目录上,右键创建新的数据库连接,弹出下图所示窗口,填写相应信息,创建数据库连接。

图 3.1.6?创建数据库连接

  1. 创建迁移任务

在数据迁移项目下的【数据库迁移任务】节点右键创建迁移任务,迁移任务需要选择已经创建的源数据库连接和目标数据库连接,完成输入后点击【确定】按钮,创建成功后会自动打开迁移任务编辑器。迁移任务编辑器界面如下图所示:

图 3.1.7?新建迁移任务

图 3.1.8?迁移任务编辑器界面

  1. 非表对象配置

新建迁移任务以后,双击源库节点打开“非表对象”设置,包含了视图、索引、外键、缺省、触发器、检查约束、唯一约束、存储过程、函数、程序包、序列、同义词、注释共十三种非表对象。用户可以选择在本次迁移任务中是否迁移这些非表对象。

如下图所示,非表对象设置,默认时均不选择,即只迁移表定义和表数据。此外,从 Oracle 到 KingbaseES 的迁移中,除表定义和表数据外,用户还可选视图、索引、外键、缺省、检查约束、唯一性约束和序列等非表对象进行自动迁移。

对于数据库间的存储过程、函数、包和触发器的迁移,它们的移植需要根据 KingbaseES 和其它数据库之间的语法差异手工改写后,再在 KingbaseES 服务器上执行后建立。 需要注意的是,没有选中的非表对象,要全部手动创建到目的数据库中。

图 3.1.9?非表对象设置

  1. 设置源数据库与目标数据库的关系映射

这一步骤是选择要从源库进行迁移的表或其他数据库对象到目标数据库的相应模式。双击【迁移任务编辑器】的目标库节点,打开【源数据库与目标数据库关系映射】,如下图所示,目标数据库节点配置需要用户选择表或者其它数据库对象拖拽、双击、右键添加到目标模式或者数据库完成关系映射。目标数据库下只显示从源数据库拖拽过来的表或者其他数据库对象,目标数据库在进行映射操作前,只显示模式不会显示其自身的数据库对象。

图 3.1.10?源数据库与目标数据库关系映射

  1. 设置表映射关系

双击目标库树上的表对象,可以进行【表映射关系】设置,在这个对话框中可以进行【列映射选择】设置、【DDL】查看和【SELECT】自定义的操作,如下图所示。

图 3.1.11?设置表映射关系

  • 【列映射选择】页面可以设置源表和目标表的列对应关系,可以修改目标表列名称、目标表列类型、精度、标度、是否为空和默认值。

  • 【DDL】是在目标数据库创建表的 sql 语句,可以通过【列映射选项】页面列信息的修改自动变更内容。

  • 【SELECT】页面用于迁移时对源表进行查询,可以对迁移的表配置 where 条件、通过匹配的 where 条件过滤需要迁移的数据。

  1. 执行迁移任务

图 3.1.12?数据迁移概览

在完成上述配置工作之后,可以进行源数据库到目标数据库的迁移操作,打开数据迁移任务编辑器,点击工具栏上的【执行】按钮,数据迁移正式开始。

数据迁移正式开始时会有迁移对象统计列表,用户可以根据该列表判断数据数量是否正确。如上图所示。在迁移结束后,在控制台和日志文件中统计出迁移结果,包括表和所有已经选择迁移的数据库对象。

  1. 至此,完成利用迁移工具的GIS数据迁移。

  1. 案例说明

案例一

通过模拟10个省市亿级的地类图斑数据,使用金仓KDTS工具完成GIS数据迁移,迁移时间为1个小时左右。KDTS工具迁移效率较传统方法提升4到5倍。

3.1.2.?迁移结果验证

  1. 可视化校验

  1. 显示验证:ArcMap软件中,将迁移后的数据拖到窗口。数据展示如下图:

图 3.1.13?数据显示

  1. 操作验证:验证数据正确性,采用对迁移数据进行增、删、改、查等功能验证,如进行函数分析判断结果正确性。

  2. 应用程序验证:运行与迁移数据相关的应用程序,验证数据正确性。

  1. 数据库对比校验

KingbaseES V8在迁移后会生成迁移报告,报告中记录迁移对象的前后对比结果。操作为执行迁移任务完成后,会生成迁移报告。迁移报告有两种:文本报告和柱状图报告。如图下图所示。

图 3.1.14?迁移报告-文本报告

图 3.1.15?迁移报告-柱状图报告

上述两类数据校验方式完成,才能保证数据迁移工作完成,迁移结果正确。

3.1.3.?常见问题汇总(FAQ)

  1. 数据迁移中, 复杂表和约束迁移失败问题。

答:在 KingbaseES 之间可以迁移的数据库对象包括:表、视图、存储过程、函数、程序包、触发器、索引、主外键、非空约束、检查约束、唯一约束、缺省值。若目的库中存在与要迁移的存储过程、函数、触发器或程序包相同的名称, 数据迁移工具会将其删除后在进行迁移。

其他数据库向 KingbaseES 可以迁移的数据库对象包括:表、索引、主外键、非空约束、检查约束、唯一约束、缺省值。不支持函数索引和表达式索引的迁移;不支持聚集索引的迁移。

  1. 数据迁移工具的数据迁移中, 将其它数据库的表导入到 KingbaseES V8 数据库时,KingbaseES V8 数据库并没有与要导入的表重名的表, 为什么迁移日志会报告表重名错误, 从而导致迁移失败?

答:在 KingbaseES V8 中同一个模式下表、视图、序列都使用同一个命名空间,即表、视图和序列之间不可以重名,否则后创建的表会将覆盖已经存在的表。

  1. 源库为 KingbaseES V7,迁移中文表中文乱码问题。

答:编辑 KingbaES V7 的数据库连接,添加参数 clientencoding=UNICODE, 保存。打开对应的迁移任务,刷新源库节点,即可。

  1. 数据迁移中, 复杂表和约束迁移失败问题。

答:当迁移 Oracle 的复杂表和约束时,如果总是遇到错误,则可能是因为 KingbaseES 自带的 Oracle JDBC 驱动程序版本与 Oracle JDBC 版本不兼容。此时,用户可用 Oracle 数据库安装目录 JDBC/lib 文件夹下的 JDBC 驱动程序,替换 $KINGBASE_HOME/plugins/database/Oracle 目录下的 JDBC 驱动程序,然后重新迁移。

Oracle 数据库向 KingbaseES 可以迁移的数据库对象包括:表、索引、主外键、非空约束、检查约束、唯一约束、缺省值。需要注意的是:不支持函数索引和表达式索引的迁移;不支持聚集索引的迁移。

  1. 数据迁移中, 使用【追加数据】的迁移方式会导致迁移失败问题。

答:为了提高迁移速度,在【配置】对话框中,将【一次批量提交记录个数】设置为 50000。在追加数据时,如果在一次提交的 50 条记录中,如果有某些记录的主键值与已存记录的主键值相同,会导致 50 条记录全部迁移失败。因此在使用【追加数据】的迁移方式时,建议将【一次批量提交记录个数】设置为 1,这样可以使主键值重复的记录迁移失败,主键值不重复的记录迁移成功。

  1. 迁移数据时报错“Caused by: com.kingbase8.util.KSQLException: ERROR: value too long for type character varying(50)”

答:原因:源库的服务器参数 char_default_type=char,而目标库 kingbaseES V8 的服务器参数 char_default_type=byte,造成部分数据迁移到 v8 之后溢出了。

修改【首选项】 -【迁移配置】选项卡的“设置 char 默认类型”,选择“char”或者“与源库保持一致”。保存后重新迁移出错的表。

  1. 迁移工具可以迁移那些GIS数据类型?

答:在迁移设置过程中,设置迁移的数据类型, KDTS工具能够迁移ST_GEOMETRY和SDO_GEOMETRY数据类型。其中ST_GEOMETRY为ArcGIS平台生成的数据类型,SDO_GEOMETRY为Oracle的数据类型。

3.2.?ArcGIS/GeoScene平台迁移GIS数据到KES

3.2.1.?利用ArcGIS/GeoScene软件的数据迁移

本节主要介绍利用ArcGIS软件进行向KES数据库迁移GIS数据的方案,数据迁移前需要安装KGIS插件,安装方法参见《KingbaseGIS参考手册》。

  1. 迁移对象说明

  • 文件地理数据库和个人地理数据库,即MDB或者GDB文件。

  • 商用数据库:PostgreSQL、Oracle spatial、DM、MYSQL、SQL Server等。

  1. 以迁移Oracle数据库数据为例(默认客户已安装Oracle软件)

    1. ArcGIS连接源数据库与目标数据库

    • 创建数据库连接

      在开始菜单中启动ArcMap软件,在菜单栏点击“Arctoolbox”图标,在右侧显示的Arctoolbox栏中,选择数据管理工具->地理数据库管理->创建企业级地理数据库,界面截图如下:

    • Oracle数据库(待迁移GIS数据的数据库)连接配置

      图 3.2.1?数据库配置

    • KES数据库连接配置

      通过ArcMap菜单栏,打开ArcCatalog软件,在目录树中点击“数据库连接”->“添加 数据库连接”。在“数据库连接”对话框中设置KES连接参数,其中需要注意的是instance端口号不使用5432时,需要注明端口号;例如:192.168.4.30,5444。

      图 3.2.2?数据库连接

    • 启动地理数据库

      在ArcCatalog软件目录树中点选已连接的数据库,右键选择“启动地理数据库”功能,源数据库和目标数据库都要进行此操作。配置对应参数时,选择ArcGIS授权文件需要注意只能用*.ecp文件。

    1. 数据迁移

    • 上步操作中已将Oracle和KES数据库同时与ArcGIS平台连接,下面介绍如何将GIS数据迁移到KES数据库。

      连接后的数据库如下图:

      图 3.2.3?数据目录树

      在Oracle数据库中选择要迁移的数据要素集,右键copy;

      图 3.2.4?数据拷贝

    • 选择“数据库连接”中已连接的KES数据库,右建粘贴,弹出下图界面,选择ok;

      图 3.2.5?数据迁移

      显示数据迁移进度条,如下图:

      迁移成功后如下图所示:

      完成数据库迁移.

    至此,完成基于ArcGIS/GeoScene平台的数据迁移。如果需要迁移的数据库具有少量的要素表,或者数据量较少的空间数据可以采用这种方法,但一旦空间数据体量大空间表众多,建议使用KDTS迁移工具批量迁移数据。

  2. 案例介绍

案例一

  1. 项目应用环境:ArcGIS,X86,Linux。

  2. 数据迁移:采用特有的空间数据全量离线迁移工具,实现Oracle Spatial到人大金仓空间数据库的快速自动化平滑迁移,48小时完成3TB+Oracle Spatial数据迁移。

  3. 稳定性:数据库并发连接1000+,在大并发高吞吐量业务压力下,数据库稳定运行。

  4. 性能:提供经优化的空间数据索引,并对空间函数进行深度优化,使得空间数据处理性能提升80%。

3.2.2.?迁移结果验证

1)可视化校验

  1. 显示验证:ArcMap软件中,将迁移后的数据拖到数据窗口。数据展示如下图:

图 3.2.6?数据显示

  1. 操作验证:验证数据正确性,在ArcMap软件中采用对迁移数据进行增、删、改、查等功能验证,如利用函数分析验证结果正确性。

  2. 应用程序验证:运行与迁移数据相关的应用程序,验证数据正确性。

3.2.3.?常见问题汇总(FAQ)

  1. 目前可以迁移哪些类型数据库中的GIS数据?

    答:可以迁移通过ArcGIS存储的ST_GEOMETRY类型的数据,数据库类型不限。如PostgreSQL、Oracle spatial、DM、MYSQL、SQL Server等。

文章来源:https://blog.csdn.net/arthemis_14/article/details/126164941
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
Hotcall 技术分享站