データ型のマッピングは、OceanBaseデータベースからParquet、ORC、MaxCompute(ODPS)形式にデータをエクスポートする際に、元のデータとターゲット形式のデータ型を正確に対応付けることを保証します。OceanBaseデータベースは、明確なマッピングテーブルを通じて、MySQLおよびOracleの各種データ型とParquet、ORC、MaxCompute(ODPS)がサポートするデータ型を関連付けることで、データのエクスポートプロセス中の損失や過負荷を防ぎ、その意味を保持します。
説明
ただし、CSVファイルはエクスポート後、文字列型になります。
Parquet形式へのエクスポート
Parquet物理型 |
Parquet論理型 |
Hiveデータ型 |
Oracleテナントのデータ型 |
備考 |
|---|---|---|---|---|
| FLOAT | NONE | FLOAT | BINARY_FLOAT | |
| DOUBLE | NONE | DOUBLE | BINARY_DOUBLE | |
| FIXED_LEN_BYTE_ARRAY | DECIMAL | DECIMAL | NUMBER | precisionとscaleを指定する必要があります |
| BYTE_ARRAY | STRING | CHAR | CHAR | Parquetのstring型はすべてutf8エンコードです |
| BYTE_ARRAY | STRING | VARCHAR | VARCHAR2 | |
| BYTE_ARRAY | STRING | STRING | RAW, BLOB, CLOB | |
| INT64 | TIMESTAMP(is_adjusted_to_utc=false, parquet::LogicalType::TimeUnit::MICROS) | TIMESTAMP | DATE | |
| INT96 | NONE | TIMESTAMP | TIMESTAMP, TIMESTAMP WITH LOCAL TIME ZONE | |
ORC形式へのエクスポート
ORC型 |
Hiveデータ型 |
Oracleテナントのデータ型 |
|---|---|---|
| FLOAT | FLOAT | BINARY_FLOAT |
| DOUBLE | DOUBLE | BINARY_DOUBLE |
| DECIMAL | DECIMAL | NUMBER |
| CHAR | CHAR | CHAR |
| VARCHAR | VARCHAR | VARCHAR2 |
| STRING | STRING | CLOB |
| BINARY | BINARY | BLOB/RAW |
| TIMESTAMP | TIMESTAMP | DATE/TIMESTAMP/TIMESTAMP WITH LOCAL TIME ZONE |
MaxCompute(ODPS)形式へのエクスポート
MaxCompute(ODPS) データ型 |
Oracleテナントのデータ型 |
|---|---|
| BOOLEAN | NUMBER(1,0) |
| TINYINT | NUMBER(3,0) |
| SMALLINT | NUMBER(5,0) |
| INT | NUMBER(10,0) |
| BIGINT | NUMBER(20,0) |
| FLOAT | BINARY_FLOAT |
| DOUBLE | BINARY_DOUBLE |
| DECIMAL | NUMBER(P,S) (PとSはユーザーが明示的に指定する必要があります) |
| CHAR (最大長255バイト、不足分はスペースで補完) | CHAR |
| VARCHAR(最大長65535) | VARCHAR |
| STRING(長さ制限8MB) | VARCHAR/CLOB |
| BINARY (長さ制限8MB) | RAW BLOB: データベース内の大規模なバイナリオブジェクトを格納するために使用されます。BLOBオブジェクトは文字セットの意味を持たないビットストリームと見なすことができます。バイトの上限長は536870910バイトです |
| TIMESTAMP (UTC時間をナノ秒単位で9桁まで格納しますが、表示時は現在のタイムゾーンに変換されます) | TIMESTAMP(9) WITH LOCAL TIME ZONE |
| TIMESTAMP_NTZ(UTC時間をナノ秒単位で9桁まで格納しますが、タイムゾーンとは無関係です) | TIMESTAMP |
| DATE(形式はyyyy-mm-dd、値の範囲は0001-01-01~9999-12-31) | DATE |
| DATETIME(ミリ秒単位で、小数点以下3桁の精度。値の範囲:0001-01-01 00:00:00.000~9999-12-31 23:59:59.999) | TIMESTAMP |
| ARRAY | 現在はサポートされていません |
| MAP | 現在はサポートされていません |
| STRUCT | 現在はサポートされていません |
| JSON | 現在はサポートされていません |