AWS SDK for Java 1.x telah memasuki mode pemeliharaan pada 31 Juli 2024, dan akan mencapai end-of-support
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cara dengan denganDynamoDB
Tabel adalah wadah untuk semua item dalamDynamoDB database. Sebelum Anda dapat melakukan tambahkan atau hapus data dariDynamoDB, Anda harus membuat tabel.
Untuk setiap tabel, Anda harus menentukan:
-
Nama tabel yang unik untuk akun dan wilayah Anda.
-
Kunci utama yang setiap nilai harus unik; tidak ada dua item dalam tabel Anda dapat memiliki nilai kunci utama yang sama.
Kunci primer bisa sederhana, terdiri dari satu partisi (HASH) kunci, atau komposit, yang terdiri dari partisi dan semacam (RANGE) kunci.
Setiap nilai kunci memiliki tipe data yang terkait, disebutkan oleh ScalarAttributeTypekelas. Nilai kunci dapat biner (B), numerik (N), atau string (S). Untuk informasi selengkapnya, lihat Aturan Penamaan dan Jenis Data di PanduanAmazon DynamoDB Pengembang.
-
Nilai throughput yang disediakan yang menentukan jumlah unit kapasitas baca/tulis cadangan untuk tabel.
catatan
Amazon DynamoDBharga
didasarkan pada nilai throughput yang disediakan yang Anda tetapkan pada tabel Anda, jadi cadangan hanya kapasitas sebanyak yang Anda pikir Anda perlukan untuk meja Anda.
Throughput yang disediakan untuk tabel dapat dimodifikasi kapan saja, sehingga Anda dapat menyesuaikan kapasitas jika kebutuhan Anda berubah.
Buat Tabel
GunakancreateTable
metode DynamoDBklien untuk membuatDynamoDB tabel baru. Anda perlu membangun atribut tabel dan skema tabel, yang keduanya digunakan untuk mengidentifikasi kunci utama tabel Anda. Anda juga harus menyediakan nilai throughput awal yang disediakan dan nama tabel. Hanya menentukan atribut tabel kunci saat membuatDynamoDB tabel Anda.
catatan
Jika tabel dengan nama yang Anda pilih sudah ada, sebuah AmazonServiceExceptiondilemparkan.
Impor
import com.amazonaws.AmazonServiceException; import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; import com.amazonaws.services.dynamodbv2.model.AttributeDefinition; import com.amazonaws.services.dynamodbv2.model.CreateTableRequest; import com.amazonaws.services.dynamodbv2.model.CreateTableResult; import com.amazonaws.services.dynamodbv2.model.KeySchemaElement; import com.amazonaws.services.dynamodbv2.model.KeyType; import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput; import com.amazonaws.services.dynamodbv2.model.ScalarAttributeType;
Buat Tabel dengan Kunci Utama Sederhana
Kode ini membuat tabel dengan kunci primer sederhana (“Nama”).
Kode
CreateTableRequest request = new CreateTableRequest() .withAttributeDefinitions(new AttributeDefinition( "Name", ScalarAttributeType.S)) .withKeySchema(new KeySchemaElement("Name", KeyType.HASH)) .withProvisionedThroughput(new ProvisionedThroughput( new Long(10), new Long(10))) .withTableName(table_name); final AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); try { CreateTableResult result = ddb.createTable(request); System.out.println(result.getTableDescription().getTableName()); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }
Lihat contoh lengkapnya
Buat Tabel dengan Kunci Utama Komposit
Tambahkan yang lain AttributeDefinitiondan KeySchemaElementke CreateTableRequest.
Kode
CreateTableRequest request = new CreateTableRequest() .withAttributeDefinitions( new AttributeDefinition("Language", ScalarAttributeType.S), new AttributeDefinition("Greeting", ScalarAttributeType.S)) .withKeySchema( new KeySchemaElement("Language", KeyType.HASH), new KeySchemaElement("Greeting", KeyType.RANGE)) .withProvisionedThroughput( new ProvisionedThroughput(new Long(10), new Long(10))) .withTableName(table_name);
Lihat contoh lengkapnya
Daftar Tabel
Anda dapat mencantumkan tabel di wilayah tertentu dengan memanggillistTables
metode DynamoDBklien.
catatan
Jika tabel bernama tidak ada untuk akun dan wilayah Anda, sebuah ResourceNotFoundExceptiondilemparkan.
Impor
import com.amazonaws.AmazonServiceException; import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; import com.amazonaws.services.dynamodbv2.model.ListTablesRequest; import com.amazonaws.services.dynamodbv2.model.ListTablesResult;
Kode
final AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); ListTablesRequest request; boolean more_tables = true; String last_name = null; while(more_tables) { try { if (last_name == null) { request = new ListTablesRequest().withLimit(10); } else { request = new ListTablesRequest() .withLimit(10) .withExclusiveStartTableName(last_name); } ListTablesResult table_list = ddb.listTables(request); List<String> table_names = table_list.getTableNames(); if (table_names.size() > 0) { for (String cur_name : table_names) { System.out.format("* %s\n", cur_name); } } else { System.out.println("No tables found!"); System.exit(0); } last_name = table_list.getLastEvaluatedTableName(); if (last_name == null) { more_tables = false; }
Secara default, hingga 100 tabel dikembalikan per panggilan—gunakangetLastEvaluatedTableName
pada ListTablesResultobjek yang dikembalikan untuk mendapatkan tabel terakhir yang dievaluasi. Anda dapat menggunakan nilai ini untuk memulai daftar setelah nilai terakhir yang dikembalikan dari daftar sebelumnya.
Lihat contoh lengkapnya
Jelaskan (Dapatkan Informasi tentang) Tabel
PanggildescribeTable
metode DynamoDBklien.
catatan
Jika tabel bernama tidak ada untuk akun dan wilayah Anda, sebuah ResourceNotFoundExceptiondilemparkan.
Impor
import com.amazonaws.AmazonServiceException; import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; import com.amazonaws.services.dynamodbv2.model.AttributeDefinition; import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughputDescription; import com.amazonaws.services.dynamodbv2.model.TableDescription;
Kode
final AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); try { TableDescription table_info = ddb.describeTable(table_name).getTable(); if (table_info != null) { System.out.format("Table name : %s\n", table_info.getTableName()); System.out.format("Table ARN : %s\n", table_info.getTableArn()); System.out.format("Status : %s\n", table_info.getTableStatus()); System.out.format("Item count : %d\n", table_info.getItemCount().longValue()); System.out.format("Size (bytes): %d\n", table_info.getTableSizeBytes().longValue()); ProvisionedThroughputDescription throughput_info = table_info.getProvisionedThroughput(); System.out.println("Throughput"); System.out.format(" Read Capacity : %d\n", throughput_info.getReadCapacityUnits().longValue()); System.out.format(" Write Capacity: %d\n", throughput_info.getWriteCapacityUnits().longValue()); List<AttributeDefinition> attributes = table_info.getAttributeDefinitions(); System.out.println("Attributes"); for (AttributeDefinition a : attributes) { System.out.format(" %s (%s)\n", a.getAttributeName(), a.getAttributeType()); } } } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }
Lihat contoh lengkapnya
Memodifikasi (Update) Tabel
Anda dapat memodifikasi nilai throughput yang disediakan tabel Anda kapan saja dengan memanggilupdateTable
metode DynamoDBklien.
catatan
Jika tabel bernama tidak ada untuk akun dan wilayah Anda, sebuah ResourceNotFoundExceptiondilemparkan.
Impor
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput; import com.amazonaws.AmazonServiceException;
Kode
ProvisionedThroughput table_throughput = new ProvisionedThroughput( read_capacity, write_capacity); final AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); try { ddb.updateTable(table_name, table_throughput); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }
Lihat contoh lengkapnya
Menghapus Tabel
PanggildeleteTable
metode DynamoDBklien dan berikan nama tabel.
catatan
Jika tabel bernama tidak ada untuk akun dan wilayah Anda, sebuah ResourceNotFoundExceptiondilemparkan.
Impor
import com.amazonaws.AmazonServiceException; import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
Kode
final AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); try { ddb.deleteTable(table_name); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }
Lihat contoh lengkapnya
Info Selengkapnya
-
Pedoman untuk Bekerja dengan Tabel di PanduanAmazon DynamoDB Pengembang
-
Bekerja dengan TabelDynamoDB di dalam PanduanAmazon DynamoDB Pengembang