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を使用して作成した後、このプログラムによって目的の表が移入されます。