翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Keyspaces でテーブルを作成する
このセクションでは、コンソール、cqlsh
、または AWS CLI を使用してテーブルを作成します。
テーブルとは、データが整理されて保存されている場所です。テーブルのプライマリキーによって、テーブル内のデータの分割方法が決まります。プライマリキーは、必須のパーティションキー 1 つと、1 つ以上のオプションのクラスタリング列で構成されています。プライマリキーを構成する複合値は、テーブルのすべてのデータで一意でなければなりません。テーブルの詳細については、次のトピックを参照してください。
パーティションキーの設計: Amazon Keyspaces でパーティションキーを効果的に使用する方法
テーブルの操作: Amazon Keyspaces でテーブルの作成ステータスを確認する
-
CQL 言語リファレンスの DDL ステートメント: テーブル
テーブルリソース管理: Amazon Keyspaces (Apache Cassandra 向け) でのサーバーレスリソースの管理
テーブルのリソース使用率のモニタリング: Amazon による Amazon Keyspaces のモニタリング CloudWatch
テーブルを作成する際には、以下を指定できます。
-
テーブルの名前。
-
テーブル内の各列の名前とデータ型。
-
テーブルのプライマリキー。
-
[Partition key (パーティションキー)] - 必須
-
[Clustering columns (クラスタリング列)] — オプション
-
次の手順で、指定した列、データ型、パーティションキー、クラスタリング列を含むテーブルを作成します。
次の手順では、これらの列とデータ型が含まれているテーブル book_awards
を作成します。
year int
award text
rank int
category text
book_title text
author text
publisher text
コンソールを使用してテーブルを作成するには
-
AWS Management Console にサインインし、https://console.aws.amazon.com/keyspaces/home
で Amazon Keyspaces コンソールを開きます。 -
ナビゲーションペインで、[Keyspaces (キースペース)] を選択します。
-
このテーブルを作成するキースペースとして
catalog
を選択します。 -
[Create table (テーブルの作成)] を選択します。
-
[Table name (テーブル名)] ボックスに、テーブルの名前として「
book_awards
」を入力します。名前の制約:
-
名前を空にすることはできません。
-
使用できる文字: 英数字と下線 (
_
) です。 -
最大長は 48 文字です。
-
-
[Columns (列)] セクションで、このテーブルを追加する各列に対して以下のステップを繰り返します。
次の列とデータ型を追加します。
year int award text rank int category text book_title text author text publisher text
-
[Name (名前)] — 列の名前を入力します。
名前の制約:
-
名前を空にすることはできません。
-
使用できる文字: 英数字と下線 (
_
) です。 -
最大長は 48 文字です。
-
-
[Type (型)] — データ型のリストで、この列のデータ型を選択します。
-
列を追加するには、[列を追加] を選択します。
-
-
[パーティションキー] で、パーティションキーとして [
award
] と [year
] を選択します。各テーブルにはパーティションキーが 1 つ必要です。パーティションキーは、1 つ以上の列で構成できます。 -
[クラスタリング列] として
category
とrank
を追加します。クラスタリング列はオプションであり、この列によって各パーティション内のソート順序が決まります。-
クラスタリング列を追加するには、[Add clustering column (クラスタリング列の追加)] を選択します。
-
[列] リストで、[category] を選択します。[Order (順序)] リストで、この列の値を昇順に並べ替えるために [ASC] を選択します。(降順の場合は [DESC] を選択してください。)
次に、[クラスタリング列を追加] を選択し、[rank] を選択します。
-
-
[Table settings (テーブル設定)] セクションで、[Default settings (デフォルト設定)] を選択します。
-
[Create table (テーブルの作成)] を選択します。
-
テーブルが作成されていることを確認します。
-
ナビゲーションペインで、[Tables (テーブル)] を選択します。
-
そのテーブルがテーブルの一覧に表示されていることを確認します。
-
テーブルの名前を選択します。
-
すべての列とデータ型が正しいことを確認します。
注記
これらの列の順序が、テーブルに追加した順序と同じではない場合があります。
-
この手順では、CQL を使用して、次の列とデータ型を含むテーブルを作成します。year
列と award
列がパーティションキーであり、category
と rank
がクラスタリング列です。これらを合わせて、テーブルのプライマリキーを構成しています。
year int
award text
rank int
category text
book_title text
author text
publisher text
CQL を使用してテーブルを作成するには
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.
-
キースペースプロンプト (
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
) で並べられています。これらの列を合わせて、テーブルのプライマリキーを構成しています。 -
テーブルが作成されていることを確認します。
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)
> -
テーブルの構造を確認します。
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 を使用して、次の列とデータ型を含むテーブルを作成します。year
列と award
列がパーティションキーであり、category
と rank
がクラスタリング列です。
year int
award text
rank int
category text
book_title text
author text
publisher text
AWS CLI を使用してテーブルを作成するには
以下のコマンドで book_wards という名前のテーブルが作成されます。テーブルのパーティションキーは year
列と award
列で構成され、クラスタリングキーは category
列と rank
列で構成されていて、クラスタリング列はどちらも昇順で並べられています (読みやすさに配慮して、このセクションでは、テーブル作成コマンドの schema-definition
を複数の行に分けて表示しています)。
-
次のステートメントを使用して、テーブルを作成できます。
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:111222333444:/keyspace/catalog/table/book_awards" }
-
テーブルのメタデータとプロパティは、以下のコマンドで確認します。
aws keyspaces get-table --keyspace-name 'catalog' --table-name 'book_awards'
このコマンドで、以下の出力が返ります。
{ "keyspaceName": "catalog", "tableName": "book_awards", "resourceArn": "arn:aws:cassandra:us-east-1:123SAMPLE012:/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) に進みます。