Amazon Keyspaces でテーブルを作成する - Amazon Keyspaces (Apache Cassandra 向け)

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

Amazon Keyspaces でテーブルを作成する

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

テーブルとは、データが整理されて保存されている場所です。テーブルのプライマリキーによって、テーブル内のデータの分割方法が決まります。プライマリキーは、必須のパーティションキー 1 つと、1 つ以上のオプションのクラスタリング列で構成されています。プライマリキーを構成する複合値は、テーブルのすべてのデータで一意でなければなりません。テーブルの詳細については、次のトピックを参照してください。

テーブルを作成する際には、以下を指定できます。

  • テーブルの名前。

  • テーブル内の各列の名前とデータ型。

  • テーブルのプライマリキー。

    • [Partition key (パーティションキー)] - 必須

    • [Clustering columns (クラスタリング列)] — オプション

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

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

year int award text rank int category text book_title text author text publisher text
コンソールを使用してテーブルを作成するには
  1. AWS Management Console にサインインし、https://console.aws.amazon.com/keyspaces/home で Amazon Keyspaces コンソールを開きます。

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

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

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

  5. [Table name (テーブル名)] ボックスに、テーブルの名前として「book_awards」を入力します。

    名前の制約:

    • 名前を空にすることはできません。

    • 使用できる文字: 英数字と下線 (_) です。

    • 最大長は 48 文字です。

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

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

    year int award text rank int category text book_title text author text publisher text
    1. [Name (名前)] — 列の名前を入力します。

      名前の制約:

      • 名前を空にすることはできません。

      • 使用できる文字: 英数字と下線 (_) です。

      • 最大長は 48 文字です。

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

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

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

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

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

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

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

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

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

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

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

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

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

    4. すべての列とデータ型が正しいことを確認します。

      注記

      これらの列の順序が、テーブルに追加した順序と同じではない場合があります。

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

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.
  2. キースペースプロンプト (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 を指定して降順にすることもできます。

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

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

    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)>
  4. テーブルの構造を確認します。

    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 列がパーティションキーであり、categoryrank がクラスタリング列です。

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 を複数の行に分けて表示しています)。

  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:111222333444:/keyspace/catalog/table/book_awards" }
  2. テーブルのメタデータとプロパティは、以下のコマンドで確認します。

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