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的相關信息,作為參照。