

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

# Amazon Keyspaces (Apache Cassandra 向け) の使用開始
<a name="getting-started"></a>

このチュートリアルでは、Apache Cassandra と Amazon Keyspaces を初めて使用する方を対象に、Amazon Keyspaces を正しく使用するために必要なプログラムとツールのインストール手順を案内します。Cassandra クエリ言語 (CQL)、 AWS マネジメントコンソール、または AWS Command Line Interface () を使用してキースペースとテーブルを作成する方法について説明しますAWS CLI。その後、Cassandra クエリ言語 (CQL) を使用して、Amazon Keyspaces テーブル内のデータに対して作成/読み取り/更新/削除 (CRUD) オペレーションを実行します。

このチュートリアルは、以下のステップで構成されています。
+ **前提条件** – チュートリアルを開始する前に、 AWS セットアップ手順に従って にサインアップ AWS し、Amazon Keyspaces にアクセスできる IAM ユーザーを作成します。次に、 `cqhsh-expansion`と をセットアップします AWS CloudShell。または AWS CLI 、 を使用して Amazon Keyspaces にリソースを作成することもできます。
+ **ステップ 1: キースペースとテーブルを作成する** – 「catalog」という名前のキースペースを作成し、その中に「book\$1awards」という名前のテーブルを作成します。、CQL、または を使用して、テーブルの列、データ型 AWS マネジメントコンソール、パーティションキー、およびクラスタリング列を指定します AWS CLI。
+ **ステップ 2: CRUD オペレーションを実行する** – CloudShell の `cqlsh-expansion` を使用して、「book\$1awards」テーブルへのデータの挿入、読み取り、更新、削除を実行します。SELECT、INSERT、UPDATE、DELETE などのさまざまな CQL ステートメントの使用方法を学び、データのフィルタリングと変更の練習をします。
+ **ステップ 3: リソースをクリーンアップする** – 使用していないリソースに対して課金されないように、コンソール、CQL、または AWS CLIを使用して「book\$1awards」テーブルと「catalog」キースペースを削除する方法を説明します。

さまざまな Apache Cassandra クライアントドライバーを使用して Amazon Keyspaces にプログラムで接続するチュートリアルについては、「[Cassandra クライアントドライバーを使用した Amazon Keyspaces へのプログラムアクセス](programmatic.drivers.md)」を参照してください。異なる AWS SDKs[AWS SDKs](https://docs.aws.amazon.com/keyspaces/latest/devguide/service_code_examples.html)」を参照してください。

**Topics**
+ [

# チュートリアルの前提条件と考慮事項
](getting-started.before-you-begin.md)
+ [

# Amazon Keyspaces でキースペースを作成する
](getting-started.keyspaces.md)
+ [

# Amazon Keyspaces でキースペースの作成ステータスを確認する
](keyspaces-create.md)
+ [

# Amazon Keyspaces でテーブルを作成する
](getting-started.tables.md)
+ [

# Amazon Keyspaces でテーブルの作成ステータスを確認する
](tables-create.md)
+ [

# Amazon Keyspaces で CQL を使用してデータを作成/読み取り/更新/削除する (CRUD)
](getting-started.dml.md)
+ [

# Amazon Keyspaces でテーブルを削除する
](getting-started.clean-up.table.md)
+ [

# Amazon Keyspaces でキースペースを削除する
](getting-started.clean-up.keyspace.md)

# チュートリアルの前提条件と考慮事項
<a name="getting-started.before-you-begin"></a>

Amazon Keyspaces の使用を開始する前に、 AWS 「」のセットアップ手順に従ってください[Amazon Keyspaces (Apache Cassandra 向け) へのアクセス](accessing.md)。これらのステップには、Amazon Keyspaces へのアクセス権を持つ AWS Identity and Access Management (IAM) ユーザーへの AWS サインアップと作成が含まれます。

チュートリアルのステップをすべて完了するには、`cqlsh` をインストールする必要があります。「[`cqlsh` を使用した Amazon Keyspaces への接続](programmatic.cqlsh.md)」の設定手順に従ってください。

`cqlsh` または を使用して Amazon Keyspaces にアクセスするには AWS CLI、 を使用することをお勧めします AWS CloudShell。CloudShell はブラウザーベースの事前認証済みシェルで、 AWS マネジメントコンソールから直接起動できます。任意のシェル (Bash、PowerShell、または Z シェルAWS CLI) を使用して、Amazon Keyspaces に対して AWS Command Line Interface () コマンドを実行できます。`cqlsh` を使用するには、`cqlsh-expansion` をインストールする必要があります。`cqlsh-expansion` のインストール手順については、「[`cqlsh-expansion` による Amazon Keyspaces までの接続](programmatic.cqlsh.md#using_cqlsh)」を参照してください。CloudShell の詳細については、「[AWS CloudShell を使用して Amazon Keyspaces にアクセスする](using-aws-with-cloudshell.md)」を参照してください。

を使用して Amazon Keyspaces でリソース AWS CLI を作成、表示、削除するには、「」のセットアップ手順に従ってください[のダウンロードと設定 AWS CLI](access.cli.md#access.cli.installcli)。

前提条件のステップが完了したら、[Amazon Keyspaces でキースペースを作成する](getting-started.keyspaces.md) に進みます。

# Amazon Keyspaces でキースペースを作成する
<a name="getting-started.keyspaces"></a>

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

**注記**  
このチュートリアルを開始する前に、次の[前提条件](getting-started.before-you-begin.md)をすべて設定してください。

*キースペース*は、1 つ以上のアプリケーションに関係している関連テーブルをグループ化するものです。キースペースには 1 つ以上のテーブルが含まれており、キースペースに含まれるすべてのテーブルのレプリケーション戦略がキースペースによって定義されます。キースペースの詳細については、次のトピックを参照してください。
+ CQL 言語リファレンスのデータ定義言語 (DDL) ステートメント: [Keyspaces](cql.ddl.keyspace.md)
+ [Amazon Keyspaces (Apache Cassandra 向け) のクォータ](quotas.md)

このチュートリアルでは、単一リージョンのキースペースを作成します。キースペースのレプリケーション戦略は `SingleRegionStrategy` です。`SingleRegionStrategy` を使用する場合、Amazon Keyspaces は 1 つの AWS リージョン内で 3 つの[アベイラビリティーゾーン](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)にわたってデータをレプリケートします。マルチリージョンのキースペースの作成方法については、「[Amazon Keyspaces でマルチリージョンキースペースを作成する](keyspaces-mrr-create.md)」を参照してください。

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

**コンソールを使用してキースペースを作成するには**

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

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

1. [**Create keyspace (キースペースの作成)**] を選択します。

1. [**Keyspace name (キースペース名)**] ボックスに、キースペースの名前として **catalog** を入力します。

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

1. **[AWS リージョン]** で、**[単一リージョンレプリケーション]** がキースペースのレプリケーション戦略になっていることを確認します。

1. キースペースを作成するには、[**Create keyspace (キースペースの作成)**] を選択します。

1. 以下の作業により、キースペース `catalog` が作成されたことを確認します。

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

   1. キースペースのリストで該当するキースペース `catalog` を見つけます。

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

以下の手順では、CQL を使用してキースペースを作成します。

**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. 次の CQL コマンドを使用して、キースペースを作成します。

   ```
   CREATE KEYSPACE catalog WITH REPLICATION = {'class': 'SingleRegionStrategy'};
   ```

   `SingleRegionStrategy` は 3 つのレプリケーション係数を使用し、そのリージョンの 3 つの AWS アベイラビリティーゾーンにデータをレプリケートします。
**注記**  
Amazon Keyspaces ではすべての入力がデフォルトで小文字に設定されます。ただし、引用符で囲まれた入力はこれに該当しません。

1. キースペースが作成されていることを確認します。

   ```
   SELECT * from system_schema.keyspaces;
   ```

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

   ```
   cqlsh> SELECT * from system_schema.keyspaces;
   
    keyspace_name           | durable_writes | replication
   -------------------------+----------------+-------------------------------------------------------------------------------------
              system_schema |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
          system_schema_mcs |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
                     system |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
    system_multiregion_info |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
                    catalog |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
   
   (5 rows)
   ```

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

以下の手順では、 AWS CLIを使用してキースペースを作成します。

**を使用してキースペースを作成するには AWS CLI**

1. 環境がセットアップされていることを確認するには、CloudShell で次のコマンドを実行します。

   ```
   aws keyspaces help
   ```

1. 次の AWS CLI ステートメントを使用してキースペースを作成します。

   ```
   aws keyspaces create-keyspace --keyspace-name 'catalog'
   ```

1. 次の AWS CLI ステートメントを使用してキースペースが作成されたことを確認します。

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

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

   ```
   {
       "keyspaceName": "catalog",
       "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/catalog/",
       "replicationStrategy": "SINGLE_REGION"
   }
   ```

# Amazon Keyspaces でキースペースの作成ステータスを確認する
<a name="keyspaces-create"></a>

Amazon Keyspaces では、キースペースの作成や削除などのデータ定義言語 (DDL) オペレーションを非同期に実行します。

で新しいキースペースの作成ステータスをモニタリングできます。これは AWS マネジメントコンソール、キースペースが保留中またはアクティブであることを示します。`system_schema_mcs` キースペースを使用して、新しいキースペースの作成ステータスをプログラムにより監視することもできます。キースペースは、使用できる状態になると、`system_schema_mcs` `keyspaces` テーブルに表示されます。

新しいキースペースが使用可能な状態になるタイミングをチェックするための推奨設計パターンとは、Amazon Keyspaces の `system_schema_mcs` `keyspaces` テーブル (system\$1schema\$1mcs.\$1) のポーリングです。キースペースの DDL ステートメントのリストについては、「CQL language reference」(CQL 言語リファレンス) の「[Keyspaces](cql.ddl.keyspace.md)」のセクションを参照してください。

次のクエリは、キースペースが正常に作成されたかどうかを示します。

```
SELECT * FROM system_schema_mcs.keyspaces WHERE keyspace_name = 'mykeyspace';
```

キースペースが正常に作成された場合、クエリの出力は次のようになります。

```
keyspace_name | durable_writes  | replication
--------------+-----------------+--------------
   mykeyspace | true            |{...} 1 item
```

# 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) に進みます。

# Amazon Keyspaces でテーブルの作成ステータスを確認する
<a name="tables-create"></a>

Amazon Keyspaces では、テーブルの非同期的な作成や削除など、データ定義言語 (DDL) オペレーションを同期なしで実行します。で新しいテーブルの作成ステータスをモニタリングできます。これは AWS マネジメントコンソール、テーブルが保留中またはアクティブであることを示します。システムスキーマテーブルを使用して、新しいテーブルの作成ステータスをプログラムにより監視することもできます。

テーブルは、使用可能な状態になると、システムスキーマでアクティブとして表示されます。新しいテーブルが使用可能な状態になるタイミングをチェックするための推奨設計パターンとは、Amazon Keyspaces のシステムスキーマテーブル (`system_schema_mcs.*`) のポーリングです。テーブルの DDL ステートメントのリストについては、「CQL language reference」(CQL 言語リファレンス) の「[テーブル](cql.ddl.table.md)」セクションを参照してください。

次のクエリはテーブルのステータスを示しています。

```
SELECT keyspace_name, table_name, status FROM system_schema_mcs.tables WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';
```

まだ作成中で保留されているテーブルの場合、クエリの出力は次のようになります。

```
keyspace_name | table_name | status
--------------+------------+--------
   mykeyspace |    mytable | CREATING
```

テーブルが正常に作成されてアクティブになると、クエリの出力は次のようになります。

```
keyspace_name | table_name | status
--------------+------------+--------
   mykeyspace |    mytable | ACTIVE
```

# Amazon Keyspaces で CQL を使用してデータを作成/読み取り/更新/削除する (CRUD)
<a name="getting-started.dml"></a>

チュートリアルのこのステップでは、CQL データ操作言語 (DML) ステートメントを使用して、Amazon Keyspaces テーブルのデータを挿入/読み取り/更新/削除する方法について説明します。Amazon Keyspaces では、CQL 言語でのみ DML ステートメントを作成できます。このチュートリアルでは、 AWS マネジメントコンソールの [AWS CloudShell](using-aws-with-cloudshell.md) で `cqlsh-expansion` を使用して、DML ステートメントの実行を練習します。
+ **データの挿入** – `INSERT` ステートメントを使用して、1 つのテーブルに単一および複数のレコードを挿入する方法を説明します。CSV ファイルからデータをアップロードし、正常に挿入されたことを `SELECT` クエリで確認する方法を学びます。
+ **データの読み取り** – `SELECT` ステートメントのさまざまなバリエーションを試し、テーブルからデータを取得します。取り扱うトピックは、すべてのデータの選択、特定の列の選択、`WHERE` 句を使用した条件に基づく行のフィルタリング、単純条件と複合条件の理解などです。
+ **データの更新** – `UPDATE` ステートメントを使用して、テーブル内の既存のデータを変更する方法を学びます。単一列と複数列を実際に更新してみて、プライマリキー列の更新にまつわる制約について理解しましょう。
+ **データの削除** – 最終セクションでは、`DELETE` ステートメントを使用して、テーブルからデータを削除する方法を説明します。特定のセルや行全体の削除方法を学び、データを削除した場合とテーブル全体またはキースペース全体を削除した場合の違いを理解しましょう。

このチュートリアル全体を通じて、例やヒントを紹介します。また、さまざまなシナリオに合わせて自分で CQL クエリを書く練習をすることもできます。

**Topics**
+ [

# Amazon Keyspaces テーブルにデータを挿入してロードする
](getting-started.dml.create.md)
+ [

# Amazon Keyspaces で CQL `SELECT` ステートメントを使用してテーブルからデータを読み取る
](getting-started.dml.read.md)
+ [

# CQL を使用して Amazon Keyspaces テーブルのデータを更新する
](getting-started.dml.update.md)
+ [

# CQL `DELETE` ステートメントを使用してテーブルからデータを削除する
](getting-started.dml.delete.md)

# Amazon Keyspaces テーブルにデータを挿入してロードする
<a name="getting-started.dml.create"></a>

`book_awards` テーブルでデータを作成するには、`INSERT` ステートメントを使用して 1 行を追加します。

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 を使用してAmazon Keyspaces テーブルにデータを書き込む前に、現在の cqlsh セッションの書き込み整合性を `LOCAL_QUORUM` に設定する必要があります。サポートされる整合性レベルの詳細については、「[書き込みの整合性レベル](consistency.md#WriteConsistency)」を参照してください。 AWS マネジメントコンソールで CQL エディタを使用している場合は、このステップは不要であることに注意してください。

   ```
   CONSISTENCY LOCAL_QUORUM;
   ```

1. 単一のレコードを挿入するには、CQL エディタで次のコマンドを実行します。

   ```
   INSERT INTO catalog.book_awards (award, year, category, rank, author, book_title, publisher)
   VALUES ('Wolf', 2023, 'Fiction',3,'Shirley Rodriguez','Mountain', 'AnyPublisher') ;
   ```

1. 次のコマンドを実行して、データがテーブルに正しく追加されていることを確認します。

   ```
   SELECT * FROM catalog.book_awards;
   ```

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

   ```
    year | award | category | rank | author            | book_title | publisher
   ------+-------+----------+------+-------------------+------------+--------------
    2023 |  Wolf |  Fiction |    3 | Shirley Rodriguez |   Mountain | AnyPublisher
   
   (1 rows)
   ```

**cqlsh を使用してファイルから複数のレコードを挿入するには**

1. サンプル CSV ファイル (`keyspaces_sample_table.csv`) を収録したアーカイブファイル [samplemigration.zip](samples/samplemigration.zip) をダウンロードします。アーカイブを解凍し、`keyspaces_sample_table.csv` へのパスをメモしておきます。  
![\[CSV ファイルをインポートした後のテーブルの出力を示す CSV ファイルのスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/keyspaces/latest/devguide/images/keyspaces-awards.png)

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

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

1. `cqlsh` プロンプト (`cqlsh>`) で、キースペースを指定します。

   ```
   USE catalog ;
   ```

1. 書き込み整合性を `LOCAL_QUORUM` に設定します。サポートされる整合性レベルの詳細については、「[書き込みの整合性レベル](consistency.md#WriteConsistency)」を参照してください。

   ```
   CONSISTENCY LOCAL_QUORUM;
   ```

1. 画面の右上にある**「アクション** AWS CloudShell 」を選択し、**「ファイルのアップロード**」を選択して、以前にダウンロードした csv ファイルをアップロードします。ファイルのパスを書き留めておいてください。

1. キースペースのプロンプト (`cqlsh:catalog>`) で、次のステートメントを実行します。

   ```
   COPY book_awards (award, year, category, rank, author, book_title, publisher) FROM '/home/cloudshell-user/keyspaces_sample_table.csv' WITH header=TRUE ;
   ```

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

   ```
   cqlsh:catalog> COPY book_awards (award, year, category, rank, author, book_title, publisher)                      FROM '/home/cloudshell-user/keyspaces_sample_table.csv' WITH delimiter=',' AND header=TRUE ;
   cqlsh current consistency level is LOCAL_QUORUM.
   Reading options from /home/cloudshell-user/.cassandra/cqlshrc:[copy]: {'numprocesses': '16', 'maxattempts': '1000'}
   Reading options from /home/cloudshell-user/.cassandra/cqlshrc:[copy-from]: {'ingestrate': '1500', 'maxparseerrors': '1000', 'maxinserterrors': '-1', 'maxbatchsize': '10', 'minbatchsize': '1', 'chunksize': '30'}
   Reading options from the command line: {'delimiter': ',', 'header': 'TRUE'}
   Using 16 child processes
   
   Starting copy of catalog.book_awards with columns [award, year, category, rank, author, book_title, publisher].
   OSError: handle is closed      0 rows/s; Avg. rate:       0 rows/s
   Processed: 9 rows; Rate:       0 rows/s; Avg. rate:       0 rows/s
   9 rows imported from 1 files in 0 day, 0 hour, 0 minute, and 26.706 seconds (0 skipped).
   ```

1. 次のクエリを実行して、データがテーブルに正しく追加されていることを確認します。

   ```
   SELECT * FROM book_awards ;
   ```

   次のような出力が表示されます。

   ```
    year | award            | category    | rank | author             | book_title            | publisher
   ------+------------------+-------------+------+--------------------+-----------------------+---------------
    2020 |             Wolf | Non-Fiction |    1 |        Wang Xiulan |      History of Ideas | Example Books
    2020 |             Wolf | Non-Fiction |    2 | Ana Carolina Silva |         Science Today | SomePublisher
    2020 |             Wolf | Non-Fiction |    3 |  Shirley Rodriguez | The Future of Sea Ice |  AnyPublisher
    2020 | Kwesi Manu Prize |     Fiction |    1 |         Akua Mansa |     Where did you go? | SomePublisher
    2020 | Kwesi Manu Prize |     Fiction |    2 |        John Stiles |             Yesterday | Example Books
    2020 | Kwesi Manu Prize |     Fiction |    3 |         Nikki Wolf | Moving to the Chateau |  AnyPublisher
    2020 |      Richard Roe |     Fiction |    1 |  Alejandro Rosalez |           Long Summer | SomePublisher
    2020 |      Richard Roe |     Fiction |    2 |        Arnav Desai |               The Key | Example Books
    2020 |      Richard Roe |     Fiction |    3 |      Mateo Jackson |      Inside the Whale |  AnyPublisher
   
   (9 rows)
   ```

`cqlsh COPY` を使用して csv ファイルから Amazon Keyspaces テーブルにデータをアップロードする方法の詳細については、「[チュートリアル: cqlsh を使用した Amazon Keyspaces へのデータのロード](bulk-upload.md)」を参照してください。

# Amazon Keyspaces で CQL `SELECT` ステートメントを使用してテーブルからデータを読み取る
<a name="getting-started.dml.read"></a>

「[Amazon Keyspaces テーブルにデータを挿入してロードする](getting-started.dml.create.md)」セクションでは、`SELECT` ステートメントを使用してテーブルにデータを正しく追加できたことを確認しました。このセクションでは、`SELECT` を使用して特定の列を表示し、特定の条件を満たす行のみを表示する方法について詳しく説明します。

`SELECT` ステートメントの一般的な形式は次のとおりです。

```
SELECT column_list FROM table_name [WHERE condition [ALLOW FILTERING]] ;
```

**Topics**
+ [

## テーブル内のすべてのデータを選択する
](#getting-started.dml.read.all)
+ [

## 列のサブセットを選択する
](#getting-started.dml.read.columns)
+ [

## 行のサブセットを選択する
](#getting-started.dml.read.rows)

## テーブル内のすべてのデータを選択する
<a name="getting-started.dml.read.all"></a>

最も単純な形式の `SELECT` ステートメントにより、テーブル内のすべてのデータが返されます。

**重要**  
 このコマンドを実行するとテーブル内のすべてのデータが返されるため、通常、本番環境でこのコマンドを実行することはベストプラクティスではありません。

**テーブルのすべてのデータを選択するには**

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

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

1. 次のクエリを実行します。

   ```
   SELECT * FROM catalog.book_awards ;
   ```

   `column_list` にワイルドカード文字 (`*`) を使用するとすべての列が選択されます。ステートメントの出力は、次の例のようになります。

   ```
    year | award            | category    | rank | author             | book_title            | publisher
   ------+------------------+-------------+------+--------------------+-----------------------+---------------
    2020 |             Wolf | Non-Fiction |    1 |        Wang Xiulan |      History of Ideas |  AnyPublisher
    2020 |             Wolf | Non-Fiction |    2 | Ana Carolina Silva |         Science Today | SomePublisher
    2020 |             Wolf | Non-Fiction |    3 |  Shirley Rodriguez | The Future of Sea Ice |  AnyPublisher
    2020 | Kwesi Manu Prize |     Fiction |    1 |         Akua Mansa |     Where did you go? | SomePublisher
    2020 | Kwesi Manu Prize |     Fiction |    2 |        John Stiles |             Yesterday | Example Books
    2020 | Kwesi Manu Prize |     Fiction |    3 |         Nikki Wolf | Moving to the Chateau |  AnyPublisher
    2020 |      Richard Roe |     Fiction |    1 |  Alejandro Rosalez |           Long Summer | SomePublisher
    2020 |      Richard Roe |     Fiction |    2 |        Arnav Desai |               The Key | Example Books
    2020 |      Richard Roe |     Fiction |    3 |      Mateo Jackson |      Inside the Whale |  AnyPublisher
   ```

## 列のサブセットを選択する
<a name="getting-started.dml.read.columns"></a>

**列のサブセットをクエリするには**

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

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

1. `award` 列、`category` 列、`year` 列のみを検索するには、次のクエリを実行します。

   ```
   SELECT award, category, year FROM catalog.book_awards ;
   ```

   出力には、指定した列だけが、`SELECT` ステートメントに指定された順序で表示されます。

   ```
    award            | category    | year
   ------------------+-------------+------
                Wolf | Non-Fiction | 2020
                Wolf | Non-Fiction | 2020
                Wolf | Non-Fiction | 2020
    Kwesi Manu Prize |     Fiction | 2020
    Kwesi Manu Prize |     Fiction | 2020
    Kwesi Manu Prize |     Fiction | 2020
         Richard Roe |     Fiction | 2020
         Richard Roe |     Fiction | 2020
         Richard Roe |     Fiction | 2020
   ```

## 行のサブセットを選択する
<a name="getting-started.dml.read.rows"></a>

大きなデータセットをクエリする場合、特定の条件を満たすレコードのみが必要になる可能性があります。これを行うには、`WHERE` 句を `SELECT` ステートメントの最後に追加します。

**行のサブセットをクエリするには**

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

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

1. 特定の年 (year) の賞 (award) に関するレコードのみを取得するには、次のクエリを実行します。

   ```
   SELECT * FROM catalog.book_awards WHERE year=2020 AND award='Wolf' ;
   ```

   上記の `SELECT` ステートメントは、次の出力を返します。

   ```
    year | award | category    | rank | author             | book_title            | publisher
   ------+-------+-------------+------+--------------------+-----------------------+---------------
    2020 |  Wolf | Non-Fiction |    1 |        Wang Xiulan |      History of Ideas |  AnyPublisher
    2020 |  Wolf | Non-Fiction |    2 | Ana Carolina Silva |         Science Today | SomePublisher
    2020 |  Wolf | Non-Fiction |    3 |  Shirley Rodriguez | The Future of Sea Ice |  AnyPublisher
   ```

### `WHERE` 句について
<a name="getting-started.dml.where"></a>

`WHERE` 句は、データをフィルタリングして指定の基準を満たすデータのみを返すために使用されます。指定の基準は単純条件または複合条件になります。

**`WHERE` 句で条件を使用する方法**
+ 単純条件 — 単一の列。

  ```
  WHERE column_name=value
  ```

  次の条件のいずれかを満たしていれば `WHERE` 句の単純条件を使用できます。
  + この列は、テーブルの唯一のパーティションキー列です。
  + `WHERE` 句の条件の後に `ALLOW FILTERING` を追加します。

    `ALLOW FILTERING` を使用すると、特に、複数に分割された大規模なテーブルでは、パフォーマンスの一貫性が失われる可能性がありますので注意が必要です。
+ 複合条件 — 複数の単純条件を `AND` によって結合したもの。

  ```
  WHERE column_name1=value1 AND column_name2=value2 AND column_name3=value3...
  ```

  次の条件のいずれかを満たしていれば `WHERE` 句の複合条件を使用できます。
  + `WHERE` 句では、テーブルのパーティションキーの列を使用できますが、それらの列を全部含めるか、一部だけを含める必要があります。`WHERE` 句で一部の列だけを使用する場合は、パーティションキーの先頭列を筆頭に、左から右に連続するパーティションキー列を含めなければなりません。例えば、パーティションキー列が `year`、`month`、`award` である場合、次の列を `WHERE` 句で使用できます。
    + `year`
    + `year` と `month` の両方
    + `year`、`month`、`award` のすべて
  + 次の例で示されているように、`WHERE` 句の複合条件の後に `ALLOW FILTERING` を追加します。

    ```
    SELECT * FROM my_table WHERE col1=5 AND col2='Bob' ALLOW FILTERING ;
    ```

    `ALLOW FILTERING` を使用すると、特に、複数に分割された大規模なテーブルでは、パフォーマンスの一貫性が失われる可能性がありますので注意が必要です。

### 試してみましょう
<a name="getting-started.dml.try"></a>

独自の CQL クエリを作成して、`book_awards` テーブルで以下の検索を実行してみましょう。
+ 2020 年の Wolf 賞 (award) の受賞作品を検索し、本のタイトル (book title) と著者 (author) をランク (rank) 順に表示します。
+ 2020 年のすべての賞の 1 位を表示し、その本のタイトルと賞の名前を表示します。

# CQL を使用して Amazon Keyspaces テーブルのデータを更新する
<a name="getting-started.dml.update"></a>

`book_awards` テーブルのデータを更新するには、`UPDATE` ステートメントを使用します。

`UPDATE` ステートメントの一般的な形式は次のとおりです。

```
UPDATE table_name SET column_name=new_value WHERE primary_key=value ;
```

**ヒント**  
次の例に示すとおり、`column_names` と値のカンマ区切りリストを使用して、複数の列を更新することができます。  

  ```
  UPDATE my_table SET col1='new_value_1', col2='new_value2' WHERE col3='1' ;
  ```
プライマリキーが複数の列で構成されている場合、すべてのプライマリキー列とその値が `WHERE` 句に含まれていなければなりません。
プライマリキーの列を更新すると、レコードのプライマリキーが変更されるため、更新はできません。

**単一のセルを更新するには**  
`book_awards` テーブルを使用して、2020 年のノンフィクション Wolf 賞受賞作品の出版社 (publisher) の名前を変更します。

```
UPDATE book_awards SET publisher='new Books' WHERE year = 2020 AND award='Wolf' AND category='Non-Fiction' AND rank=1;
```

出版社が `new Books` になったことを確認します。

```
SELECT * FROM book_awards WHERE year = 2020 AND award='Wolf' AND category='Non-Fiction' AND rank=1;
```

このステートメントは、次の出力を返します。

```
 year | award | category    | rank | author      | book_title       | publisher
------+-------+-------------+------+-------------+------------------+-----------
 2020 |  Wolf | Non-Fiction |    1 | Wang Xiulan | History of Ideas | new Books
```

## 試してみましょう
<a name="getting-started.dml.update.try"></a>

**上級:** 2020 年のフィクション「Kwezi Manu Prize」賞の受賞作品の名前が変更されました。該当するレコードを更新し、名前を `'Akua Mansa-House'` に変更してください。

# CQL `DELETE` ステートメントを使用してテーブルからデータを削除する
<a name="getting-started.dml.delete"></a>

`book_awards` テーブルのデータを削除するには、`DELETE` ステートメントを使用します。

行またはパーティションからデータを削除できます。削除は取り消せないため、データを削除するときは注意してください。

テーブルから 1 つまたはすべての行を削除しても、テーブルは削除されません。したがって、データの再入力が可能です。テーブルを削除すると、テーブルとその中のすべてのデータが削除されます。テーブルを再使用するには、テーブルを再作成してデータを追加する必要があります。キースペースを削除すると、キースペースとその中のすべてのテーブルが削除されます。削除したキースペースとテーブルを使用するには、それらを再作成してデータを入力する必要があります。Amazon Keyspaces のポイントインタイムリカバリ (PITR) を使用して、削除されたテーブルを復元できます。詳細については、「[Amazon Keyspaces のポイントインタイムリカバリでデータをバックアップおよび復元する](PointInTimeRecovery.md)」を参照してください。PITR が有効になっている削除済みテーブルを復元する方法については、「[削除済みのテーブルを Amazon Keyspaces PITR を使用して復元する](restoredeleted.md)」を参照してください。

## セルを削除する
<a name="getting-started.dml.delete-cell"></a>

行から列を削除すると、指定したセルからデータが削除されます。`SELECT` ステートメントを使用してその列を表示すると、そのデータは *null* として表示されます。ただし、null 値はその場所には保存されません。

1 つ以上の特定の列を削除するための一般的な構文は次のとおりです。

```
DELETE column_name1[, column_name2...] FROM table_name WHERE condition ;
```

`book_awards` テーブルでは、2020 年の「Richard Roe」賞の第 1 位を受賞した本のタイトルが「Long Summer」であることがわかります。この作品の受賞が取り消されたため、このセルから該当データを削除する必要があるとしましょう。

**特定のセルを削除するには**

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

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

1. 次の `DELETE` クエリを実行します。

   ```
   DELETE book_title FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
   ```

1. 削除リクエストが想定どおりに行われたことを確認します。

   ```
   SELECT * FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
   ```

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

   ```
    year | award       | category | rank | author            | book_title | publisher
   ------+-------------+----------+------+-------------------+------------+---------------
    2020 | Richard Roe |  Fiction |    1 | Alejandro Rosalez |       null | SomePublisher
   ```

## 行を削除する
<a name="getting-started.dml.delete-row"></a>

データ削除のリクエストに応えるといった理由で、行全体を削除しなければならない場合も考えられます。行の削除に使用する一般的な構文は次のとおりです。

```
DELETE FROM table_name WHERE condition ;
```

**行を削除するには**

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

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

1. 次の `DELETE` クエリを実行します。

   ```
   DELETE FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
   ```

1. 削除が想定どおりに行われたことを確認します。

   ```
   SELECT * FROM catalog.book_awards WHERE year=2020 AND award='Richard Roe' AND category='Fiction' AND rank=1;
   ```

   行が削除された後は、このステートメントの出力が次のようになります。

   ```
    year | award | category | rank | author | book_title | publisher
   ------+-------+----------+------+--------+------------+-----------
   
   (0 rows)
   ```

Amazon Keyspaces の Time to Live を使用して、期限切れのデータをテーブルから自動的に削除できます。詳細については、「[Amazon Keyspaces (Apache Cassandra 向け) で有効期限 (TTL) を使用してデータを期限切れにする](TTL.md)」を参照してください。

# Amazon Keyspaces でテーブルを削除する
<a name="getting-started.clean-up.table"></a>

不要になったテーブルやデータに対して課金されないように、使用していないテーブルはすべて削除してください。テーブルを削除すると、テーブルとそのデータが削除され、それらの料金が発生しなくなります。ただし、キースペースは残ります。キー空間を削除すると、キー空間とそのテーブルが削除され、それらの料金が発生しなくなります。

コンソール、CQL、または AWS CLIを使用して、テーブルを削除することができます。テーブルを削除すると、テーブルとそのデータがすべて削除されます。

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

以下の手順では、 AWS マネジメントコンソールを使用してテーブルとそのデータをすべて削除します。

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

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

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

1. 削除する各テーブルの名前の左にあるチェックボックスを選択します。

1. [**Delete (削除)**] を選択します。

1. [**Delete table (テーブルの削除)**] 画面で、ボックスに **Delete** を入力します。[**Delete table (テーブルの削除)**] を選択します。

1. テーブルが削除されたことを確認するには、ナビゲーションペインで [**Tables (テーブル)**] を選択して、`book_awards` テーブルが表示されなくなったことを確認します。

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

以下の手順では、CQL を使用してテーブルとそのデータをすべて削除します。

**CQL を使用してテーブルを削除するには**

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

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

1. 次のステートメントを入力して、テーブルを削除します。

   ```
   DROP TABLE IF EXISTS catalog.book_awards ;
   ```

1. テーブルが削除されたことを確認します。

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

   出力は次のようになります。多少時間がかかる場合があるため、この結果が表示されない場合は、1 分後に再びステートメントを実行してください。

   ```
   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)
   ```

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

以下の手順では、 AWS CLIを使用してテーブルとそのデータをすべて削除します。

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

1. CloudShell を開きます。

1. 次のステートメントを使用して、テーブルを削除します。

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

1. テーブルが削除されたことを確認するには、キースペース内のすべてのテーブルを一覧表示します。

   ```
   aws keyspaces list-tables --keyspace-name 'catalog'
   ```

   次のような出力が表示されます。この非同期オペレーションには時間がかかる場合があります。しばらくしてからコマンドを再び実行して、テーブルが削除されたことを確認してください。

   ```
   {
       "tables": []
   }
   ```

# Amazon Keyspaces でキースペースを削除する
<a name="getting-started.clean-up.keyspace"></a>

キースペースに対して課金されないように、使用していないキースペースはすべて削除してください。キー空間を削除すると、キー空間とそのテーブルが削除され、それらの料金が発生しなくなります。

コンソール、CQL、または AWS CLIを使用して、キースペースを削除することができます。

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

以下の手順では、コンソールを使用してキースペースと、そのテーブルとデータをすべて削除します。

**コンソールを使用してキースペースを削除するには**

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

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

1. 削除する各キースペースの名前の左にあるチェックボックスを選択します。

1. [**Delete (削除)**] をクリックします。

1. [**Delete keyspace (キースペースの削除)**] 画面で、ボックスに **Delete** を入力します。次に、[**Delete keyspace (キースペースの削除)**] を選択します。

1. キースペース `catalog` が削除されたことを確認するには、ナビゲーションペインで [**Keyspaces (キースペース)**] を選択して、そのキースペースが表示されなくなったことを確認します。そのキースペースを削除したため、[**Tables (テーブル)**] に `book_awards` テーブルも表示されなくなります。

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

以下の手順では、CQL を使用してキースペースとそのテーブルとデータをすべて削除します。

**CQL を使用してキースペースを削除するには**

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

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

1. 次のステートメントを入力して、キースペースを削除します。

   ```
   DROP KEYSPACE IF EXISTS catalog ;
   ```

1. そのキー空間が削除されたことを確認します。

   ```
   SELECT * from system_schema.keyspaces ;
   ```

   そのキースペースは表示されていないはずです。これは非同期オペレーションであるため、キースペースが削除されるまで、しばらく時間がかかる場合があります。キースペースが削除された後は、ステートメントの出力が次のようになります。

   ```
   keyspace_name           | durable_writes | replication
   -------------------------+----------------+-------------------------------------------------------------------------------------
              system_schema |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
          system_schema_mcs |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
                     system |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
    system_multiregion_info |           True | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
   
   (4 rows)
   ```

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

以下の手順では、 AWS CLIを使用してキースペースとそのテーブルとデータをすべて削除します。

**を使用してキースペースを削除するには AWS CLI**

1.  AWS CloudShell を開きます。

1. 次のステートメントを入力して、キースペースを削除します。

   ```
   aws keyspaces delete-keyspace --keyspace-name 'catalog' 
   ```

1. そのキー空間が削除されたことを確認します。

   ```
   aws keyspaces list-keyspaces
   ```

   このステートメントの出力は次のようになります。システムキースペースのみを一覧表示します。これは非同期オペレーションであるため、キースペースが削除されるまで遅延が発生する可能性があることに注意してください。

   ```
   {
       "keyspaces": [
           {
               "keyspaceName": "system_schema",
               "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system_schema/",
               "replicationStrategy": "SINGLE_REGION"
           },
           {
               "keyspaceName": "system_schema_mcs",
               "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system_schema_mcs/",
               "replicationStrategy": "SINGLE_REGION"
           },
           {
               "keyspaceName": "system",
               "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system/",
               "replicationStrategy": "SINGLE_REGION"
           },
           {
               "keyspaceName": "system_multiregion_info",
               "resourceArn": "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system_multiregion_info/",
               "replicationStrategy": "SINGLE_REGION"
           }
       ]
   }
   ```