コンソールを使用したOracle NoSQL Database Cloud Serviceでの表の作成

コンソールからOracle NoSQL Database Cloud Service表および索引を作成して管理する方法について学習します。

この記事には次のトピックが含まれます:

コンパートメントの作成

Oracle Cloud Infrastructureにサインアップすると、すべてのクラウド・リソースを保持するルート・コンパートメントを含むテナンシが作成されます。次に、テナンシ(ルート・コンパートメント)内に追加のコンパートメントを作成し、対応するポリシーを作成して各コンパートメント内のリソースへのアクセスを制御します。Oracle NoSQL Database Cloud Service表を作成する前に、Oracleでは、表が属するコンパートメントを設定することをお薦めします。

コンパートメントは、Oracle Cloud Infrastructure Identity and Access Management (IAM)で作成します。テナンシの設定およびコンパートメントの管理を参照してください

シングルトン表の作成

NoSQLコンソールから、新しいOracle NoSQL Database Cloud Service表を作成できます。

NoSQLコンソールを使用すると、次の2つのモードでOracle NoSQL Database Cloud Service表を作成できます:

  1. シンプル入力モード:このモードを使用すると、NoSQL Database Cloud Service表を宣言的に、つまりDDL文を記述せずに作成できます。

  2. 拡張DDL入力モード:このモードを使用すると、DDL文を使用してNoSQL Database Cloud Service表を作成できます。

シングルトン表の作成: シンプル入力モード

シンプル入力表作成モードを使用して、NoSQLコンソールから表を作成する方法について学習します。

表を作成するには:

  1. インフラストラクチャ・コンソールからNoNoSQLコンソールにアクセスします。「インフラストラクチャ・コンソールからのサービスへのアクセス」を参照してください。

  2. 「表の作成」をクリックします。

  3. 「表の作成」ダイアログで、「表作成モード」「単純入力」を選択します。

  4. 「予約済容量」には、「Always Free構成」を有効にするか、「容量モード」を構成するオプションがあります。Always Free構成は現在、フェニックス・リージョンでのみ使用可能です。

    • Always Freeの構成(「フェニックス」リージョンでのみ使用可能):

      Always FreeのNoSQL表を作成するには、トグル・ボタンを有効にします。トグル・ボタンを無効にすると、通常のNoSQL表が作成されます。テナンシには最大3つのAlways Free NoSQL表を作成できます。テナンシに3つのAlways Free NoSQL表がある場合、Always Free SQL表を作成する切替えボタンは使用不可になります。

      トグル・ボタンを有効にしてAlways FreeのNoSQL表を作成すると、「読取り容量」、「書込み容量」および「ディスク記憶域」フィールドにデフォルト値が割り当てられます。容量モードは「プロビジョニングされた容量」になります。これらの値は変更できません。

      Always Free構成オプションで作成された表の詳細、機能および制限についてさらに学習するには、Always Freeサービスを参照してください。

      crttbl_af_prov.pngの説明が続きます

      図crttbl_af_prov.pngの説明

      通常の表を作成する場合は、トグル・ボタンを無効にします。表に適切なキャパシティ値を入力できます。

      • 読取り容量(ReadUnits):読取りユニットの数を入力します。読取りユニットについて学習するには、容量の見積りを参照してください。

      • 書込み容量(WriteUnits):書込みユニットの数を入力します。書込みユニットについて学習するには、容量の見積りを参照してください。

      • ディスク・ストレージ(GB):表によって使用されるディスク領域をギガ・バイト(GB)で指定します。ストレージ容量について学習するには、容量の見積りを参照してください。

      crttbl_paid_prov.pngの説明が続きます

      図crttbl_paid_prov.pngの説明

    • 容量モード

      キャパシティ・モードのオプションとして、「プロビジョニング済キャパシティ」または「オンデマンド・キャパシティ」を指定できます。プロビジョニングされた容量モードとオンデマンド容量モードは、相互に排他的なオプションです。表に対してOn Demand Capacityを有効にする場合、表の読取り/書込み容量を指定する必要はありません。プロビジョニングされた使用量ではなく、実際の読取りおよび書込みユニットの使用量に対して課金されます。

      次のいずれかに当てはまる場合は、表のオンデマンド容量を有効にすることをお薦めします。

      1. 不明なワークロードで新しい表を作成します。

      2. 予測できないアプリケーション・トラフィックがあります。

      3. 使用した分だけ支払うのが楽です。

      表のOn Demand容量の有効化に関する制限事項:

      1. On Demand Capacityでは、表の容量が5,000回の書込みおよび10,000回の読取りに制限されます。

      2. テナント当たりのOn Demand Capacityの表の数は、3に制限されています。

      3. プロビジョニングされたテーブル・ユニットよりも、On Demand Capacityテーブル・ユニットに対して1ユニット当たりの料金が多くなります。

      crttbl_paid_prov.pngの説明が続きます

      図crttbl_paid_prov.pngの説明

      「On Demand Capacity」を選択すると、「Always Freeの構成」が無効になります。「Read Capacity」および「Write Capacity」入力ボックスは読み取り専用になり、テキスト「On Demand Capacity」が表示されます。On Demand Capacityテーブルでは、読み取り容量と書き込み容量の列に On Demand Capacityが表示されます。キャパシティ・モードが「オンデマンド容量」の場合、Always Freeコントロールは無効になります。ディスク・ストレージ(GB)の値を指定します。

      crttbl_ondemand.pngの説明が続きます

      図crttbl_ondemand.pngの説明

  5. 「名前」フィールドに、テナンシ内で一意の表名を入力します。

    表名は、Oracle NoSQL Database Cloud Serviceの命名規則に準拠している必要があります。Oracle NoSQL Database Cloud Serviceの制限を参照してください。

  6. 「主キー列」セクションで、主キーの詳細を入力します:

    • 列名:表の主キーの列名を入力します。列の命名要件について学習するには、Oracle NoSQL Database Cloud Serviceの制限を参照してください。

    • タイプ:主キー列のデータ型を選択します。

    • 精度:これは、TIMESTAMP型の列に対してのみ適用されます。タイムスタンプ値には、0から9の範囲の小数秒の精度があります。たとえば、精度0の場合、小数秒は格納されません。3の場合、タイムスタンプにミリ秒が格納され、9の場合、精度はナノ秒です。0の場合、精度は最小で、9の場合、精度は最大です。

    • シャード・キーとしての設定:このオプションをクリックして、この主キー列シャード・キーを設定します。シャード・キーとは、効率を高めるためにOracle NoSQL Database Cloud Serviceクラスタ全体にデータを分散し、参照およびアクセスが容易になるようにシャード・キーがローカルに共有するレコードを配置するためのものです。シャード・キーを共有するレコードは同じ物理的ロケーションに格納され、アトミックかつ効率的にアクセスできます。

    • +別の主キー列:複合(複数列)主キーの作成中に列を追加するには、このボタンをクリックします。

    • 上矢印および下矢印を使用して、コンポジット主キーの作成中に列の順序を変更します。 createtable_setpk.pngの説明が続きます

      図createtable_setpk.pngの説明

  7. 「列」セクションで、プライマリ以外の列の詳細を入力します。

    createtable_col.pngの説明が続きます

    図createtable_col.pngの説明

    • 列名:列名を入力します。Oracle NoSQL Database Cloud Serviceの制限で説明されている列の命名要件に準拠していることを確認します。

    • タイプ:列のデータ型を選択してください。

    • 精度:これは、TIMESTAMP型の列に対してのみ適用されます。タイムスタンプ値には、0から9の範囲の小数秒の精度があります。たとえば、精度0の場合、小数秒は格納されません。3の場合、タイムスタンプにミリ秒が格納され、9の場合、精度はナノ秒です。0の場合、精度は最小で、9の場合、精度は最大です。

    • サイズ:これは、BINARY型の列に対してのみ適用されます。サイズをバイト単位で指定して、バイナリを固定バイナリにします。

    • デフォルト値: (オプション)列のデフォルト値を指定します。

      ノート:バイナリおよびJSONデータ型の列には、デフォルト値を指定できません。

    • Value is Not Null:列に常に値が必要であることを指定するには、このオプションをクリックします。

    • +別の列:列を追加するには、このボタンをクリックします。

    • 列を削除するには、削除アイコンをクリックします。

  8. (オプション)「Table time to live (days)」フィールドで、表の行の有効期限(日数)を指定します。日数を超えると、行は自動的に期限切れになり、使用できなくなります。デフォルト値はゼロで、有効期限がないことを示します。

    ノート:「Time to Live」(TTL)を更新すると、表の既存データのTTL値は変更されません。新しいTTL値は、この値が変更された後に表に追加された行と、オーバーライドするの行固有の値が指定されていない行にのみ適用されます。

  9. (オプション)拡張オプションを指定するには、「拡張オプションの表示」を選択し、拡張の詳細を入力します:

    「タグ」セクションで、次を入力します:

    • タグ・ネームスペース:選択リストからタグ・ネームスペースを選択します。タグ・ネームスペースは、タグ・キーのコンテナと似ています。大/小文字を区別せず、テナンシ全体で一意である必要があります。

    • タグ・キー:タグを参照するために使用する名前を入力します。タグ・キーは、大/小文字を区別せず、ネームスペース内で一意である必要があります。

    • タグ値:タグに付ける値を入力します。

    • タグの追加:タグを追加する場合にクリックします。 createtable_adv.pngの説明が続きます

      図createtable_adv.pngの説明

  10. 「表の作成」を選択します。

表が作成され、NoSQLコンソールにリストされます。

現在のページのヘルプを表示するには、ページの上部にあるヘルプ・リンクをクリックします。

シングルトン表の作成: 拡張DDL入力モード

拡張DDL入力表作成モードを使用して、NoSQLコンソールから表を作成する方法について学習します。

表を作成するには:

  1. InfrastructureコンソールからNoNoSQLコンソールにアクセスします。「インフラストラクチャ・コンソールからのサービスへのアクセス」を参照してください。

  2. 「表の作成」を選択します。

  3. 「表の作成」ウィンドウで、「表作成モード」「拡張DDL入力」を選択します。

  4. 「予約済容量」には、「Always Free構成」を有効にするか、「容量モード」を構成するオプションがあります。

    • Always Freeの構成(「フェニックス」リージョンでのみ使用可能):

      Always FreeのNoSQL表を作成するには、トグル・ボタンを有効にします。トグル・ボタンを無効にすると、通常のNoSQL表が作成されます。テナンシには最大3つのAlways Free NoSQL表を作成できます。テナンシに3つのAlways Free NoSQL表がある場合、Always Free SQL表を作成する切替えボタンは使用不可になります。

      トグル・ボタンを有効にしてAlways FreeのNoSQL表を作成すると、「読取り容量」、「書込み容量」および「ディスク記憶域」フィールドにデフォルト値が割り当てられます。容量モードは「プロビジョニングされた容量」になります。これらの値は変更できません。

      Always Free構成オプションで作成された表の詳細、機能および制限についてさらに学習するには、Always Freeサービスを参照してください。

      crttbladv_af_prov.pngの説明が続きます

      図crttbladv_af_prov.pngの説明

      通常の表を作成する場合は、トグル・ボタンを無効にします。表に適切なキャパシティ値を入力できます。

      • 読取り容量(ReadUnits):読取りユニットの数を入力します。読取りユニットについて学習するには、容量の見積りを参照してください。

      • 書込み容量(WriteUnits):書込みユニットの数を入力します。書込みユニットについて学習するには、容量の見積りを参照してください。

      • ディスク・ストレージ(GB):表によって使用されるディスク領域をギガ・バイト(GB)で指定します。ストレージ容量について学習するには、容量の見積りを参照してください。

      crttbladv_paid_prov.pngの説明が続きます

      図crttbladv_paid_prov.pngの説明

    • 容量モード

      キャパシティ・モードのオプションとして、「プロビジョニング済キャパシティ」または「オンデマンド・キャパシティ」を指定できます。プロビジョニングされた容量モードとオンデマンド容量モードは、相互に排他的なオプションです。表に対してOn Demand Capacityを有効にする場合、表の読取り/書込み容量を指定する必要はありません。プロビジョニングされた使用量ではなく、実際の読取りおよび書込みユニットの使用量に対して課金されます。

      次のいずれかに当てはまる場合は、表のオンデマンド容量を有効にすることをお薦めします。

      1. 不明なワークロードで新しい表を作成します。

      2. 予測できないアプリケーション・トラフィックがあります。

      3. 使用した分だけ支払うのが楽です。

      表のOn Demand容量の有効化に関する制限事項:

      1. On Demand Capacityでは、表の容量が5,000回の書込みおよび10,000回の読取りに制限されます。

      2. テナント当たりのOn Demand Capacityの表の数は、3に制限されています。

      3. プロビジョニングされたテーブル・ユニットよりも、On Demand Capacityテーブル・ユニットに対して1ユニット当たりの料金が多くなります。

      crttbladv_paid_prov.pngの説明が続きます

      図crttbladv_paid_prov.pngの説明

      「On Demand Capacity」を選択すると、「Always Freeの構成」が無効になります。「Read Capacity」および「Write Capacity」入力ボックスは読み取り専用になり、テキスト「On Demand Capacity」が表示されます。On Demand Capacityテーブルでは、読み取り容量と書き込み容量の列に On Demand Capacityが表示されます。キャパシティ・モードが「オンデマンド容量」の場合、Always Freeコントロールは無効になります。ディスク・ストレージ(GB)の値を指定します。

      crttbladv_ondemand.pngの説明が続きます

      図crttbladv_ondemand.pngの説明

  5. 「DDL入力」セクションで、「問合せ」に表の作成のDDL文を入力します。文が不完全または障害があるというエラーが表示される場合があります。OCIコンソールで発生する可能性のあるエラーとその修正方法について学習するには、OCIコンソールでのSQL文エラーのデバッグを参照してください。create table文の例は、開発者ガイドを参照してください。

  6. (オプション)拡張オプションを指定するには、「拡張オプションの表示」を選択し、拡張の詳細を入力します:

    • タグ・ネームスペース:選択リストからタグ・ネームスペースを選択します。タグ・ネームスペースは、タグ・キーのコンテナと似ています。大/小文字を区別せず、テナンシ全体で一意である必要があります。
    • タグ・キー:タグを参照するために使用する名前を入力します。タグ・キーは、大/小文字を区別せず、ネームスペース内で一意である必要があります。
    • タグ値:タグに付ける値を入力します。
    • タグの追加:タグを追加する場合にクリックします。

      createtable_adv.pngの説明が続きます

      図createtable_adv.pngの説明

  7. 「表の作成」をクリックします。

表が作成され、NoSQLコンソールにリストされます。

現在のページのヘルプを表示するには、ページの上部にあるヘルプ・リンクをクリックします。

子表の作成

Oracle NoSQL Databaseでは、階層構造(親子表)で表を作成できます。

表階層

create table文を使用して、表を別の表の子表として作成し、その表を新しい表の親にすることができます。これは、子表のコンポジット名(name_path)を使用して実行します。コンポジット名は、ドットで区切られたN個(N > 1)の識別子で構成されます。最後の識別子は子表のローカル名であり、最初のN-1個の識別子は親の名前です。

        A
      /   \
   A.B    A.G
    /
 A.B.C
  /
A.B.C.D

一番上の親テーブルはAです。子表Bはコンポジット名A.Bを取得します。次のレベルの子表Cは、コンポジット名A.B.Cなどを取得します。

子表のプロパティ:

親子表のトランザクション

親表と子表は、同じシャード・キーを共有します。子表を使用すると、次の2つの簡単なステップを使用して、複数のオブジェクト間でACIDトランザクションを実現できます。

子表が存在しない場合、複数のオブジェクト間でACIDトランザクションを達成することは面倒な手順です。子表を使用しない場合は、次の操作を行います。

子表を使用すると、複数のオブジェクト間でACIDトランザクションを簡単に実現できます。

子表での認可:

表を所有しておらず、この表の読取り、削除または挿入を行う場合は、次の2つの条件を満たす必要があります。

詳細は、認可用のIAMポリシーを参照してください。

たとえば、所有していない子表myTable.child1にデータを挿入する場合は、子表に対するINSERT権限と、myTableに対するREAD権限またはINSERT権限(あるいはその両方)が必要です。子表への権限の付与は、親表への権限の付与とは関係ありません。つまり、親表に同じ権限を付与せずに、子表に特定の権限を付与できます。親/子結合問合せには、問合せで使用されるすべての表に対する関連権限が必要です。詳細は、「親子表での左外部結合の使用」を参照してください。

子表の作成

ノート:子表はトップレベル表からこれらの制限を継承するため、「Read Capacity」、「Write Capacity」および「Disk Storage」フィールドは指定されません。トップレベル表に設定された制限は、子表に自動的に適用されます。

子表の詳細の表示

子表の作成後にその詳細を表示できます。

viewtbl-childtbl.pngの説明が続きます

図viewtbl-childtbl.pngの説明