rmvTableという表の例のスキーマ

プリミティブ・データ型と非プリミティブ・データ型の混在で構成されるOracle NoSQL Database表にHive問合せを適用する方法を示すために、次の表に示すスキーマを備えたrmvTableという名前の表を、この例でデプロイされたOracle NoSQL Databaseストアに作成する必要があります。次に示すスキーマで指定されたデータ型は、Oracle NoSQL Database表APIで定義されています(FieldDef.Typeに関する項を参照)。

表9-1 rmvTableのスキーマ

フィールド名 フィールド型
zipcode FieldDef.Type.STRING
lastname FieldDef.Type.STRING
first name FieldDef.Type.STRING
ssn FieldDef.Type.STRING
gender FieldDef.Type.ENUM
license FieldDef.Type.FIXED_BINARY(9)
phoneinfo FieldDef.Type.MAP(STRING)
address FieldDef.Type.RECORD
addressレコード・スキーマ number FieldDef.Type.INTEGER
street FieldDef.Type.STRING
unit FieldDef.Type.INTEGER
city FieldDef.Type.STRING
state FieldDef.Type.STRING
zip FieldDef.Type.INTEGER
vehicleinfo

FieldDef.Type.ARRAY (FieldDef.Type.RECORD)

vehicleinfo要素レコード・スキーマ FieldDef.Type.STRING
make FieldDef.Type.STRING
model FieldDef.Type.STRING
class FieldDef.Type.STRING
color FieldDef.Type.STRING
value FieldDef.Type.STRING
tax FieldDef.Type.STRING
paid FieldDef.Type.STRING

表9-2 主キー・フィールド名

主キー・フィールド名
zipcode lastname first name ssn

表9-3 シャード主キー・フィールド名

シャード・キー・フィールド名
zipcode

このスキーマを調べると、rmvTableの例は、自動車のレジストリが1台目の車両を登録した車両所有者および(オプションで)2台目の車両(場合によっては3台目の車両)について保持する可能性のあるデータの行で構成されていることがわかります。各所有者に関する個人情報(名前、住所、性別、電話番号など)に加えて、データの各行には配列も含まれ、配列の各要素がレコードであり、その内容は所有者が登録する各車両に関する情報で構成されます。

たとえば、製造、モデル、色などの車両属性に加えて、レコードには車両の査定値、登録料金(税金)、および所有者が料金を支払ったかどうかも含まれます。前述の表スキーマは少し不自然に見える可能性がありますが、Oracle NoSQL Database表APIから幅広いデータ型を示すことを目的としています。

前述のスキーマを使用して表を作成するには、ストアの管理CLIで個々のコマンドを入力するのではなく、表データ定義言語(DDL)を使用することをお薦めします(表データ定義言語の概要に関する項を参照)。そのためには、次の各項に示す手順に従ってLoadRmvTableプログラムをコンパイルおよび実行します。DDLを使用して作成した後、このプログラムによって目的の表が移入されます。