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外部表を作成すると、表を問い合せる際にエラーが発生します。