Bangun aplikasi contoh ini untuk mengetahui betapa mudahnya membuat database.

Poin Penting

  • DynamoDB adalah database NoSQL canggih yang ditawarkan oleh AWS yang dapat menangani beragam data dalam jumlah besar tanpa mengorbankan performa, daya tahan, atau keandalan.
  • Untuk memulai DynamoDB di Node.js, Anda perlu menginstal paket client-dynamodb dari aws-sdk dan mengonfigurasi kredensial Anda.
  • DynamoDB memungkinkan Anda membuat tabel, menulis dan membaca data, memperbarui catatan, dan menghapus catatan dengan mudah menggunakan metode dan parameter klien. Ini menawarkan fleksibilitas dan skalabilitas untuk pengembangan aplikasi yang efisien.

Sebagian besar pengembangan aplikasi modern memerlukan perpaduan bahasa pemrograman yang kuat dan database yang kuat.

Salah satu solusi yang ditawarkan Amazon Web Services (AWS) adalah DynamoDB, sebuah alat yang dapat merevolusi pengelolaan data Anda. Dengan menggunakannya, Anda dapat dengan cepat menyediakan database untuk menangani beragam data dalam jumlah besar.

instagram viewer

Apa itu DynamoDB?

AWS menawarkan layanan untuk kebutuhan database yang berbeda, seperti Amazon RDS untuk database relasional, dan DocumentDB untuk database dokumen seperti MongoDB. DynamoDB adalah database NoSQL untuk menyimpan data dalam format nilai kunci.

DynamoDB dapat menangani data dalam jumlah besar di seluruh infrastruktur terdistribusi tanpa mengorbankan kinerja, ketahanan, atau keandalan. Ini menawarkan model yang fleksibel, memungkinkan Anda menyimpan dan menanyakan data dengan mudah, baik terstruktur maupun tidak terstruktur.

Anda dapat menggunakan DynamoDB sebagai database untuk berbagai jenis aplikasi. Anda dapat mengaksesnya langsung dari konsol web AWS dan secara terprogram melalui AWS-CLI, atau dari aplikasi web menggunakan AWS-SDK.

Memulai DynamoDB di Node.js

ada banyak alat untuk membangun API backend di Node.js dan Anda bebas memilih database untuk API Anda saat bekerja dengan salah satu alat ini. Node.js memberikan dukungan luas untuk layanan eksternal termasuk database seperti AWS DynamoDB.

Yang Anda perlukan untuk mengakses layanan AWS dari aplikasi Node Anda adalah klien aws-sdk paket untuk layanan itu. Misalnya, untuk mengakses DynamoDB, Anda perlu menginstal klien-dynamodb paket di bawah aws-sdk.

Jalankan perintah ini di direktori proyek Anda untuk menginstal paket:

npm install @aws-sdk/client-dynamodb

Setelah menginstal aws-sdk/client-dynamodb di proyek Node.js, Anda perlu menambahkan wilayah tabel DynamoDB ke konfigurasi sebelum Anda berinteraksi dengannya. Anda akan melakukan ini saat menginisialisasi klien DynamoDB.

Jika Anda telah menginstal dan menggunakan AWS-CLI di komputer Anda sebelumnya, Anda mungkin sudah menetapkan kredensial AWS di lingkungan Anda, dan SDK akan secara otomatis mendapatkan nilai Anda dari lingkungan tersebut.

Namun jika belum, Anda bisa menuju ke Manajemen Akses Identitas AWS (IAM) layanan di konsol Anda dan buat pengguna baru. Setelah membuat pengguna, Anda bisa mendapatkan ID kunci akses dan kunci rahasia, yang merupakan kredensial pribadi Anda.

Tambahkan kredensial ini ke lingkungan Anda dengan menjalankan perintah terminal berikut untuk platform Anda:

Di Unix, Linux, atau macOS:

export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'

Di Windows (CMD):

set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'

Di Windows (PowerShell):

$env: AWS_ACCESS_KEY_ID='your access key ID'
$env: AWS_SECRET_ACCESS_KEY='you secret access key'

Kemudian, kembali ke proyek Node.js Anda, buat file baru dan beri nama dinamodb.js. Dalam file ini, buat instance klien AWS DynamoDB baru menggunakan kode berikut:

const { DynamoDB } = require('@aws-sdk/client-dynamodb')

const region = "us-east-1"// your preferred region

const client = new DynamoDB({ region })

Cukup mudah! AWS memastikan Anda tidak mengekspos kredensial keamanan apa pun dalam kode Anda, begitu juga dengan kodenya di atas mencoba membuat klien, pertama-tama ia membaca kunci akses dan kunci rahasia dari lingkungan Anda.

Yang baru dibuat klien memungkinkan Anda melakukan berbagai operasi, seperti membuat tabel dan membaca serta menulis data.

DynamoDB tidak memiliki skema sama seperti database NoSQL lainnya, sehingga Anda selalu dapat menambahkan atribut (kolom) baru ke tabel kapan saja. Inilah sebabnya Anda hanya perlu menambahkan atribut yang akan berfungsi sebagai kunci utama ke tabel DynamoDB saat membuatnya.

Lihat kode berikut yang membuat tabel baru (Pelanggan) di DynamoDB:

const createCustomerTable = async () => {
const params = {
TableName: "Customer",
AttributeDefinitions: [
{
AttributeName: "Email",
AttributeType: "S"
},
],
KeySchema: [
{
AttributeName: "Email",
KeyType: "HASH"
}
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
};

client.createTable(params, (err, data) => {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
}

createCustomerTable();

Itu Definisi Atribut bidang ini adalah tempat Anda menentukan atribut utama tabel dan tipenya. Itu Surel atribut di sini memiliki tipe S yang berarti lapangan mengharapkan a Rangkaian sebagai nilainya. Tiga tipe atribut yang tersedia adalah S, N, Dan B (String, Angka, dan Biner).

Anda membutuhkan Skema Kunci untuk menentukan kunci utama yang membantu menemukan dan mengatur item dengan cepat. DynamoDB mengharapkan atribut yang Anda tambahkan saat membuat tabel menjadi atribut kunci, jadi Email adalah kunci utama di sini. Anda harus menambahkannya ke KeySchema dan menentukannya Tipe Kunci (HASH).

Nilai KeyType lain yang tersedia adalah JANGKAUAN yang digunakan untuk kunci pengurutan. Kunci pengurutan berguna jika Anda mungkin memiliki data dengan kunci HASH yang sama dalam tabel, dan Anda menginginkannya untuk mengelompokkannya berdasarkan beberapa data tambahan seperti tanggal atau warna, Anda dapat membuat data tambahan tersebut menjadi RANGE kunci.

Parameter penting ketiga dalam kode di atas adalah Throughput yang Disediakan. Di sinilah Anda menentukan jumlah pembacaan dan penulisan yang Anda ingin agar DynamoDb izinkan pada tabel per detik.

Ketika Anda menjalankan kode di atas, Anda akan mendapatkan output seperti ini:

Jika Anda memeriksa dasbor tabel DynamoDB di konsol web, Anda akan melihat tabel tersebut masih disediakan atau berstatus aktif sudah.

Selalu pertimbangkan kebutuhan aplikasi Anda saat menentukan Unit Kapasitas Baca Dan Unit Kapasitas Tulis karena nilai yang tidak sesuai dapat menyebabkan masalah kinerja atau tingginya biaya penagihan pada akun Anda.

Setelah Anda yakin tabel tersebut sudah aktif, Anda dapat melakukan operasi CRUD pada tabel tersebut.

Berikut ini adalah beberapa contoh kode yang menunjukkan cara menulis dan membaca data dari Pelanggan meja.

  1. Tambahkan data ke tabel. Untuk menulis data ke tabel, Anda memerlukan klien putItem metode. Kode di bawah menambahkan pelanggan baru ke Pelanggan tabel di DynamoDB.
    const createCustomer = async (customer) => {
    const params = {
    TableName: "Customer",
    Item: customer
    }

    client.putItem(params, (err, data) => {
    if (err) {
    console.error(err)
    } else {
    console.log(data)
    }
    })
    }

    const customerData = {
    Name: { "S": "Timilehin O." },
    Email: { "S": "[email protected]" },
    Age: { "N": "18"},
    Country: { "S": "Nigeria" }
    }

    createCustomer(customerData)

    Itu param objek berisi Nama Tabel ke tabel mana Anda menulis, dan Barang bidang yang berisi data yang Anda tambahkan dengan tipe spesifiknya. Perhatikan kolom baru yang awalnya tidak ada dalam tabel, beginilah cara kerja DynamoDB secara fleksibel. Anda dapat melihat data dalam database Anda di konsol Anda seperti ini:
  2. Baca data dari tabel. DynamoDB memungkinkan Anda membaca data dengan berbagai cara. SDK memindai fungsi membaca seluruh tabel, sementara dapatkanItem hanya membaca data tertentu. Misalnya, kode di bawah ini mendapatkan semua pelanggan:
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

    const customers = await client.scan(params)
    console.log(customers)
    }

    Sementara kode berikut memberi pengguna nilai email:
    const getCustomerByEmail = async (email) => {
    const params = {
    TableName: "Customer",
    Key: {
    Email: { "S": email } // the type is always required
    }
    }

    const customer = await client.getItem(params)
    console.log(customer)
    }

    getCustomerByEmail("[email protected]")

  3. Perbarui data dalam tabel. Untuk memperbarui data yang ada dalam tabel, gunakan SDK pembaruanItem fungsi. Kode berikut menunjukkan cara memperbarui catatan tertentu:
     const updateCustomerLocation = async (email, age) => {
    const params = {
    TableName: "Customer",
    Key: {
    Email: { "S": email }
    },
    UpdateExpression: "SET Age = :newAge",
    ExpressionAttributeValues: {
    ':newAge': { "N": age }
    },
    ReturnValues: "ALL_NEW"
    }

    const updatedCustomer = await client.updateItem(params)
    console.log(updatedCustomer.Attributes)
     }

    Anda juga dapat memilih untuk membuat fungsi Anda dinamis dengan membuat ekspresi pembaruan dari data pembaruan Anda. Fleksibilitas DynamoDB memungkinkan Anda menangani setiap operasi sesuai kebutuhan Anda.
  4. Hapus data dari tabel. Untuk menghapus catatan dari DynamoDB, Anda memerlukan hapusItem fungsi dan kunci dari catatan tertentu. Berikut cara menerapkannya:
    const deleteCustomer = async (email) => {
    const params = {
    TableName: "Customer",
    Key: {
    Email: { "S": email }
    }
    }

    client.deleteItem(params, (err, data) => {
    if (err) {
    console.error(err)
    } else {
    console.log("Customer deleted successfully")
    }
    })
    }

    deleteCustomer("[email protected]")

Membangun Aplikasi yang Efisien Dengan DynamoDB

Amazon Web Services terus berkembang. Ini menyediakan platform yang dapat diakses yang dapat Anda gunakan untuk memberikan solusi digital yang efisien dan aman. DynamoDB adalah pilihan sempurna jika Anda mencari database untuk dijalankan tanpa mengkhawatirkan infrastruktur atau keamanan.

Anda kini dilengkapi dengan semua yang Anda perlukan untuk memulai DynamoDB di Node.js, dan Anda dapat dengan yakin memilih DynamoDB untuk aplikasi Node.js berikutnya.