| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 炫“酷”行动-人大金仓有奖征文--金仓分析型数据库迁移IBM Netezza一体机技术可行性 -> 正文阅读 |
|
[大数据]炫“酷”行动-人大金仓有奖征文--金仓分析型数据库迁移IBM Netezza一体机技术可行性 |
一、 数据类型兼容性 KADB 备注 VARBINARY(n) 支持 支持 通过varbit类型支持 ST_GEOMETRY(n) 支持 支持 通过PostGIS支持 字符数据类型 KADB 备注 Fixed length, character(n) (alias char(n)) 支持 最大长度64000 支持 最大长度10485760 通过char [ (n) ]类型支持 Variable length, character varying(n) (alias varchar(n)) 支持 最大长度64000 支持 最大长度10485760 通过varchar [ (n) ]支持 Fixed length, Unicode (alias nchar(n)) 支持 最大长度16000 可以用char [ (n) ]替代 Variable length, Unicode (alias nvarchar(n)) 支持 最大长度16000 可以用varchar [ (n) ]替代 精确数字类型 KADB 备注 byteint (alias int1) 支持 1字节,-128~127 支持 可以用smallint替代 -32,768~32,767 smallint (alias int2) 支持 2字节,-32,768~32,767 支持 integer (alias int and int4) 支持 4字节,-2,147,483,648~ 2,147,483,647 支持 bigint (alias int8) 支持 8字节,-9,223,372,036,854,775,808 ~9,223,372,036,854,775,807 支持 numeric(p, s) 支持 支持 使用numeric [ (p, s) ]的别名decimal [ (p, s) ] numeric§ 支持 使用numeric [ § ]的别名decimal [ § ] numeric 支持 使用numeric的别名decimal decimal 支持 非精确数字类型 KADB 备注 float§ 支持 支持 可以用decimal(p)替代 real 支持 相当于float(6) 支持 double precision 支持 支持 逻辑数字类型 KADB 备注 boolean (alias bool) 支持 取值为true(t)或者false(f) 支持 时间类型 KADB 备注 date 支持 支持 time 支持 支持 ime with time zone (alias timetz) 支持 支持 timestamp 支持 支持 interval (alias timespan) 支持 支持 numeric(6,0) 支持 时间跨度,例如:010521代表1小时5分21秒 不支持 numeric(8,0) 支持 不支持 numeric(14,0) numeric(15,1) numeric(16,2) numeric(17,3) numeric(18,4) numeric(19,5) numeric(20,6) 支持 例如:类型为numeric(17,3)的00017355018391999,表示1年73个月55天1小时83分钟91.999秒 不支持 二、SQL语法差异 MERGE INTO when_condition_then_action KADB除支持Netezza表的分布键特性外,还支持复制表(可以将数据量较小的维度表复制到集群中的每一个计算节点上,加快访问速度)和表分区功能(表按照分布键分布到计算节点中,在每一个计算节点上使用表分区将局部数据二次分组) database.schema.table KADB不直接支持表的跨库访问,访问表的语法为: database.table GROOM TABLE 例如: MYDB.SCH1(USER)=> GROOM TABLE RECORDS ALL;KADB可以使用命令VACUUM命令达到同Netezza一样的功能,语法如下: VACUUM [({ FULL | FREEZE | VERBOSE | ANALYZE } [, …])] [table [(column [, …] )]] 例如: VACUUM ANALYZE; 事务 Read committed BEGIN、START TRANSACTION开启一个事务 文本乱码问题 对于问题3,需要测试估算Datastage在现场硬件配置的情况下实际的迁移效率,评估是否能在规定的迁移时间窗口内完成迁移。同时对需要迁移的数据做梳理统计,将表分批迁移。首先,迁移保证应用运行必须的数据,在不影响应用运行的前提下,逐步将其他历史数据做迁移。对于增量表,按天为单位迁移最近的数据,历史数据可以逐步追加迁移。 为了提高效率,多个表的导出可以写成脚本的方式进行,通过脚本控制导出任务的并发 将导出的数据拷贝到加载机 文本乱码问题 对于问题3,需要测试估算在现场硬件配置的情况下实际的迁移效率,评估是否能在规定的迁移时间窗口内完成迁移。同时对需要迁移的数据做梳理统计,将表分批迁移。首先,迁移保证应用运行必须的数据,在不影响应用运行的前提下,逐步将其他历史数据做迁移。对于增量表,按天为单位迁移最近的数据,历史数据可以逐步追加迁移。 为了提高导出和导入的效率,在测试的基础上把数据导出/导入的步骤脚本化,通过脚本控制导出/导入的并发任务数。 Netezza外部表导出文本迁移 (’/tmp/emp.dat’)); 将需要迁移的表数据通过外部表卸载为文本文件 将导出的数据拷贝到加载机 方案存在问题及解决 使用Netezza外部表可能导致产品本身的bug,造成数据库宕机 对于问题4,需要测试估算在现场硬件配置的情况下实际的迁移效率,评估是否能在规定的迁移时间窗口内完成迁移。同时对需要迁移的数据做梳理统计,将表分批迁移。首先,迁移保证应用运行必须的数据,在不影响应用运行的前提下,逐步将其他历史数据做迁移。对于增量表,按天为单位迁移最近的数据,历史数据可以逐步追加迁移。 为了提高导出和导入的效率,在测试的基础上把数据导出/导入的步骤脚本化,通过脚本控制导出/导入的并发任务数。 对于问题1,目前缺乏原厂技术支持的情况下,只能在测试过程中减小导出工作对源数据库的压力。另外建议在数据库运行压力低峰时执行导出任务,并做好数据库宕机恢复预案。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 0:59:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |