例で使用する表

表は、ユーザー・データを保持するための基本構造です。

表1: 航空会社手荷物追跡アプリケーション

このスキーマで使用される表はBaggageInfoです。このスキーマには、LONG、STRINGなどの固定データ型の組合せが存在します。また、列の1つとしてスキーマなしのJSON (bagInfo)も存在します。スキーマなしのJSONには固定データ型がありません。乗客の手荷物情報は、スキーマなしのJSONです。一方、チケット番号、フルネーム、性別、連絡先詳細などの乗客情報は、すべて固定スキーマの一部です。この非固定スキーマなしのJSONフィールドに任意の数のフィールドを追加できます。

次のコードは、表を作成します。
CREATE TABLE BaggageInfo (
ticketNo LONG,
fullName STRING,
gender STRING,
contactPhone STRING,
confNo STRING,
bagInfo JSON,
PRIMARY KEY (ticketNo)
)

表2: ストリーミング・メディア・サービス - 永続ユーザー・プロファイル・ストア

このスキーマで使用される表はstream_acctです。このスキーマでの主キーはacct_idです。このスキーマにはJSON列(acct_data)も含まれており、これはスキーマレスです。スキーマなしのJSONには固定データ型がありません。この非固定スキーマレスJSONフィールドには、任意の数のフィールドを追加できます。

次のコードは、表を作成します。
CREATE TABLE stream_acct(
acct_id INTEGER,
profile_name STRING,
account_expiry TIMESTAMP(9),
acct_data JSON, 
PRIMARY KEY(acct_id)
)

表3: JSONコレクション表 - ショッピング・アプリケーション

JSONコレクション表は、データを純粋にドキュメントとして格納および取得するアプリケーションに役立ちます。JSONコレクション表はスキーマレス表であり、主キー・フィールド宣言を使用して表を柔軟に作成できます。表へのデータの挿入時に、ドキュメント内の他のフィールドとともに主キー・フィールドの値を指定する必要があります。

ショッピング・アプリケーションで使用される表は、storeAcctです。この表は、買物客のcontactPhoneが主キーであるドキュメントのコレクションです。行は、個々の買物客のレコードを表します。個々の行にドキュメント内と同じフィールドを含む必要はありません。買物客のプリファレンス(nameaddressemailnotifyなど)は、ドキュメントの最上位フィールドとして格納されます。ドキュメントには、ショッピング関連情報を含む任意の数のJSONフィールド(wishlistcartordersなど)を含めることができます。

JSON配列wishlistには、買物客が希望する商品が含まれます。この配列の各要素には、itempriceperunitなどのネストされたJSONフィールドが含まれており、ウィッシュリスト項目の商品名と価格詳細を格納します。

JSON配列cartには、買物客が購入する予定の商品が含まれます。この配列の各要素には、商品名、単位数および各単位の価格を格納するネストされたJSONフィールド(itemquantitypriceperunitなど)が含まれます。

JSON配列ordersには、買物客が購入した商品が含まれます。この配列の各要素には、orderIDitempriceperunitEstDeliverystatusなどのネストされたJSONフィールドが含まれ、注文番号、商品名、各単位の価格、商品の配送見積日および注文のステータスを格納します。

次のコードは、表を作成します。
CREATE TABLE IF NOT EXISTS storeAcct (
contactPhone STRING, 
PRIMARY KEY(SHARD(contactPhone))
) AS JSON COLLECTION