翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Keyspaces の論理パーティションあたりの静的列サイズを計算する
このセクションでは、Amazon Keyspaces でエンコードされた静的列サイズを推定する方法について説明します。エンコードされたサイズは、請求額とクォータの使用量を計算するときに使用されます。テーブルのプロビジョンドスループット性能要件を計算するときも、エンコードされたサイズを使用する必要があります。Amazon Keyspaces 内のエンコードされた静的列サイズを計算するには、次のガイドラインを使用します。
-
パーティションには、最大 2048 バイトのデータを保存できます。パーティションキーの各キー列には、最大 3 バイトのメタデータが必要です。これらのメタデータバイトは、パーティションあたり 1 MB の静的データサイズクォータにカウントされます。静的データのサイズを計算するときには、各パーティションキー列で上限である 3 バイトのメタデータが使用されていることを想定しておくべきです。
-
データ型に基づいて、静的列データ値の生のサイズを使用します。 のデータ型の詳細については、「データ型」を参照してください。
-
メタデータのために静的データのサイズに 104 バイトを足します。
-
クラスタリング列と通常の非プライマリキー列は、静的データのサイズにはカウントされません。行内の非静的データのサイズを見積もる方法については、「Amazon Keyspaces での行サイズの見積もり」を参照してください。
エンコードされた静的列の合計サイズは、次の式に基づいています。
partition key columns + static columns + metadata = total encoded size of static data
すべての列が整数型であるテーブルの例を考えてみましょう。テーブルには、パーティションキー列が 2 つ、クラスタリング列が 2 つ、通常の列が 1 つ、静的列が 1 つあります。
CREATE TABLE mykeyspace.mytable(pk_col1 int, pk_col2 int, ck_col1 int, ck_col2 int, reg_col1 int, static_col1 int static, primary key((pk_col1, pk_col2),ck_col1, ck_col2));
この例では、次のステートメントの静的データのサイズを計算します。
INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, static_col1) values(1,2,6);
この書き込みオペレーションに必要な合計バイト数を見積もるために、次のステップを使用します。
-
列に保存されているデータ型のバイトとメタデータバイトを追加して、パーティションキー列のサイズを計算します。この計算をすべてのパーティションキー列に対して繰り返します。
-
パーティションキー (pk_col1) の最初の列のサイズを計算します。
4 bytes for the integer data type + 3 bytes for partition key metadata = 7 bytes
-
パーティションキー (pk_col2) の 2 番目の列のサイズを計算します。
4 bytes for the integer data type + 3 bytes for partition key metadata = 7 bytes
-
両方の列を足して、パーティションキー列の合計サイズを見積もります。
7 bytes + 7 bytes = 14 bytes for the partition key columns
-
-
静的列のサイズを足します。この例では、整数を保存している列 (4 バイトが必要) が 1 つしかありません。
-
最後に、静的列データのエンコードされたサイズの合計を算出するには、プライマリキー列と静的列のバイト数を合計し、メタデータのために追加で 104 バイトを足します。
14 bytes for the partition key columns + 4 bytes for the static column + 104 bytes for metadata = 122 bytes.
静的データと非静的データを同じステートメントで更新することもできます。書き込みオペレーションの合計サイズを見積もるには、まず非静的データ更新のサイズを計算する必要があります。次に、次の Amazon Keyspaces での行サイズの見積もり での例に示すように、行の更新のサイズを計算し、結果を足します。
この場合、合計で 2 MB を書き込むことができます。1 MB が生の最大行サイズクォータで、もう 1 MB は論理パーティションごとの最大静的データサイズのクォータです。
同じステートメント内の静的データと非静的データの更新の合計サイズを計算するには、次の式を使用します。
(partition key columns + static columns + metadata = total encoded size of static data) + (partition key columns + clustering columns + regular columns + row metadata = total encoded size of row) = total encoded size of data written
すべての列が整数型であるテーブルの例を考えてみましょう。テーブルには、パーティションキー列が 2 つ、クラスタリング列が 2 つ、通常の列が 1 つ、静的列が 1 つあります。
CREATE TABLE mykeyspace.mytable(pk_col1 int, pk_col2 int, ck_col1 int, ck_col2 int, reg_col1 int, static_col1 int static, primary key((pk_col1, pk_col2),ck_col1, ck_col2));
この例では、次のステートメントに示すように、テーブルに行を書き込むときにデータのサイズを計算します。
INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, ck_col1, ck_col2, reg_col1, static_col1) values(2,3,4,5,6,7);
この書き込みオペレーションに必要な合計バイト数を見積もるために、次のステップを使用します。
-
前述のように、静的データのエンコードされたサイズの合計を計算します。この例では、この合計は 122 バイトです。
-
Amazon Keyspaces での行サイズの見積もり の手順に従い、非静的データの更新に基づいて、行のエンコードされたサイズの合計を足します。この例では、行の更新の合計サイズは 134 バイトです。
122 bytes for static data + 134 bytes for nonstatic data = 256 bytes.