最近有个需求,要将Oracle中一些表迁移到Greenplum中,其中涉及到数据类型的转换,在网上没找到映射表,特查阅资料找到此映射表,并分享出来,来源于《Greenplum从大数据战略到实现》一书。
Oracle与Greenplum不同数据类型的转换方式,如下:
Oracle
Greenplum
说明
VARCHAR2(n)
VARCHAR(n)
在Oracle中n代表字节数,在Greenplum中n代表字符数
CHAR(n)
CHAR(n)
在Oracle中n代表字节数,在Greenplum中n代表字符数
NUMBER(n,m)
NUMERIC(n,m)
number可以转换成numeric,但真实业务中数值类型可以用smalllint、int或bigint等代替,性能会有较大提升
NUMBER(4)
SMALLLINT
NUMBER(9)
INT
NUMBER(18)
BIGINT
NUMBER(n)
NUMERIC(n)
如果n>19,则可以转换成numeric类型
DATE
TIMESTAMP(0)
Oracle和Greenplum都有日期类型,但Oracle的日期类型会同时保存日期和时间,而Greenplum只保存日期
TIMESTAMP WITH LOCAL TIME ZONE
TIMESTAMPTZ
注意:Greenplum中的TIMESTAMPTZ不等同于Oracle中的TIMESTAMP WITH TIME ZONE
CLOB
TEXT
Greenplum中TEXT类型不能超过1GB
BLOBRAW(n)
BYTEA(1 GB limit) Large object
在Oracle中BLOB用于存放非结构化的二进制数据类型,最大可存储128TB;而Greenplum中BYTEA类型最大可以存储1GB,如果有更大的存储要求,可以使用Large Object类型
因greenplum集成了postgreSQL,两者有很多相似之处。若在网上找不到greenplum的资料,建议可以查postgreSQL的相关信息,作为参照。
---来自腾讯云社区的---penny
微信扫一扫打赏
支付宝扫一扫打赏