Veritabanlarının ne kadar kolay olabileceğini keşfetmek için bu örnek uygulamayı oluşturun.

Temel Çıkarımlar

  • DynamoDB, AWS tarafından sunulan ve performanstan, dayanıklılıktan veya güvenilirlikten ödün vermeden büyük miktardaki farklı verileri işleyebilen güçlü bir NoSQL veritabanıdır.
  • Node.js'de DynamoDB'yi kullanmaya başlamak için aws-sdk'den client-dynamodb paketini yüklemeniz ve kimlik bilgilerinizi yapılandırmanız gerekir.
  • DynamoDB, istemcinin yöntemlerini ve parametrelerini kullanarak kolayca tablolar oluşturmanıza, veri yazıp okumanıza, kayıtları güncellemenize ve kayıtları silmenize olanak tanır. Verimli uygulama geliştirme için esneklik ve ölçeklenebilirlik sunar.

Modern uygulama geliştirmenin büyük bir kısmı, sağlam programlama dilleri ve güçlü veritabanlarının bir karışımını gerektirir.

Amazon Web Services'in (AWS) sunduğu çözümlerden biri, veri yönetiminizde devrim yaratabilecek bir araç olan DynamoDB'dir. Bunu kullanarak, büyük miktarlardaki çeşitli verileri işlemek için hızlı bir şekilde bir veritabanı hazırlayabilirsiniz.

instagram viewer

DynamoDB Nedir?

AWS, aşağıdakiler gibi farklı veritabanı ihtiyaçlarına yönelik hizmetler sunar: İlişkisel veritabanları için Amazon RDSve DocumentDB için MongoDB gibi belge veritabanları. DynamoDB, verileri anahtar/değer biçiminde depolamaya yönelik bir NoSQL veritabanıdır.

DynamoDB, performanstan, dayanıklılıktan veya güvenilirlikten ödün vermeden dağıtılmış altyapı genelinde büyük miktarda veriyi işleyebilir. Yapılandırılmış veya yapılandırılmamış verileri kolayca depolamanıza ve sorgulamanıza olanak tanıyan esnek bir model sunar.

DynamoDB'yi çeşitli uygulama türleri için veritabanı olarak kullanabilirsiniz. Buna doğrudan AWS web konsolundan ve AWS-CLI aracılığıyla programlı olarak veya AWS-SDK'yı kullanan web uygulamalarından erişebilirsiniz.

Node.js'de DynamoDB'yi Kullanmaya Başlamak

Çok var Node.js'de arka uç API'leri oluşturmaya yönelik araçlar ve bu araçlardan herhangi biriyle çalışırken API'niz için veritabanını seçmekte özgürsünüz. Node.js, AWS DynamoDB gibi veritabanları da dahil olmak üzere harici hizmetler için geniş destek sağlar.

Node uygulamanızdan bir AWS hizmetine erişmek için ihtiyacınız olan tek şey istemcidir aws-sdk Bu hizmet için paket. Örneğin DynamoDB'ye erişmek için yüklemeniz gerekir. istemci-dynamodb altında paket aws-sdk.

Paketi yüklemek için proje dizininizde bu komutu çalıştırın:

npm install @aws-sdk/client-dynamodb

Kurulumdan sonra aws-sdk/istemci-dynamodb Node.js projenizde, DynamoDB tablonuzla etkileşimde bulunmadan önce tablonuzun bölgesini yapılandırmaya eklemeniz gerekir. Bunu DynamoDB istemcisini başlatırken yapacaksınız.

Daha önce bilgisayarınıza AWS-CLI yüklediyseniz ve kullandıysanız, muhtemelen ortamınızda AWS kimlik bilgileriniz zaten ayarlanmıştır ve SDK, değerlerinizi ortamdan otomatik olarak alacaktır.

Ama eğer yapmadıysanız, şu adrese gidebilirsiniz: AWS Kimlik Erişimi Yönetimi (IAM) Konsolunuzda hizmete gidin ve yeni bir kullanıcı oluşturun. Kullanıcıyı oluşturduktan sonra kişisel bilgileriniz olan erişim anahtarı kimliğini ve gizli anahtarını alabilirsiniz.

Platformunuz için aşağıdaki terminal komutlarını çalıştırarak bu kimlik bilgilerini ortamınıza ekleyin:

Unix, Linux veya macOS'ta:

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

Windows'ta (CMD):

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

Windows'ta (PowerShell):

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

Ardından Node.js projenize geri döndüğünüzde yeni bir dosya oluşturun ve onu adlandırın dinamodb.js. Bu dosyada aşağıdaki kodu kullanarak yeni bir AWS DynamoDB istemcisinin örneğini oluşturun:

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

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

const client = new DynamoDB({ region })

Gayet basit! AWS, kodunuzdaki güvenlik kimlik bilgilerinizin hiçbirini açığa çıkarmadığınızdan emin olur. yukarıdaki istemciyi oluşturmaya çalışır, önce ortamınızdan erişim anahtarını ve gizli anahtarı okur.

Yeni oluşturulan müşteri tablo oluşturma, veri okuma ve yazma gibi çeşitli işlemleri gerçekleştirmenizi sağlar.

DynamoDB, tıpkı diğer NoSQL veritabanları gibi şemasız olduğundan, istediğiniz zaman bir tabloya yeni nitelikler (alanlar) ekleyebilirsiniz. Bu nedenle DynamoDB tablosunu oluştururken yalnızca birincil anahtar görevi görecek nitelikleri eklemeniz gerekir.

Yeni bir tablo oluşturan aşağıdaki koda göz atın (Müşteri) DynamoDB'de:

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();

Özellik Tanımları alan, tablonun temel niteliklerini ve türlerini tanımladığınız yerdir. E-posta buradaki özelliğin türü var S bu da alanın beklediği anlamına gelir Sicim onun değeri olarak. Mevcut üç özellik türü şunlardır: S, N, Ve B (Dize, Sayı ve İkili).

ihtiyacın var Anahtar Şema Öğeleri hızlı bir şekilde bulup düzenlemeye yardımcı olan birincil anahtarları tanımlamak için. DynamoDB, tabloyu oluştururken eklediğiniz niteliklerin temel nitelikler olmasını bekler; dolayısıyla E-posta burada birincil anahtardır. Bunu KeySchema'ya eklemeli ve belirtmelisiniz. Anahtar türü (DOĞRAMAK).

Mevcut diğer KeyType değeri: MENZİL sıralama anahtarları için kullanılır. Sıralama anahtarları, bir tabloda aynı HASH anahtarlarına sahip verilere sahip olabileceğiniz ve bunları kullanmak istediğiniz durumlarda kullanışlıdır. bunları tarih veya renk gibi bazı ekstra verilere göre gruplandırmak için ekstra verileri bir RANGE yapabilirsiniz. anahtar.

Yukarıdaki koddaki üçüncü önemli parametre Tedarik Edilen Verim. DynamoDb'nin tabloda saniye başına izin vermesini istediğiniz okuma ve yazma sayısını burada tanımlayabilirsiniz.

Yukarıdaki kodu çalıştırdığınızda şuna benzer bir çıktı almalısınız:

Web konsolunda DynamoDB tabloları kontrol panelinizi kontrol ederseniz, tablonun ya hâlâ temel hazırlık aşamasında olduğunu ya da durumunun şu şekilde olduğunu göreceksiniz: aktif çoktan.

Belirlerken daima uygulama ihtiyaçlarınızı göz önünde bulundurun. Okuma Kapasitesi Birimleri Ve Yazma KapasiteBirimleri çünkü uygunsuz bir değer, hesabınızda performans sorunlarına veya yüksek faturalandırma maliyetlerine yol açabilir.

Tablonun aktif olduğundan emin olduktan sonra üzerinde CRUD işlemlerini gerçekleştirebilirsiniz.

Aşağıda, verileri nasıl yazıp okuyacağınızı gösteren bazı kod örnekleri verilmiştir. Müşteri masa.

  1. Tabloya veri ekleme. Bir tabloya veri yazmak için istemcinin putItem yöntem. Aşağıdaki kod, siteye yeni bir müşteri ekler. Müşteri DynamoDB'deki tablo.
    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)

    parametreler nesne şunları içerir Tablo ismi yazdığınız tablo hangisi ve Öğe Eklediğiniz verileri belirli türleriyle içeren alan. Başlangıçta tabloda bulunmayan yeni alanlara dikkat edin; DynamoDB bu şekilde esnek çalışır. Veritabanınızdaki verileri konsolunuzda şu şekilde görüntüleyebilirsiniz:
  2. Tablodaki verileri okuyun. DynamoDB, verileri çeşitli şekillerde okumanıza olanak tanır. SDK'lar tarama fonksiyon tüm tabloyu okur, ancak getItem yalnızca belirli verileri okur. Örneğin, aşağıdaki kod tüm müşterileri alır:
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

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

    Aşağıdaki kod kullanıcıyı e-posta değerine göre alırken:
    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. Tablodaki verileri güncelleyin. Bir tablodaki mevcut verileri güncellemek için SDK'nın güncellemeÖğesi işlev. Aşağıdaki kod belirli bir kaydın nasıl güncelleştirileceğini gösterir:
     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)
     }

    Güncelleme verilerinizden güncelleme ifadeleri oluşturarak işlevinizi dinamik hale getirmeyi de seçebilirsiniz. DynamoDB'nin esnekliği, her işlemi ihtiyaçlarınıza göre gerçekleştirmenize olanak tanır.
  4. Tablodaki verileri silin. DynamoDB'den bir kaydı silmek için aşağıdakilere ihtiyacınız vardır: öğeyi silmek belirli bir kaydın işlevi ve anahtarı. Bunu nasıl uygulayacağınız aşağıda açıklanmıştır:
    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]")

DynamoDB ile Verimli Uygulamalar Oluşturma

Amazon Web Services gelişmeye devam ediyor. Verimli, güvenli dijital çözümler sunmak için kullanabileceğiniz erişilebilir bir platform sağlar. Altyapı veya güvenlik konusunda endişelenmeden çalıştırabileceğiniz bir veritabanı arıyorsanız DynamoDB mükemmel seçimdir.

Artık Node.js'de DynamoDB'yi kullanmaya başlamak için ihtiyacınız olan her şeyle donatılmışsınız ve bir sonraki Node.js uygulamanız için DynamoDB'yi güvenle seçebilirsiniz.