

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Keyspaces でテーブルを作成する
<a name="getting-started.tables"></a>

このセクションでは、コンソール、`cqlsh`、または AWS CLIを使用してテーブルを作成します。

テーブルとは、データが整理されて保存されている場所です。テーブルのプライマリキーによって、テーブル内のデータの分割方法が決まります。プライマリキーは、必須のパーティションキー 1 つと、1 つ以上のオプションのクラスタリング列で構成されています。プライマリキーを構成する複合値は、テーブルのすべてのデータで一意でなければなりません。テーブルの詳細については、次のトピックを参照してください。
+ パーティションキーの設計: [Amazon Keyspaces でパーティションキーを効果的に使用する方法](bp-partition-key-design.md)
+ テーブルの操作: [Amazon Keyspaces でテーブルの作成ステータスを確認する](tables-create.md)
+ CQL 言語リファレンスの DDL ステートメント: [テーブル](cql.ddl.table.md)
+ テーブルリソース管理: [Amazon Keyspaces (Apache Cassandra 向け) でのサーバーレスリソースの管理](serverless_resource_management.md)
+ テーブルのリソース使用率のモニタリング: [Amazon CloudWatch による Amazon Keyspaces のモニタリング](monitoring-cloudwatch.md)
+ [Amazon Keyspaces (Apache Cassandra 向け) のクォータ](quotas.md)

テーブルを作成する際には、以下を指定できます。
+ テーブルの名前。
+ テーブル内の各列の名前とデータ型。
+ テーブルのプライマリキー。
  + [**Partition key (パーティションキー)**] - 必須
  + [**Clustering columns (クラスタリング列)**] — オプション

次の手順で、指定した列、データ型、パーティションキー、クラスタリング列を含むテーブルを作成します。

## コンソールを使用する
<a name="getting-started.tables.con"></a>

次の手順では、これらの列とデータ型が含まれているテーブル `book_awards` を作成します。

```
year           int
award          text
rank           int 
category       text
book_title     text
author         text
publisher      text
```

**コンソールを使用してテーブルを作成するには**

1. にサインインし AWS マネジメントコンソール、[https://console.aws.amazon.com/keyspaces/home](https://console.aws.amazon.com/keyspaces/home) で Amazon Keyspaces コンソールを開きます。

1. ナビゲーションペインで、[**Keyspaces (キー空間)**] を選択します。

1. このテーブルを作成するキースペースとして `catalog` を選択します。

1. [**Create table (テーブルの作成)**] を選択します。

1. [**Table name (テーブル名)**] ボックスに、テーブルの名前として「**book\$1awards**」を入力します。

   **名前の制約:**
   + 名前を空にすることはできません。
   + 使用できる文字: 英数字と下線 (`_`) です。
   + 最大長は 48 文字です。

1. [**Columns (列)**] セクションで、このテーブルを追加する各列に対して以下のステップを繰り返します。

   次の列とデータ型を追加します。

   ```
   year           int
   award          text
   rank           int 
   category       text
   book_title     text
   author         text
   publisher      text
   ```

   1. [**Name (名前)**] — 列の名前を入力します。

      **名前の制約:**
      + 名前を空にすることはできません。
      + 使用できる文字: 英数字と下線 (`_`) です。
      + 最大長は 48 文字です。

   1. [**Type (型)**] — データ型のリストで、この列のデータ型を選択します。

   1. 列を追加するには、**[列を追加]** を選択します。

1. **[パーティションキー]** で、パーティションキーとして [`award`] と [`year`] を選択します。各テーブルにはパーティションキーが 1 つ必要です。パーティションキーは、1 つ以上の列で構成できます。

1. **[クラスタリング列]** として `category` と `rank` を追加します。クラスタリング列はオプションであり、この列によって各パーティション内のソート順序が決まります。

   1. クラスタリング列を追加するには、[**Add clustering column (クラスタリング列の追加)**] を選択します。

   1. **[列]** リストで、**[category]** を選択します。[**Order (順序)**] リストで、この列の値を昇順に並べ替えるために [**ASC**] を選択します。(降順の場合は [**DESC**] を選択してください。)

   1. 次に、**[クラスタリング列を追加]** を選択し、**[rank]** を選択します。

1. [**Table settings** (テーブル設定)] セクションで、[**Default settings (デフォルト設定)**] を選択します。

1. [**Create table (テーブルの作成)**] を選択します。

1. テーブルが作成されていることを確認します。

   1. ナビゲーションペインで、[**Tables (テーブル)**] を選択します。

   1. そのテーブルがテーブルの一覧に表示されていることを確認します。

   1. テーブルの名前を選択します。

   1. すべての列とデータ型が正しいことを確認します。
**注記**  
これらの列の順序が、テーブルに追加した順序と同じではない場合があります。

## CQL の使用
<a name="getting-started.tables.cql"></a>

この手順では、CQL を使用して、次の列とデータ型を含むテーブルを作成します。`year` 列と `award` 列がパーティションキーであり、`category` と `rank` がクラスタリング列です。これらを合わせて、テーブルのプライマリキーを構成しています。

```
year           int
award          text
rank           int 
category       text
book_title     text
author         text
publisher      text
```

**CQL を使用してテーブルを作成するには**

1. を開き AWS CloudShell 、次のコマンドを使用して Amazon Keyspaces に接続します。*us-east-1* は実際のリージョンに置き換えてください。

   ```
   cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
   ```

   このコマンドの出力は次のようになります。

   ```
   Connected to Amazon Keyspaces at cassandra.us-east-1.amazonaws.com:9142
   [cqlsh 6.1.0 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
   Use HELP for help.
   cqlsh current consistency level is ONE.
   ```

1. キースペースプロンプト (`cqlsh:keyspace_name>`) で、コマンドウィンドウに次のコードを入力してテーブルを作成します。

   ```
   CREATE TABLE catalog.book_awards (
      year int,
      award text,
      rank int, 
      category text,
      book_title text,
      author text, 
      publisher text,
      PRIMARY KEY ((year, award), category, rank)
      );
   ```
**注記**  
`ASC` は、デフォルトのクラスタリング順序です。`DESC` を指定して降順にすることもできます。

   `year` と `award` はパーティションキー列です。そして、`category` と `rank` はクラスタリング列で、昇順 (`ASC`) で並べられています。これらの列を合わせて、テーブルのプライマリキーを構成しています。

1. テーブルが作成されていることを確認します。

   ```
   SELECT * from system_schema.tables WHERE keyspace_name='catalog.book_awards' ;
   ```

   出力は次のようになります。

   ```
    keyspace_name | table_name | bloom_filter_fp_chance | caching | cdc | comment | compaction | compression | crc_check_chance | dclocal_read_repair_chance | default_time_to_live | extensions | flags | gc_grace_seconds | id | max_index_interval | memtable_flush_period_in_ms | min_index_interval | read_repair_chance | speculative_retry
   ---------------+------------+------------------------+---------+-----+---------+------------+-------------+------------------+----------------------------+----------------------+------------+-------+------------------+----+--------------------+-----------------------------+--------------------+--------------------+-------------------
   
   (0 rows)
   ```

1. テーブルの構造を確認します。

   ```
   SELECT * FROM system_schema.columns WHERE keyspace_name = 'catalog' AND table_name = 'book_awards';
   ```

   このステートメントの出力は、次の例のようになります。

   ```
    keyspace_name | table_name  | column_name | clustering_order | column_name_bytes      | kind          | position | type
   ---------------+-------------+-------------+------------------+------------------------+---------------+----------+------
          catalog | book_awards |        year |             none |             0x79656172 | partition_key |        0 |  int
          catalog | book_awards |       award |             none |           0x6177617264 | partition_key |        1 | text
          catalog | book_awards |    category |              asc |     0x63617465676f7279 |    clustering |        0 | text
          catalog | book_awards |        rank |              asc |             0x72616e6b |    clustering |        1 |  int
          catalog | book_awards |      author |             none |         0x617574686f72 |       regular |       -1 | text
          catalog | book_awards |  book_title |             none | 0x626f6f6b5f7469746c65 |       regular |       -1 | text
          catalog | book_awards |   publisher |             none |   0x7075626c6973686572 |       regular |       -1 | text
   
   (7 rows)
   ```

   すべての列とデータ型が想定どおりであるか確認します。列の順序は `CREATE` ステートメントの順序と異なる場合があります。

## の使用 AWS CLI
<a name="getting-started.tables.cli"></a>

この手順では、 AWS CLIを使用して、次の列とデータ型を含むテーブルを作成します。`year` 列と `award` 列がパーティションキーであり、`category` と `rank` がクラスタリング列です。

```
year           int
award          text
rank           int 
category       text
book_title     text
author         text
publisher      text
```

**を使用してテーブルを作成するには AWS CLI**

以下のコマンドで *book\$1wards* という名前のテーブルが作成されます。テーブルのパーティションキーは `year` 列と `award` 列で構成され、クラスタリングキーは `category` 列と `rank` 列で構成されていて、クラスタリング列はどちらも昇順で並べられています (読みやすさに配慮して、このセクションでは、テーブル作成コマンドの `schema-definition` を複数の行に分けて表示しています)。

1. 次のステートメントを使用して、テーブルを作成できます。

   ```
   aws keyspaces create-table --keyspace-name 'catalog' \
                         --table-name 'book_awards' \
                         --schema-definition 'allColumns=[{name=year,type=int},{name=award,type=text},{name=rank,type=int},
               {name=category,type=text}, {name=author,type=text},{name=book_title,type=text},{name=publisher,type=text}],
               partitionKeys=[{name=year},{name=award}],clusteringKeys=[{name=category,orderBy=ASC},{name=rank,orderBy=ASC}]'
   ```

   このコマンドで、次の出力が返ります。

   ```
   {
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/catalog/table/book_awards"
   }
   ```

1. テーブルのメタデータとプロパティは、以下のコマンドで確認します。

   ```
   aws keyspaces get-table --keyspace-name 'catalog' --table-name 'book_awards'
   ```

   このコマンドで、以下の出力が返ります。

   ```
   {
       "keyspaceName": "catalog",
       "tableName": "book_awards",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/catalog/table/book_awards",
       "creationTimestamp": "2024-07-11T15:12:55.571000+00:00",
       "status": "ACTIVE",
       "schemaDefinition": {
           "allColumns": [
               {
                   "name": "year",
                   "type": "int"
               },
               {
                   "name": "award",
                   "type": "text"
               },
               {
                   "name": "category",
                   "type": "text"
               },
               {
                   "name": "rank",
                   "type": "int"
               },
               {
                   "name": "author",
                   "type": "text"
               },
               {
                   "name": "book_title",
                   "type": "text"
               },
               {
                   "name": "publisher",
                   "type": "text"
               }
           ],
           "partitionKeys": [
               {
                   "name": "year"
               },
               {
                   "name": "award"
               }
           ],
           "clusteringKeys": [
               {
                   "name": "category",
                   "orderBy": "ASC"
               },
               {
                   "name": "rank",
                   "orderBy": "ASC"
               }
           ],
           "staticColumns": []
       },
       "capacitySpecification": {
           "throughputMode": "PAY_PER_REQUEST",
           "lastUpdateToPayPerRequestTimestamp": "2024-07-11T15:12:55.571000+00:00"
       },
       "encryptionSpecification": {
           "type": "AWS_OWNED_KMS_KEY"
       },
       "pointInTimeRecovery": {
           "status": "DISABLED"
       },
       "defaultTimeToLive": 0,
       "comment": {
           "message": ""
       },
       "replicaSpecifications": []
   }
   ```

テーブル内のデータに対して CRUD (create (作成)、read (読み取り)、update (更新)、delete (削除)) オペレーションを実行するには、[Amazon Keyspaces で CQL を使用してデータを作成/読み取り/更新/削除する (CRUD)](getting-started.dml.md) に進みます。