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.TableBinaryObjectInspector
oracle.kv.hadoop.hive.table.TableBooleanObjectInspector
oracle.kv.hadoop.hive.table.TableDoubleObjectInspector
oracle.kv.hadoop.hive.table.TableFloatObjectorInspector
oracle.kv.hadoop.hive.table.TableIntObjectInspector
oracle.kv.hadoop.hive.table.TableLongObjectInspector
oracle.kv.hadoop.hive.table.TableJsonObjectInspector
oracle.kv.hadoop.hive.table.TableNumberObjectInspector
oracle.kv.hadoop.hive.table.TableTimestampObjectInspector
oracle.kv.hadoop.hive.table.TableEnumObjectInspector
oracle.kv.hadoop.hive.table.TableArrayObjectInspector
oracle.kv.hadoop.hive.table.TableMapObjectInspector
oracle.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外部表を作成すると、表を問い合せる際にエラーが発生します。