翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
リソースの作成に問題がありますか。以下は、一般的なシナリオとその解決方法です。
データ定義言語エラー
Amazon Keyspaces は、キースペースやテーブルの作成や削除など、データ定義言語 (DDL) オペレーションを非同期的に実行します。アプリケーションの準備が整っていない時点でアプリケーションによりリソースの使用が試行されると、そのオペレーションは失敗します。
で新しいキースペースとテーブルの作成ステータスをモニタリングできます。これは AWS Management Console、キースペースまたはテーブルが保留中またはアクティブであることを示します。システムスキーマテーブルのクエリを実行して、新しいキースペースまたはテーブルの作成ステータスをプログラムにより監視することもできます。キースペースまたはテーブルは、使用可能な状態になると、システムスキーマに表示されます。
注記
を使用してキースペースの作成を最適化するには AWS CloudFormation、このユーティリティを使用してCQLスクリプトを CloudFormation テンプレートに変換します。ツールは GitHub リポジトリ
トピック
新しいキースペースを作成したが、表示またはアクセスできない
新しいキースペースへのアクセスを試行しているアプリケーションからエラーが送られてきた。
非同期的作成中である新規の Amazon Keyspaces キースペースにアクセスしようとすると、エラーが発生します。以下にエラーの例を示します。
InvalidRequest: Error from server: code=2200 [Invalid query] message="unconfigured keyspace mykeyspace"
新しいキースペースが使用可能な状態になるタイミングをチェックするための推奨設計パターンとは、Amazon Keyspaces のシステムスキーマテーブル (system_schema_mcs.*) のポーリングです。
詳細については、「Amazon Keyspaces でキースペースの作成ステータスを確認する」を参照してください。
新しいテーブルを作成したが、表示またはアクセスできない
新しいテーブルへのアクセスを試行しているアプリケーションからエラーが送られてきました。
非同期的作成中である新規の Amazon Keyspaces テーブルにアクセスしようとすると、エラーが発生します。例えば、まだ使用できる状態ではないテーブルをクエリしようとすると失敗して unconfigured table
というエラーが表示されます。
InvalidRequest: Error from server: code=2200 [Invalid query] message="unconfigured table mykeyspace.mytable"
sync_table()
でテーブルを表示しようとすると失敗して KeyError
が表示されます。
KeyError: 'mytable'
新しいテーブルが使用可能な状態になるタイミングをチェックするための推奨設計パターンとは、Amazon Keyspaces のシステムスキーマテーブル (system_schema_mcs.*) のポーリングです。
これは作成中のテーブルの出力例です。
user-at-123@cqlsh:system_schema_mcs> select table_name,status from system_schema_mcs.tables where keyspace_name='example_keyspace' and table_name='example_table'; table_name | status ------------+---------- example_table | CREATING (1 rows)
これはアクティブなテーブルの出力例です。
user-at-123@cqlsh:system_schema_mcs> select table_name,status from system_schema_mcs.tables where keyspace_name='example_keyspace' and table_name='example_table'; table_name | status ------------+---------- example_table | ACTIVE (1 rows)
詳細については、「Amazon Keyspaces でテーブルの作成ステータスを確認する」を参照してください。
Amazon Keyspaces point-in-timeリカバリ (PITR) を使用してテーブルを復元しようとしているが、復元が失敗する
復旧 (PITR) を使用して point-in-time Amazon Keyspaces テーブルを復元しようとしていて、復元プロセスが開始されても正常に完了しなかった場合は、この特定のテーブルの復元プロセスに必要なアクセス許可がすべて設定されていない可能性があります。
Amazon Keyspaces では、ユーザーアクセス許可に加えて、復元プロセス中にプリンシパルに代わってアクションを実行するためのアクセス許可が必要になる場合があります。これは、テーブルがカスタマーマネージドキーで暗号化されている場合や、受信トラフィックを制限するIAMポリシーを使用している場合に当てはまります。
たとえば、IAMポリシーで条件キーを使用してソーストラフィックを特定のエンドポイントまたは IP 範囲に制限している場合、復元オペレーションは失敗します。Amazon Keyspaces がプリンシパルに代わってテーブル復元オペレーションを実行できるようにするには、IAMポリシーに aws:ViaAWSService
グローバル条件キーを追加する必要があります。
テーブルを復元するための権限の詳細については、「Amazon Keyspaces PITR のテーブル復元用の IAM アクセス許可を設定する」を参照してください。
INSERT/UPDATE を使用してカスタムの有効期限 (TTL) 設定を編集しようとしているが、オペレーションが失敗する
カスタムTTL値を挿入または更新しようとすると、次のエラーでオペレーションが失敗することがあります。
TTL is not yet supported.
INSERT
または UPDATE
オペレーションを使用して行または列のカスタムTTL値を指定するには、まずテーブルTTLに対して を有効にする必要があります。ttl
カスタムプロパティを使用して、テーブルTTLに対して を有効にできます。
テーブルのカスタムTTL設定を有効にする方法の詳細については、「」を参照してくださいカスタムの有効期限 (TTL) でテーブルを更新する。
Amazon Keyspaces テーブルにデータをアップロードしようとすると、列数の超過に関するエラーが発生する
データをアップロードしていて、同時に更新できる列数を超過した。
このエラーは、テーブルスキーマが最大サイズの 350 KB を超えた場合に発生します。詳細については、「Amazon Keyspaces (Apache Cassandra 向け) のクォータ」を参照してください。
Amazon Keyspaces テーブルのデータを削除しようとすると、その範囲のために削除が失敗する
パーティションキーでデータを削除しようとすると、削除範囲エラーが表示されます。
このエラーは、1 回の削除オペレーションで 1,000 行以上を削除しようとしたときに発生します。
Range delete requests are limited by the amount of items that can be deleted in a single range.
詳細については、「範囲削除」を参照してください。
1 つのパーティション内で 1,000 行以上を削除する場合は、次のオプションを検討してください。
-
パーティションごとの削除 — パーティションの大部分が 1,000 行未満の場合は、パーティションごとにデータを削除できます。パーティションに含まれている行が 1,000 行以上である場合は、代わりにクラスタリング列ごとに削除してください。
-
クラスタリング列ごとの削除 — モデルに複数のクラスタリング列が含まれている場合、列階層を使用して複数の行を削除できます。クラスタリング列はネスト構造であり、最上位の列に対してオペレーションを行うことで、多くの行を削除できます。
行ごとの削除 — 行を繰り返し処理し、そのフルプライマリキーで各行を削除できます (パーティション列とクラスタリング列)。
ベストプラクティスとして、パーティション間での行の分割を検討してください。Amazon Keyspaces では、テーブルパーティション間でスループットを分散させることをお勧めします。これにより、物理リソース間でデータとアクセスが均等に分散され、最高のスループットが得られます。詳細については、「データモデリングのベストプラクティス: データモデル設計時の推奨事項」を参照してください。
高いワークロードに対して削除オペレーションを計画する場合は、次の推奨事項も考慮してください。
Amazon Keyspaces では、パーティションに含めることができる行数は事実上無制限です。これにより、従来の Cassandra ガイダンスである 100 MB よりも「広く」パーティションのスケールを調整できます。時系列や台帳については、時間の経過とともにデータをギガバイト単位で増加させることは珍しくありません。
Amazon Keyspaces では、高いワークロードの削除オペレーションを実行する必要がある場合に考慮すべき圧縮戦略やトゥームストーンはありません。読み取りパフォーマンスに影響を与えることなく、必要な数のデータを削除できます。