

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

# Keyspaces
<a name="cql.ddl.keyspace"></a>

*キー空間*は、1 つ以上のアプリケーションに関係している関連テーブルをグループ化するものです。リレーショナルデータベース管理システム (RDBMS) に関しては、キー空間が、データベース、テーブルスペース、または類似の構造とほぼ同じです。

**注記**  
Apache Cassandra では、キー空間により、複数のストレージノードにおけるデータのレプリケーション方法が決まります。ただし、Amazon Keyspaces はフルマネージドサービスであり、ストレージレイヤーの詳細情報がユーザーに代わって管理されます。このため、Amazon Keyspaces の Keyspaces は論理構造のみであり、基礎となる物理ストレージとは関係ありません。

Amazon Keyspaces キー空間のクォータ制限と制約については、「[Amazon Keyspaces (Apache Cassandra 向け) のクォータ](quotas.md)」を参照してください。

**Topics**
+ [CREATE KEYSPACE　](#cql.ddl.keyspace.create)
+ [ALTER KEYSPACE](#cql.ddl.keyspace.alter)
+ [DROP KEYSPACE](#cql.ddl.keyspace.drop)
+ [使用](#cql.ddl.keyspace.use)

## CREATE KEYSPACE　
<a name="cql.ddl.keyspace.create"></a>

`CREATE KEYSPACE` ステートメントを使用して、新しいキー空間を作成します。

[**Syntax (構文)**]

```
create_keyspace_statement ::= 
    CREATE KEYSPACE [ IF NOT EXISTS ] keyspace_name
    WITH options
```

Where:
+ `keyspace_name` は作成するキー空間の名前です。
+ *options* は以下のうちの 1 つ以上です。
  + `REPLICATION` — キー空間のレプリケーション戦略を示すマップ。
    + `SingleRegionStrategy` — 単一リージョンのキー空間用。(必須)
    + `NetworkTopologyStrategy` – 少なくとも 2 つ指定します AWS リージョン。各リージョンのレプリケーション係数は 3 です。(オプション)
  + `DURABLE_WRITES` — Amazon Keyspaces への書き込みは常に耐久性があるため、このオプションは必要ありません。ただし、指定する場合は、値は `true` でなければなりません。
  + `TAGS` – 作成時にリソースにアタッチされるキー値のペアタグのリスト。(オプション)

**例**

次のようなキー空間を作成します。

```
CREATE KEYSPACE my_keyspace
    WITH REPLICATION = {'class': 'SingleRegionStrategy'} and TAGS ={'key1':'val1', 'key2':'val2'} ;
```

マルチリージョンキースペースを作成するには、 を指定`NetworkTopologyStrategy`し、少なくとも 2 つ含めます AWS リージョン。各リージョンのレプリケーション係数は 3 です。

```
CREATE KEYSPACE my_keyspace
    WITH REPLICATION = {'class':'NetworkTopologyStrategy', 'us-east-1':'3', 'ap-southeast-1':'3','eu-west-1':'3'};
```

## ALTER KEYSPACE
<a name="cql.ddl.keyspace.alter"></a>

`ALTER KEYSPACE WITH` ステートメントは、次の*オプション*に使用できます。
+ `REPLICATION` – このオプションを使用して、キースペースに新しい AWS リージョン レプリカを追加します。新しいリージョンを単一リージョンまたはマルチリージョンのキースペースに追加できます。
+ `TAGS` – このオプションを使用して、キースペースからタグを追加または削除します。

**[Syntax]** (構文)

```
alter_keyspace_statement ::= 
    ALTER KEYSPACE keyspace_name
    WITH options
```

Where:
+ `keyspace_name` は変更するキー空間の名前です。
+ *オプション*は次のいずれかです。
  + `ADD | DROP TAGS` — キー空間で追加または削除されるキーバリューペアタグのリスト。
  + `REPLICATION` – キースペースのレプリケーション戦略を示すマップ。
    + `class`– キースペースをマルチリージョンキースペースとして`NetworkTopologyStrategy`定義します。
    + `region`– このキースペース AWS リージョン に追加の 1 つを指定します。各リージョンのレプリケーション係数は 3 です。
    + `CLIENT_SIDE_TIMESTAMPS` – デフォルトは です`DISABLED`。ステータスは にのみ変更できます`ENABLED`。

**例**

次の例に示すようにキースペースを変更してタグを追加します。

```
ALTER KEYSPACE my_keyspace ADD TAGS {'key1':'val1', 'key2':'val2'};
```

マルチリージョンキースペースに 3 番目のリージョンを追加するには、次のステートメントを使用できます。

```
ALTER KEYSPACE my_keyspace
WITH REPLICATION = {
    'class': 'NetworkTopologyStrategy',
    'us-east-1': '3',
    'us-west-2': '3',
    'us-west-1': '3'
} AND CLIENT_SIDE_TIMESTAMPS = {'status': 'ENABLED'};
```

## DROP KEYSPACE
<a name="cql.ddl.keyspace.drop"></a>

`DROP KEYSPACE` ステートメントを使用してキー空間(テーブルなどあらゆるコンテンツを含む)を削除します。

[**Syntax (構文)**]

```
drop_keyspace_statement ::= 
    DROP KEYSPACE [ IF EXISTS ] keyspace_name
```

Where:
+ *keyspace\$1name* は、削除 (ドロップ) されるキー空間の名前です。

**例**

```
DROP KEYSPACE my_keyspace;
```

## 使用
<a name="cql.ddl.keyspace.use"></a>

`USE` ステートメントを使用して、現在のキースペースを定義します。これにより、キースペースプレフィックスを含む完全修飾名を使用せずに、テーブルやタイプなど、特定のキースペースにバインドされたオブジェクトを参照できます。

**[Syntax]** (構文)

```
use_statement ::= 
    USE keyspace_name
```

Where:
+ *keyspace\$1name* は、使用するキースペースの名前です。

**例**

```
USE my_keyspace;
```