7 Oracle NoSQL Database表モデルへのHiveデータ・モデルのマッピング
ここに記載されている例で示すように、Oracle NoSQL Database表に格納されたデータに対してHive問合せを実行するには、目的のOracle NoSQL Database表のスキーマからマップされたスキーマを使用してHive外部表を作成する必要があります。そのためには、ここで説明するマッピングを適用します。
次のHive
ObjectInspectorインタフェースの実装は、デシリアライズ・プロセスで使用され、Oracle NoSQL Database表モデルによって定義された関連データ型をHiveデータ・モデル内の対応する型に変換します。oracle.kv.hadoop.hive.tableに関する項を参照してください。
oracle.kv.hadoop.hive.table.TableBinaryObjectInspectororacle.kv.hadoop.hive.table.TableBooleanObjectInspectororacle.kv.hadoop.hive.table.TableDoubleObjectInspectororacle.kv.hadoop.hive.table.TableFloatObjectorInspectororacle.kv.hadoop.hive.table.TableIntObjectInspectororacle.kv.hadoop.hive.table.TableLongObjectInspectororacle.kv.hadoop.hive.table.TableJsonObjectInspectororacle.kv.hadoop.hive.table.TableNumberObjectInspectororacle.kv.hadoop.hive.table.TableTimestampObjectInspectororacle.kv.hadoop.hive.table.TableEnumObjectInspectororacle.kv.hadoop.hive.table.TableArrayObjectInspectororacle.kv.hadoop.hive.table.TableMapObjectInspectororacle.kv.hadoop.hive.table.TableRecordObjectInspector
次の表に示すように、Oracle NoSQL Databaseによって定義されたデータ・モデル(oracle.kv.table.FieldDef.Typeに関する項を参照)は、Hiveによって定義されたタイプのサブセットにマップされます。具体的には、特定のOracle NoSQL Database表のデータを問合せできるようにHive外部表を作成する場合は、次の表に示すマッピングと一致するスキーマでHive表を作成する必要があります。
表7-1 Hiveデータ・モデル
| Oracle NoSQL Databaseタイプ | Hiveタイプ |
|---|---|
| FieldDef.Type.STRING | STRING |
| CHAR | |
| VARCHAR | |
| FieldDef.Type.JSON | STRING |
| FieldDef.Type.BOOLEAN | BOOLEAN |
| FieldDef.Type.BINARY | BINARY |
| FieldDef.Type.FIXED_BINARY | BINARY |
| TINYINT | |
| SMALLINT | |
| FieldDef.Type.INTEGER | INT |
| FieldDef.Type.LONG | BIGINT |
| FieldDef.Type.FLOAT | FLOAT |
| FieldDef.Type.NUMBER | DECIMAL |
| FieldDef.Type.DOUBLE | DOUBLE |
| FieldDef.Type.ENUM | STRING |
| FieldDef.Type.TIMESTAMP | java.sql.TIMESTAMP |
| DATE | |
| FieldDef.Type.ARRAY | ARRAY |
| FieldDef.Type.MAP | MAP<STRING, data_type> |
| FieldDef.Type.RECORD | STRUCT<col_name : data_type,...> |
| UNIONTYPE<data_type,data_type,...> |
詳細は、FieldDef.Typeに関する項を参照してください。
Hiveを使用してOracle NoSQL Database表のデータを問い合せる場合、作成するHive外部表のスキーマは、問い合せる対応するOracle NoSQL Database表のスキーマに依存していることを理解することが重要です。したがって、Oracle NoSQL Database FieldDef.TypeからマップされていないHiveデータ型を含むスキーマを使用してHive外部表を作成すると、表を問い合せる際にエラーが発生します。