Cara dengan denganDynamoDB - AWS SDK for Java 1.x

AWS SDK for Java 1.x telah memasuki mode pemeliharaan pada 31 Juli 2024, dan akan mencapai end-of-supportpada 31 Desember 2025. Kami menyarankan Anda bermigrasi ke AWS SDK for Java 2.xuntuk terus menerima fitur baru, peningkatan ketersediaan, dan pembaruan keamanan.

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 lengkapnyaGitHub.

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 lengkapnyaGitHub.

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 lengkapnyaGitHub.

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 lengkapnyaGitHub.

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 lengkapnyaGitHub.

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 lengkapnyaGitHub.

Info Selengkapnya