View a markdown version of this page

Tingkatkan throughput hangat tabel DynamoDB Anda yang ada - Amazon DynamoDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tingkatkan throughput hangat tabel DynamoDB Anda yang ada

Setelah memeriksa nilai throughput hangat tabel DynamoDB saat ini, Anda dapat memperbaruinya dengan langkah-langkah berikut:

Untuk memeriksa nilai throughput hangat tabel DynamoDB Anda menggunakan konsol DynamoDB:

  1. Masuk ke Konsol Manajemen AWS dan buka konsol DynamoDB di. https://console.aws.amazon.com/dynamodb/

  2. Di panel navigasi kiri, pilih Tabel.

  3. Pada halaman Tabel, pilih tabel yang Anda inginkan.

  4. Di bidang Warm throughput, pilih Edit.

  5. Pada halaman Edit throughput hangat, pilih Ting katkan throughput hangat.

  6. Sesuaikan satuan baca per detik dan tulis unit per detik. Kedua pengaturan ini menentukan throughput yang dapat ditangani tabel Anda secara instan.

  7. Pilih Simpan.

  8. Unit baca per detik dan unit tulis per detik akan diperbarui di bidang throughput hangat saat permintaan selesai diproses.

    catatan

    Memperbarui nilai throughput hangat Anda adalah tugas asinkron. StatusAkan berubah dari UPDATING ke ACTIVE saat pembaruan selesai.

AWS CLI Contoh berikut menunjukkan cara memperbarui nilai throughput hangat tabel DynamoDB Anda.

  1. Jalankan update-table operasi pada tabel DynamoDB Anda.

    aws dynamodb update-table \ --table-name GameScores \ --warm-throughput ReadUnitsPerSecond=12345,WriteUnitsPerSecond=4567 \ --global-secondary-index-updates \ "[ { \"Update\": { \"IndexName\": \"GameTitleIndex\", \"WarmThroughput\": { \"ReadUnitsPerSecond\": 88, \"WriteUnitsPerSecond\": 77 } } } ]" \ --region us-east-1
  2. Anda akan menerima tanggapan yang mirip dengan yang di bawah ini. Peng WarmThroughput aturan Anda akan ditampilkan sebagai ReadUnitsPerSecond danWriteUnitsPerSecond. Ini Status akan terjadi UPDATING ketika nilai throughput hangat sedang diperbarui, dan ACTIVE ketika nilai throughput hangat baru disetel.

    { "TableDescription": { "AttributeDefinitions": [ { "AttributeName": "GameTitle", "AttributeType": "S" }, { "AttributeName": "TopScore", "AttributeType": "N" }, { "AttributeName": "UserId", "AttributeType": "S" } ], "TableName": "GameScores", "KeySchema": [ { "AttributeName": "UserId", "KeyType": "HASH" }, { "AttributeName": "GameTitle", "KeyType": "RANGE" } ], "TableStatus": "ACTIVE", "CreationDateTime": 1730242189.965, "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 20, "WriteCapacityUnits": 10 }, "TableSizeBytes": 0, "ItemCount": 0, "TableArn": "arn:aws:dynamodb:us-east-1:XXXXXXXXXXXX:table/GameScores", "TableId": "XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "GlobalSecondaryIndexes": [ { "IndexName": "GameTitleIndex", "KeySchema": [ { "AttributeName": "GameTitle", "KeyType": "HASH" }, { "AttributeName": "TopScore", "KeyType": "RANGE" } ], "Projection": { "ProjectionType": "INCLUDE", "NonKeyAttributes": [ "UserId" ] }, "IndexStatus": "ACTIVE", "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "ReadCapacityUnits": 50, "WriteCapacityUnits": 25 }, "IndexSizeBytes": 0, "ItemCount": 0, "IndexArn": "arn:aws:dynamodb:us-east-1:XXXXXXXXXXXX:table/GameScores/index/GameTitleIndex", "WarmThroughput": { "ReadUnitsPerSecond": 50, "WriteUnitsPerSecond": 25, "Status": "UPDATING" } } ], "DeletionProtectionEnabled": false, "WarmThroughput": { "ReadUnitsPerSecond": 12300, "WriteUnitsPerSecond": 4500, "Status": "UPDATING" } } }

Contoh SDK berikut menunjukkan cara memperbarui nilai throughput hangat tabel DynamoDB Anda.

Java
SDK untuk Java 2.x

Perbarui pengaturan throughput hangat pada tabel DynamoDB yang ada menggunakan. AWS SDK for Java 2.x

import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.DynamoDbException; import software.amazon.awssdk.services.dynamodb.model.GlobalSecondaryIndexUpdate; import software.amazon.awssdk.services.dynamodb.model.UpdateGlobalSecondaryIndexAction; import software.amazon.awssdk.services.dynamodb.model.UpdateTableRequest; import software.amazon.awssdk.services.dynamodb.model.WarmThroughput; public static WarmThroughput buildWarmThroughput(final Long readUnitsPerSecond, final Long writeUnitsPerSecond) { return WarmThroughput.builder() .readUnitsPerSecond(readUnitsPerSecond) .writeUnitsPerSecond(writeUnitsPerSecond) .build(); } /** * Updates a DynamoDB table with warm throughput settings for both the table and a global secondary index. * * @param ddb The DynamoDB client * @param tableName The name of the table to update * @param tableReadUnitsPerSecond Read units per second for the table * @param tableWriteUnitsPerSecond Write units per second for the table * @param globalSecondaryIndexName The name of the global secondary index to update * @param globalSecondaryIndexReadUnitsPerSecond Read units per second for the GSI * @param globalSecondaryIndexWriteUnitsPerSecond Write units per second for the GSI */ public static void updateDynamoDBTable( final DynamoDbClient ddb, final String tableName, final Long tableReadUnitsPerSecond, final Long tableWriteUnitsPerSecond, final String globalSecondaryIndexName, final Long globalSecondaryIndexReadUnitsPerSecond, final Long globalSecondaryIndexWriteUnitsPerSecond) { final WarmThroughput tableWarmThroughput = buildWarmThroughput(tableReadUnitsPerSecond, tableWriteUnitsPerSecond); final WarmThroughput gsiWarmThroughput = buildWarmThroughput(globalSecondaryIndexReadUnitsPerSecond, globalSecondaryIndexWriteUnitsPerSecond); final GlobalSecondaryIndexUpdate globalSecondaryIndexUpdate = GlobalSecondaryIndexUpdate.builder() .update(UpdateGlobalSecondaryIndexAction.builder() .indexName(globalSecondaryIndexName) .warmThroughput(gsiWarmThroughput) .build()) .build(); final UpdateTableRequest request = UpdateTableRequest.builder() .tableName(tableName) .globalSecondaryIndexUpdates(globalSecondaryIndexUpdate) .warmThroughput(tableWarmThroughput) .build(); try { ddb.updateTable(request); } catch (DynamoDbException e) { System.err.println(e.getMessage()); throw e; } System.out.println(SUCCESS_MESSAGE); }
  • Untuk detail API, lihat UpdateTable di Refer AWS SDK for Java 2.x ensi API.

JavaScript
SDK untuk JavaScript (v3)

Perbarui pengaturan throughput hangat pada tabel DynamoDB yang ada menggunakan. AWS SDK for JavaScript

import { DynamoDBClient, UpdateTableCommand } from "@aws-sdk/client-dynamodb"; export async function updateDynamoDBTableWarmThroughput( tableName, tableReadUnits, tableWriteUnits, gsiName, gsiReadUnits, gsiWriteUnits, region = "us-east-1" ) { try { const ddbClient = new DynamoDBClient({ region: region }); // Construct the update table request const updateTableRequest = { TableName: tableName, GlobalSecondaryIndexUpdates: [ { Update: { IndexName: gsiName, WarmThroughput: { ReadUnitsPerSecond: gsiReadUnits, WriteUnitsPerSecond: gsiWriteUnits, }, }, }, ], WarmThroughput: { ReadUnitsPerSecond: tableReadUnits, WriteUnitsPerSecond: tableWriteUnits, }, }; const command = new UpdateTableCommand(updateTableRequest); const response = await ddbClient.send(command); console.log(`Table updated successfully! Response: ${JSON.stringify(response)}`); return response; } catch (error) { console.error(`Error updating table: ${error}`); throw error; } } // Example usage (commented out for testing) /* updateDynamoDBTableWarmThroughput( 'example-table', 5, 5, 'example-index', 2, 2 ); */
  • Untuk detail API, lihat UpdateTable di Refer AWS SDK for JavaScript ensi API.

Python
SDK untuk Python (Boto3)

Perbarui pengaturan throughput hangat pada tabel DynamoDB yang ada menggunakan. AWS SDK for Python (Boto3)

from boto3 import client from botocore.exceptions import ClientError def update_dynamodb_table_warm_throughput( table_name, table_read_units, table_write_units, gsi_name, gsi_read_units, gsi_write_units, region_name="us-east-1", ): """ Updates the warm throughput of a DynamoDB table and a global secondary index. :param table_name: The name of the table to update. :param table_read_units: The new read units per second for the table's warm throughput. :param table_write_units: The new write units per second for the table's warm throughput. :param gsi_name: The name of the global secondary index to update. :param gsi_read_units: The new read units per second for the GSI's warm throughput. :param gsi_write_units: The new write units per second for the GSI's warm throughput. :param region_name: The AWS Region name to target. defaults to us-east-1 :return: The response from the update_table operation """ try: ddb = client("dynamodb", region_name=region_name) # Update the table's warm throughput table_warm_throughput = { "ReadUnitsPerSecond": table_read_units, "WriteUnitsPerSecond": table_write_units, } # Update the global secondary index's warm throughput gsi_warm_throughput = { "ReadUnitsPerSecond": gsi_read_units, "WriteUnitsPerSecond": gsi_write_units, } # Construct the global secondary index update global_secondary_index_update = [ {"Update": {"IndexName": gsi_name, "WarmThroughput": gsi_warm_throughput}} ] # Construct the update table request update_table_request = { "TableName": table_name, "GlobalSecondaryIndexUpdates": global_secondary_index_update, "WarmThroughput": table_warm_throughput, } # Update the table response = ddb.update_table(**update_table_request) print("Table updated successfully!") return response # Make sure to return the response except ClientError as e: print(f"Error updating table: {e}") raise e
  • Untuk detail API, lihat UpdateTable di Refer AWS ensi API SDK for Python (Boto3).