Oracle与Greenplum数据类型映射表
- 2020 年 4 月 3 日
- 筆記
最近有个需求,要将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的相关信息,作为参照。