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

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

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

コンパートメントの作成

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

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

シングルトン表の作成

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

NoSQLコンソールを使用すると、Oracle NoSQL Database Cloud Service表を次の2つのモードで作成できます:
  1. シンプル入力モード:このモードを使用すると、NoSQL Database Cloud Serviceテーブルを宣言的に、つまりDDLステートメントを記述せずに作成できます。
  2. 拡張DDL入力モード:このモードを使用すると、DDL文を使用してNoSQL Database Cloud Service表を作成できます。

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

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

表を作成するには:
  1. インフラストラクチャ・コンソールからNoSQLコンソールにアクセスします。インフラストラクチャ・コンソールからのサービスへのアクセスを参照してください。
  2. 「表の作成」をクリックします。
  3. 「表の作成」ダイアログで、「表作成モード」「シンプル入力」を選択します。
  4. 「予約済容量」には、次のオプションがあります。
    • Always Free構成:

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

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


      通常の表を作成する場合は、トグル・ボタンを無効にします。表に適切なキャパシティ値を入力できます。
      • 読取り容量(ReadUnits):読取りユニットの数を入力します。読取りユニットについて学習するには、容量の見積りを参照してください。
      • 書込み容量(WriteUnits):書込みユニットの数を入力します。書込みユニットについて学習するには、容量の見積りを参照してください。
      • ディスク・ストレージ(GB):表によって使用されるディスク領域をギガバイト(GB)で指定します。ストレージ容量について学習するには、容量の見積りを参照してください。


    • 容量モード

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

      次のいずれかに該当する場合は、表のオンデマンド容量を有効にすることをお薦めします。
      1. 不明なワークロードを含む新しい表を作成します。
      2. 予測できないアプリケーション・トラフィックがあります。
      3. 使いやすさは、使用した分だけの使いやすさです。
      表のOn Demandキャパシティの有効化の制限事項:
      1. On Demand Capacityでは、表の容量が5,000回の書込みおよび10,000回の読取りに制限されます。
      2. テナント当たりのオンデマンド容量がある表の数は3に制限されています。
      3. On Demand Capacityテーブル・ユニットの単位当たりの支払額は、プロビジョニングされたテーブル・ユニットよりも多くなります。


      「On Demand Capacity」を選択すると、「Always Free構成」が無効になります。「Read Capacity」および「Write Capacity」入力ボックスは読み取り専用になり、「On Demand Capacity」というテキストが表示されます。On Demand Capacityテーブルでは、読取りおよび書込み容量列にOn Demand Capacityが表示されます。「容量」モードが「オンデマンド容量」の場合、「Always Free」制御は無効になります。


  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は最大です。
    • シャード・キーとして設定:この主キー列をシャード・キーとして設定するには、このオプションをクリックします。Shard key is to distribute data across the Oracle NoSQL Database Cloud Service cluster for increase efficiency, and to position records that share the shard key local for easy reference and access. シャード・キーを共有するレコードは同じ物理的ロケーションに格納され、アトミックかつ効率的にアクセスできます。
    • +別の主キー列:コンポジット(複数列)主キーの作成中に列を追加するには、このボタンをクリックします。
    • 上矢印および下矢印を使用して、コンポジット主キーの作成中に列の順序を変更します。

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

    • 列名:列名を入力します。Oracle NoSQL Database Cloud Serviceの制限で説明されている列の命名要件に準拠していることを確認します。
    • タイプ:列のデータ型を選択します。
    • 精度:これは、TIMESTAMP型の列に対してのみ適用されます。タイムスタンプ値には、0から9の範囲の小数秒の精度があります。たとえば、精度0は小数秒が格納されないことを意味します。3はタイムスタンプにミリ秒が格納され、9はナノ秒の精度を意味します。0は最小精度、9は最大です。
    • サイズ:これは、BINARY型の列に対してのみ適用されます。バイト単位でサイズを指定すると、バイナリは固定バイナリになります。
    • デフォルト値: (オプション)列のデフォルト値を指定します。

      ノート:

      バイナリおよびJSONデータ型の列には、デフォルト値を指定できません。
    • 値はnullではありません:列が常に値を持つように指定するには、このオプションをクリックします。
    • +別の列:列を追加するには、このボタンをクリックします。
    • 列を削除するには、削除アイコンをクリックします。
  8. (オプション)拡張オプションを指定するには、「拡張オプションの表示」をクリックし、拡張の詳細を入力します:
    • 表Time to Live (日数): (オプション)表の行の有効期限(日数)を指定します。日数が経過すると、行は自動的に期限切れになり、使用できません。デフォルト値はゼロで、有効期限がないことを示します。

      ノート:

      「Time to Live」(TTL)を更新すると、表の既存データのTTL値は変更されません。新しいTTL値は、この値の変更後に表に追加された行と、オーバーライドする行固有の値が指定されていない行にのみ適用されます。
    「タグ」セクションで:
    • タグ・ネームスペース:選択リストからタグ・ネームスペースを選択します。タグ・ネームスペースは、タグ・キーのコンテナと似ています。大/小文字を区別せず、テナント全体で一意である必要があります。
    • タグ・キー:タグを参照するために使用する名前を入力します。タグ・キーは、大文字と小文字を区別せず、ネームスペース内で一意である必要があります。
    • 値:タグに付ける値を入力します。
    • +追加タグ:タグを追加する場合にクリックします。

  9. 「表の作成」をクリックします。
表を作成し、NoSQLコンソールにリストします。
現在のページのヘルプを表示するには、ページの上部にあるヘルプ・リンクをクリックします。

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

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

表を作成するには:
  1. インフラストラクチャ・コンソールからNoSQLコンソールにアクセスします。インフラストラクチャ・コンソールからのサービスへのアクセスを参照してください。
  2. 「表の作成」をクリックします。
  3. 「表の作成」ウィンドウで、「表作成モード」「拡張DDL入力」を選択します。
  4. 「予約済容量」には、次のオプションがあります。
    • Always Free構成:

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

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


      通常の表を作成する場合は、トグル・ボタンを無効にします。表に適切なキャパシティ値を入力できます。
      • 読取り容量(ReadUnits):読取りユニットの数を入力します。読取りユニットについて学習するには、容量の見積りを参照してください。
      • 書込み容量(WriteUnits):書込みユニットの数を入力します。書込みユニットについて学習するには、容量の見積りを参照してください。
      • ディスク・ストレージ(GB):表によって使用されるディスク領域をギガバイト(GB)で指定します。ストレージ容量について学習するには、容量の見積りを参照してください。


    • 容量モード

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

      次のいずれかに該当する場合は、表のオンデマンド容量を有効にすることをお薦めします。
      1. 不明なワークロードを含む新しい表を作成します。
      2. 予測できないアプリケーション・トラフィックがあります。
      3. 使いやすさは、使用した分だけの使いやすさです。
      表のOn Demandキャパシティの有効化の制限事項:
      1. On Demand Capacityでは、表の容量が5,000回の書込みおよび10,000回の読取りに制限されます。
      2. テナント当たりのオンデマンド容量がある表の数は3に制限されています。
      3. On Demand Capacityテーブル・ユニットの単位当たりの支払額は、プロビジョニングされたテーブル・ユニットよりも多くなります。


      「On Demand Capacity」を選択すると、「Always Free構成」が無効になります。「Read Capacity」および「Write Capacity」入力ボックスは読み取り専用になり、「On Demand Capacity」というテキストが表示されます。On Demand Capacityテーブルでは、読取りおよび書込み容量列にOn Demand Capacityが表示されます。「容量」モードが「オンデマンド容量」の場合、「Always Free」制御は無効になります。


  5. 「DDL入力」セクションで、「問合せ」に表の作成のDDL文を入力します。文が不完全または障害があるというエラーが表示される場合があります。OCIコンソールで発生する可能性のあるエラーとその修正方法について学習するには、OCIコンソールでのSQL文エラーのデバッグを参照してください。create table文の例は、開発者ガイドを参照してください。
  6. (オプション)拡張オプションを指定するには、「拡張オプションの表示」をクリックし、拡張の詳細を入力します:
    • タグ・ネームスペース:選択リストからタグ・ネームスペースを選択します。タグ・ネームスペースは、タグ・キーのコンテナと似ています。大/小文字を区別せず、テナント全体で一意である必要があります。
    • タグ・キー:タグを参照するために使用する名前を入力します。タグ・キーは、大文字と小文字を区別せず、ネームスペース内で一意である必要があります。
    • 値:タグに付ける値を入力します。
    • +追加タグ:タグを追加する場合にクリックします。

  7. 「表の作成」をクリックします。
表を作成し、NoSQLコンソールにリストします。
現在のページのヘルプを表示するには、ページの上部にあるヘルプ・リンクをクリックします。

子表の作成

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

表階層

表の作成文を使用して、別の表の子表として表を作成し、その別の表が新しい表の親になります。これは、子表のコンポジット名(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を取得します。

子表のプロパティ:

  • 子表の作成時に読取り容量、書込み容量またはディスク記憶域の制限を指定することはできません。子表は、親表の対応する値を共有します。
  • 子表は、テナンシの表の合計数に対してカウントされます。
  • 親表とその子表は、常に同じコンパートメントにあります。
  • メトリック情報は、親レベルで収集および集計されます。子表レベルではメトリックは表示されません。
  • 子表には、親表とは関係なく独自のタグがあります。
  • 子表は、親表のキャパシティ価格設定モデルも継承します。たとえば、親表がOn Demand Capacityで構成されている場合、同じキャパシティ価格設定モデルで子表を構成することもできます。

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

親表と子表は、同じシャード・キーを共有します。子表を使用すると、次の2つの簡単なステップを使用して、複数のオブジェクト間でACIDトランザクションを実現できます。
  • 表を別の表の子として宣言します。
  • writeMutliple APIを使用して、親表と子表の両方に対する操作を追加します。
子テーブルが存在しない場合、複数のオブジェクト間でACIDトランザクションを実行することは面倒な手順です。子表がない場合、次のことを行います。
  • トランザクションに含めるすべてのオブジェクトのシャード・キー値を検索します。
  • すべてのオブジェクトのシャード・キーが等しいことを確認します。
  • writeMutliple APIを使用して、すべてのオブジェクトをコレクションに追加します。

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

子表での認可:

表を所有しておらず、この表の読取り、削除または挿入を行う場合は、次の2つの条件を満たす必要があります。
  • 子表に対する特定の権限(READ/INSERT/DELETE)があります。
  • 階層内の特定の子表の親表に対して、同じ権限または少なくとも読取り権限があります。

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

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

子表の作成

  • 詳細を表示する親表をクリックします。親にすでに存在する子表のリストが表示されます。
  • 左側のナビゲーション・メニューの「リソース」で、「子表」をクリックします。

    • 親表の子表のリストが表示されます。子表を作成するには、「子表の作成」をクリックします。

  • 「簡易入力」メソッドまたは「拡張DDL入力」メソッドを選択して、子表を作成できます。
  • 子表の名前を指定します。この接頭辞には、親表の名前の後にドットが付きます。列および主キー列のリストを指定します。



  • 子表は最上位の親表からシャード・キーを継承するため、子表の作成時に「シャード・キーとして設定」チェック・ボックスは表示されません。

ノート:

子テーブルがトップレベルのテーブルからこれらの制限を継承するため、「読み取り容量」、「書き込み容量」、および「ディスクストレージ」フィールドは指定されません。最上位表に設定された制限は、子表に自動的に適用されます。

子表の詳細の表示

子表の詳細は、作成後に表示できます。