データ型のマッピングにより、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(形式はyyy-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 | 現在サポートされていません |