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