

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

# 機能の違い: Amazon Keyspaces と Apache Cassandra
<a name="functional-differences"></a>

Amazon Keyspaces と Apache Cassandra の機能上の違いは以下のとおりです。

**Topics**
+ [

## Apache Cassandra の API、オペレーション、およびデータ型
](#functional-differences.cassandra-apis)
+ [

## キースペースとテーブルの非同期的な作成および削除
](#functional-differences.table-keyspace-management)
+ [

## 認証と認可
](#functional-differences.auth)
+ [

## バッチ
](#functional-differences.batch)
+ [

## 変更データキャプチャ (CDC)
](#functional-differences.cdc)
+ [

## クラスターの設定
](#functional-differences.cluster-config)
+ [

## Connections
](#functional-differences.connections)
+ [

## `IN` キーワード
](#functional-differences.IN-keyword)
+ [

## `FROZEN` collections
](#functional-differences.frozen-collections)
+ [

## 軽量トランザクション
](#functional-differences.light-transactions)
+ [

## 負荷分散
](#functional-differences.load-balancing)
+ [

## Pagination (ページ分割)
](#functional-differences.paging)
+ [

## パーティショナー
](#functional-differences.partitioners)
+ [

## プリペアドステートメント
](#functional-differences.prepared-statements)
+ [

## 範囲削除
](#functional-differences.range-delete)
+ [

## システムテーブル
](#functional-differences.system-tables)
+ [

## タイムスタンプ
](#functional-differences.timestamps)
+ [

## ユーザー定義タイプ (UDTs)
](#functional-differences.UDTs)

## Apache Cassandra の API、オペレーション、およびデータ型
<a name="functional-differences.cassandra-apis"></a>

Amazon Keyspaces は、キースペースとテーブルの作成、データの読み取り、データの書き込みなど、一般的に使用されるあらゆる Cassandra データプレーンオペレーションに対応しています。現在サポートされているものについては、「[サポートされている Cassandra API、オペレーション、関数、データ型](cassandra-apis.md)」を参照してください。

## キースペースとテーブルの非同期的な作成および削除
<a name="functional-differences.table-keyspace-management"></a>

Amazon Keyspaces は、キースペース 、テーブル、タイプを非同期的に作成および削除するなど、データ定義言語 (DDL) オペレーションを実行します。リソースの作成状況を監視する方法については、「[Amazon Keyspaces でキースペースの作成ステータスを確認する](keyspaces-create.md)」と「[Amazon Keyspaces でテーブルの作成ステータスを確認する](tables-create.md)」を参照してください。CQL 言語リファレンスの DDL ステートメントのリストについては、「[Amazon Keyspaces の DDL ステートメント (データ定義言語)](cql.ddl.md)」を参照してください。

## 認証と認可
<a name="functional-differences.auth"></a>

 Amazon Keyspaces (Apache Cassandra 向け) では、 AWS Identity and Access Management (IAM) がユーザーの認証と認可に使用され、Apache Cassandra と同等の認可ポリシーがサポートされています。そのため、Amazon Keyspaces では Apache Cassandra のセキュリティ設定コマンドをサポートしていません。

## バッチ
<a name="functional-differences.batch"></a>

Amazon Keyspaces は、次のバッチコマンドをサポートしています。
+ **Logged Batch** – バッチあたり最大 100 個のコマンドをサポートします。
+ **ログに記録されていないバッチ** – バッチあたり最大 30 個のコマンドをサポートします。

 バッチでは**INSERT**、**UPDATE**、、または **DELETE** コマンドのみが許可されます。

## 変更データキャプチャ (CDC)
<a name="functional-differences.cdc"></a>

Apache Cassandra では、変更データキャプチャ (CDC) は、テーブルの更新をキャプチャするコミットログセグメントをノード上の指定されたディレクトリにコピーします。CDC ログの各変更レコードには、複数のキースペースとテーブルにわたる更新を含めることができます。行が更新または削除されると、Apache Cassandra CDC ログには変更された列のみが表示されます。ログには、変更前のデータの以前の状態は含まれません。データ変更の詳細をすべて理解するには、特定の Cassandra ツールを使用してこれらのログを逆シリアル化する必要があります。

Amazon Keyspaces CDC ストリームでは、CDC ストリームが行ごとに収集する情報のタイプを選択できます。デフォルトでは、Amazon Keyspaces CDC ストリームは変更前後の行のバージョンをキャプチャします。Amazon Keyspaces CDC は、重複排除された変更レコードと順序付けられた変更レコードをテーブルレベルで提供します。

Amazon Keyspaces では、各 CDC ストリームは Amazon AWS リソースネーム (ARN) を持つリソースであり、アプリケーションは利用可能な[エンドポイント](CDC_access-endpoints.md)のいずれかを使用して Amazon Keyspaces CDC API を使用して Amazon Keyspaces CDC ストリームを消費できます。

Amazon Keyspaces CDC の詳細については、「」を参照してください[Amazon Keyspaces での変更データキャプチャ (CDC) ストリームの使用](cdc.md)。

## クラスターの設定
<a name="functional-differences.cluster-config"></a>

Amazon Keyspaces はサーバーレスであるため、クラスター、ホスト、Java 仮想マシン (JVM) の設定は不要です。Cassandra のコンパクション、圧縮、キャッシュ、ガベージコレクション、ブルームフィルタリングの各設定は、Amazon Keyspaces には適用されず、指定すれば無視できます。

## Connections
<a name="functional-differences.connections"></a>

既存の Cassandra ドライバーで Amazon Keyspaces と通信できますが、ドライバーには異なる設定が必要です。Amazon Keyspaces は、TCP 接続 1 つにつき 1 秒あたり最大 3,000 の CQL クエリに対応していますが、ドライバーが確立できる接続数に制限はありません。

ほとんどのオープンソース Cassandra ドライバーで、Cassandra への接続プールが確立され、その接続プールでクエリのロードバランスが行われます。Amazon Keyspaces では 9 つのピア IP アドレスがドライバーに公開されており、ほとんどのドライバーのデフォルトの動作は、各ピアの IP アドレスに対して接続を 1 つずつ確立することです。したがって、デフォルト設定を使用するドライバーの最大 CQL クエリスループットは、1 秒あたり 27,000 CQL クエリになります。

この数を増やすには、接続プールでドライバーにより維持されている各 IP アドレスの接続数を増やすことをお勧めします。例えば、IP アドレスあたりの最大接続数を 2 に設定すると、ドライバーの最大スループットが 1 秒あたり 54,000 CQL クエリの 2 倍になります。

ベストプラクティスとして、オーバーヘッドを考慮して配信を改善するために、接続ごとに 1 秒あたり 500 件の CQL クエリを使用するようにドライバーを設定することをお勧めします。このシナリオでは、1 秒あたり 18,000 件の CQL クエリが想定される場合、36 本の接続が必要です。9 つのエンドポイントにまたがる 4 本の接続でドライバーを設定する場合、36 本の接続で 1 秒あたり 500 件のリクエストを処理することになります。接続に関する詳しいベストプラクティスについては、「[サーバーレス環境のクライアントドライバー接続を最適化する](connections.md)」を参照してください。

VPC エンドポイントに接続すると、使用可能なエンドポイント数が少なくなる可能性があります。したがって、ドライバー設定内の接続数を増やす必要があります。VPC 接続のベストプラクティスの詳細については、「[Amazon Keyspaces の VPC エンドポイント経由接続の設定方法](connections.md#connections.VPCendpoints)」を参照してください。

## `IN` キーワード
<a name="functional-differences.IN-keyword"></a>

Amazon Keyspaces は、`SELECT` ステートメント内の `IN` キーワードをサポートしています。 `IN` は `UPDATE` と `DELETE` ではサポートしていません。`SELECT` ステートメントで `IN` キーワードを使用すると、クエリ結果は `SELECT` ステートメントにキーが示されている順序で返されます。Cassandra では、結果は辞書順に並べられます。

` ORDER BY` を使用するとき、ページ分割を無効にした状態の完全な並べ替えはサポートしていません。結果はページ内で順序付けられます。`IN` キーワードではスライスクエリはサポートしていません。 `TOKENS` は、`IN` キーワードではサポートしていません。Amazon Keyspaces は、サブクエリを作成して `IN` キーワードのあるクエリを処理します。各サブクエリは、TCP 接続あたり 1 秒あたり 3,000 件の CQL クエリという制限に対する接続としてカウントされます。詳細については、「[Amazon Keyspaces でクエリの `SELECT` ステートメントで `IN` 演算子を使用する](in.select.md)」を参照してください。

## `FROZEN` collections
<a name="functional-differences.frozen-collections"></a>

Cassandra `FROZEN` のキーワードでは、コレクションデータ型の複数のコンポーネントが 1 つの不変の値にシリアル化され、その値は `BLOB` のように扱われます。`INSERT` ステートメントと `UPDATE` ステートメントはコレクション全体を上書きします。

Amazon Keyspaces は、デフォルトでフリーズコレクションに対して最大 8 レベルのネストをサポートしています。詳細については、「[Amazon Keyspaces サービスクォータ](quotas.md#table)」を参照してください。

Amazon Keyspaces は、条件 `UPDATE` ステートメントまたは `SELECT` ステートメントでフリーズコレクション全体を使用する不等式比較をサポートしていません。コレクションとフリーズコレクションの動作は Amazon Keyspaces でも同じです。

クライアント側のタイムスタンプでフリーズコレクションを使用している場合、書き込みオペレーションのタイムスタンプが、有効期限が切れていないか、廃棄されていない既存の列のタイムスタンプと同じ場合、Amazon Keyspaces は比較を実行しません。代わりに、サーバーが最新のライターを決定し、最新のライターが優先されます。

フリーズコレクションの詳細については、「[コレクション型](cql.elements.md#cql.data-types.collection)」を参照してください。

## 軽量トランザクション
<a name="functional-differences.light-transactions"></a>

Amazon Keyspaces (Apache Cassandra 向け) では、**INSERT** コマンド、**UPDATE** コマンド、および **DELETE** コマンドの比較機能と設定機能をすべてサポートしています。これらの機能は、Apache Cassandra では*軽量トランザクション* (LWT) という名称です。Amazon Keyspaces (Apache Cassandra 向け) はサーバーレス製品として、軽量トランザクションを含め、あらゆる規模で一貫性のあるパフォーマンスを提供します。Amazon Keyspaces では、軽量トランザクションを使用してもパフォーマンス上のペナルティはありません。

## 負荷分散
<a name="functional-differences.load-balancing"></a>

`system.peers` テーブルエントリは、Amazon Keyspaces ロードバランサーに対応します。最良の結果を得るために、ラウンドロビンロードバランシングポリシーを使用し、アプリケーションのニーズに合わせて IP ごとに接続数を調整することをお勧めします。

## Pagination (ページ分割)
<a name="functional-differences.paging"></a>

Amazon Keyspaces では、結果セットで返された行数ではなく、リクエストを処理するために読み取られた行の数に基づいて結果のページ分割が行われます。その結果、一部のページの行数が、フィルタリングされたクエリに対して PAGE SIZE で指定した行数よりも少なくなる可能性があります。Amazon Keyspaces ではさらに、1 MB のデータの読み取り後に結果を自動的にページ分割して、一貫した 1 桁台のミリ秒の読み取りパフォーマンスをお客様にお届けします。詳細については、「[Amazon Keyspaces で結果のページを分割する](paginating-results.md)」を参照してください。

静的列があるテーブルでは、Apache Cassandra および Amazon Keyspaces のいずれでも、クエリの結果が複数ページにまたがる場合、各ページの開始時にそのパーティションの静的列の値が設定されます。テーブルに大きなデータ行がある場合、Amazon Keyspaces のページ分割の仕様上、Apache Cassandra よりも Amazon Keyspaces の方が、範囲読み取りオペレーションの結果のページ数が多くなりやすい傾向にあります。その結果、Amazon Keyspaces では、静的列の並列更新が行われると、範囲読み取りの結果セットの異なるページで静的列の値が異なる可能性が高くなります。

## パーティショナー
<a name="functional-differences.partitioners"></a>

Amazon Keyspaces デフォルトパーティショナーは Cassandra 互換の `Murmur3Partitioner` です。さらに、Amazon Keyspaces `DefaultPartitioner` と Cassandra 互換の `RandomPartitioner` のどちらを使用するかを選択できます。

Amazon Keyspaces を使用すると、Amazon Keyspaces データを再読み込みしなくても、アカウントのパーティショナーを安全に変更できます。約 10 分かかる設定変更が完了すると、クライアントが次に接続したときに新しいパーティショナー設定が自動的に表示されます。詳細については、「[Amazon Keyspaces でのパーティショナーの操作](working-with-partitioners.md)」を参照してください。

## プリペアドステートメント
<a name="functional-differences.prepared-statements"></a>

Amazon Keyspaces では、データの読み取りや書き込みなどのデータ操作言語 (DML) オペレーションに対するプリペアドステートメントの使用がサポートされています。Amazon Keyspaces は現在、テーブルやキースペースの作成などのデータ定義言語 (DDL) オペレーションでのプリペアドステートメントの使用をサポートしていません。DDL オペレーションは、プリペアドステートメントの外部で実行する必要があります。

## 範囲削除
<a name="functional-differences.range-delete"></a>

**重要**  
2026 年 7 月 1 日以降、範囲削除オペレーションは同期処理から非同期処理に移行します。この変更後、レスポンスが成功すると、削除リクエストが承諾されたことが確認されますが、削除はまだ進行中である可能性があります。削除が完了したことを確認するには、指定された範囲内の項目をクエリします。クエリが結果を返さない場合、削除は完了します。

Amazon Keyspaces では、一定範囲内の行の削除がサポートされています。範囲とは、パーティション内の連続する行のセットです。DELETE オペレーションで範囲を指定するには、WHERE 句を使用します。範囲をパーティション全体に指定することもできます。

さらに、関係演算子 (「>」、「<」など) を使用することによって、または、パーティションキーを含めて 1 つ以上のクラスタリング列を省略することによって、パーティション内の連続する行のサブセットとして範囲を指定できます。Amazon Keyspaces を使用すると、1 回のオペレーションで 1 つの範囲内の行を最大で 1,000 行削除できます。

範囲削除は分離されていません。範囲削除の処理中でも、個々の行の削除は他のオペレーションから認識できる状態です。

## システムテーブル
<a name="functional-differences.system-tables"></a>

Amazon Keyspaces は、Apache 2.0 オープンソースの Cassandra ドライバーに必要なシステムテーブルに情報を入力します。クライアントに表示されるシステムテーブルには、認証されたユーザーに固有の情報が含まれています。システムテーブルは Amazon Keyspaces によって完全に制御されるものであり、読み取り専用です。詳細については、「[Amazon Keyspaces のシステムキースペース](working-with-keyspaces.md)」を参照してください。

システムテーブルへの読み取り専用アクセス権限が必要です。この権限は、IAM アクセスポリシーで制御できます。詳細については、「[ポリシーを使用したアクセスの管理](security-iam.md#security_iam_access-manage)」を参照してください。Cassandra ドライバーと開発者ツールを使用して AWS SDK または Cassandra クエリ言語 (CQL) API コールを使用するかどうかに応じて、システムテーブルのタグベースのアクセスコントロールポリシーを異なる方法で定義する必要があります。システムテーブルのタグベースのアクセスコントロールに関する詳細については、「[タグに基いた Amazon Keyspaces リソースアクセス](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-tags)」を参照してください。

[Amazon VPC エンドポイント](vpc-endpoints.md)で Amazon Keyspaces にアクセスすると、Amazon キKeyspaces が表示権限を持っている各 Amazon VPC エンドポイントのエントリが `system.peers` テーブルに表示されます。その結果、Cassandra ドライバーによって `system.peers` テーブル内のコントロールノードそのものに関する[警告メッセージ](vpc-endpoints.md#vpc_troubleshooting)が表示される場合があります。この警告は無視しても問題ありません。

## タイムスタンプ
<a name="functional-differences.timestamps"></a>

Amazon Keyspaces では、Apache Cassandra のデフォルトのタイムスタンプと互換性のあるセルレベルのタイムスタンプはオプトイン機能です。

`USING TIMESTAMP` 句と `WRITETIME` 関数は、テーブルのクライアント側のタイムスタンプがオンになっているときにのみ使用できます。Amazon Keyspaces のクライアント側のタイムスタンプの詳細については、「[Amazon Keyspaces でのクライアント側のタイムスタンプ](client-side-timestamps.md)」を参照してください。

## ユーザー定義タイプ (UDTs)
<a name="functional-differences.UDTs"></a>

Amazon Keyspaces の UDTs では、不等式演算子はサポートされていません。

Amazon UDTs を使用する方法については、「」を参照してください[Amazon Keyspaces でのユーザー定義型 (UDT)](udts.md)。

キースペースごとにサポートされている UDTs の数、サポートされているネストレベル、および UDTs「」を参照してください[Amazon Keyspaces のユーザー定義タイプ (UDTsクォータとデフォルト値](quotas.md#quotas-udts)。