AMAZON — DynamoDB ?

Ecehan Yıldırım
5 min readOct 6, 2020

--

Merhabalar, öğrenirken not aldığım veya paylaşmaya değer gördüğüm her bilgiyi yazıya aktarmaya çalışıyorum ve burada da zaman zaman paylaşıyorum. Amazon’un DynamoDB servisi üzerine çalışırken de yine aldığım notları ve diğer veri tabanı servisleri ile kıyaslamasını benim gibi yeni başlayan arkadaşlara ve meraklısına kolaylık olması açısından sadece 101 seviyesinde tutacağım bir yazı ile eklemek istedim.🦾

BAŞLIYORUZ!👽

DynamoDB, Amazon Web Servislerinin sağladığı bir NoSQL veritabanıdır.

NoSQL; ilişkisel veri tabanlarına alternatif, ilişkisel olmayan, esnek yapılı, büyük verili ve çok sayıda aktif kullanıcılı sistemlerde yüksek performans ve yönetim kolaylığı sunan veri tabanı çözümüdür.

🤔Neden NoSQL veri tabanı kullanmalısınız? 🤔

NoSQL veri tabanları, harika kullanıcı deneyimleri sunulması amacıyla esnek, ölçeklenebilir, yüksek performanslı ve yüksek oranda işlevsel veri tabanları gerektiren mobil, web ve oyun gibi birçok modern uygulama için idealdir.

  • Esneklik: NoSQL genellikle daha hızlı ve daha fazla yinelemeli yazılım geliştirmeyi mümkün kılan esnek şemalar sağlar. Esnek veri modeli sayesinde NoSQL veri tabanları yarı yapılandırılmış ve yapılandırılmamış veriler için idealdir.
  • Ölçeklenebilirlik: NoSQL veri tabanları genellikle pahalı ve kalıcı sunucular eklenerek ölçeği artırılabilecek şekilde değil, dağıtılmış donanım kümeleri kullanılarak ölçeği genişletilebilecek şekilde tasarlanır. Bazı bulut sağlayıcıları bu işlemleri arka planda, tam olarak yönetilen bir hizmet olarak gerçekleştirir.
  • Yüksek performans: NoSQL veri tabanları, benzer işlevlerin ilişkisel veri tabanlarıyla gerçekleştirilmesi ile karşılaştırıldığında daha yüksek performansı mümkün kılan belirli veri modelleri ve erişim desenleri için optimize edilmiştir.
  • Yüksek oranda işlevsel: NoSQL veri tabanları, her biri ilgili veri modeli için özel olarak tasarlanmış yüksek oranda işlevsel API’ler ve veri türleri sağlar.

🤔Nasıl Kullanılır Bu DynamoDB?🤔

https://data-flair.training/blogs/amazon-dynamodb/

AWS Management Console Kullanarak;

  • AWS Management Console’da oturum açın ve https://console.aws.amazon.com/dynamodb/ adresinden DynamoDB konsolunu açın.
  • Konsolun sol tarafındaki gezinme bölmesinde Gösterge Tablosu’nu seçin .
  • Konsolun sağ tarafında Tablo Oluştur’u seçin .
  • Tablo ayrıntılarını aşağıdaki gibi girin:
  1. Tablo adı için girin Kitap
  2. Bölüm anahtarı için girin Yazar
  3. Sıralama anahtarı ekle’yi seçin.
  4. -KitapIsmi sıralama anahtarı olarak girin.
  • Tabloyu oluşturmak için Oluştur’u seçin.

AWS CLI 🤟

🧠-Aşağıdaki AWS CLI örneği, create-teable kullanarak yeni bir Kitap tablosu oluşturalım.

aws dynamodb create-table \
— table-name Kitap\
— attribute-definitions \
AttributeName=Yazar,AttributeType=S \
AttributeName=KitapIsmi,AttributeType=S \
— key-schema \
AttributeName=Yazar,KeyType=HASH \
AttributeName=KitapIsmi,KeyType=RANGE \
— provisioned-throughput \
ReadCapacityUnits=10,WriteCapacityUnits=5

🧠create-table kulanılması aşağıdaki örnek sonucunu döndürür.

👩‍💻

{
“TableDescription”: {
“TableArn”: “arn:aws:dynamodb:us-west-2:522194210714:table/Kitap”,
“AttributeDefinitions”:
{
“AttributeName”: “Yazar”,
“AttributeType”: “S”
},
{
“AttributeName”: “KitapIsni”,
“AttributeType”: “S”
}
],
“ProvisionedThroughput”: {
“NumberOfDecreasesToday”: 0,
“WriteCapacityUnits”: 5,
“ReadCapacityUnits”: 10
},
“TableSizeBytes”: 0,
“TableName”: “Kitap”,
“TableStatus”: “CREATING”,
“TableId”: “d04c7240–0e46–435d-b231-d54091fe1017”,
“KeySchema”: [
{
“KeyType”: “HASH”,
“AttributeName”: “Yazar”
},
{
“KeyType”: “RANGE”,
“AttributeName”: “KitapIsmi”
}
],
“ItemCount”: 0,
“CreationDateTime”: 1558028402.69
}
}

👩‍💻

🧠DynamoDB’nin Kitap tablosunu oluşturmayı bitirdiğini doğrulamak için describe-table komutunu kullanın.

👩‍💻

aws dynamodb describe-table — table-name Kitap| grep TableStatus

👩‍💻

🧠TableStatus komutu aşağıdaki sonucu döndürür. DynamoDB tabloyu oluşturmayı bitirdiğinde, alanın değeri ACTIVE olarak ayarlanır .

👩‍💻

“TableStatus”: “ACTIVE”

👩‍💻

AWS CLI’yı Kullanarak Bir Tabloya Veri Yazma

🧠Aşağıdaki AWS CLI örneğinde put-item kullanarak Kitap tablosunda iki yeni öğe oluşturalım

👩‍💻

aws dynamodb put-item \
— table-name Kitap\
— item \
‘{“Yazar”: {“S”: “Mustafa Kemal Ataturk”}, “KitapIsmi”: {“S”: “Nutuk”}, “Yayinevi”: {“S”: “Yapı Kredi Yayınları”}}’

aws dynamodb put-item \
— table-name Kitap\
— item \
‘{“Yazar”: {“S”: “Canan Tan”}, “KitapIsmi”: {“S”: “Eroinle Dans”}, “Yayinevi”: {“S”: “BKM”}}’

👩‍💻

Bir Tablodaki Verileri Okuyun

🧠Aşağıdaki AWS CLI örneği, get-item kullanarak Kitap tablosundaki bir öğeyi okuyalım

👩‍💻

aws dynamodb get-item — consistent-read \
— table-name Kitap\
— key ‘{ “Yazar”: {“S”: “Canan Tan”}, “KitapIsmi”: {“S”: “Eroinle Dans”}}’

👩‍💻

🧠get-item kullanılması aşağıdaki örnek sonucunu döndürür.

👩‍💻

{
“Item”: {
“Yayinevi”: {
“S”: “BKM
},
“KitapIsmi”: {
“S”: “Eroinle Dans”
},
“Yazar”: {
“S”: “Canan Tan”
}
}
}

👩‍💻

Adım 4: Tablodaki Verileri Güncelleme

🧠Aşağıdaki AWS CLI örneği, update-item kullanarak Kitap tablosundaki bir öğeyi güncelleyelim

👩‍💻

aws dynamodb update-item \
— table-name Kitap\
— key ‘{ “Yazar”: {“S”: “Canan Tan”}, “KitapIsmi”: {“S”: “Eroinle Dans”}}’ \
— update-expression “SET KitapIsmi = :
newval” \
— expression-attribute-values ‘{“:newval”:{“S”:”Piraye”}}’\
— return-values ALL_NEW

👩‍💻

🧠update-item kullanılması aşağıdaki örnek sonucunu döndürür.

👩‍💻

{
“Attributes”: {
“KitapIsmi”: {
“S”: “Piraye”
},
“Yayinevi”: {
“S”: “BKM”
},
“Yazar”: {
“S”: “Canan Tan”
}
}
}

👩‍💻

Bir Tablodaki Verileri Sorgulama

🧠Aşağıdaki AWS CLI örneğinde query kullanarak Kitap tablosundaki öğeyi sorgulayalım

👩‍💻

aws dynamodb query \
— table-name Kitap\
— key-condition-expression “Yazar = :name” \
— expression-attribute-values ‘{“:name”:{“S”:”Canan Tan”}}’

👩‍💻

🧠query kullanılması aşağıdaki örnek sonucunu döndürür.

👩‍💻

{
“Count”: 1,
“Items”: [
{
“Yayinevi”: {
“S”: “BKM”
},
“KitapIsmi”: {
“S”: “Piraye”
},
“Yazar”: {
“S”: “Canan Tan”
}
}
],
“ScannedCount”: 1,
“ConsumedCapacity”: null
}

👩‍💻

Tablo Silme

🧠Aşağıdaki AWS CLI örneğinde delete-table kullanılarak Kitap tablosuu silelim.

👩‍💻

aws dynamodb delete-table — table-name Kitap

👩‍💻

AWS SDK’larıyla çalışmaları, programlamaları Sql to NoSql desteği ve birçok veri hizmeti ile DynamoDB’nin indirilebilir sürümüne veya DynamoDB web hizmetiyle çalışabilirsiniz. Maaliyeti açısından DynamoDB kullanır mısınız bilmiyorum fakat ben ücretsiz şekilde öğrenebileceğiniz kısmı ve NoSQL yapısını kısaca anlatmış oldum. Gelecek yazılarda görüşmek üzere!👣

Beni Linkedin ve Twitter hesaplarımdan da takip edebilirsiniz!🐞

Kaynaklar

1.https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html

2.http://www.bahadirakin.com/aws-dynamodb-nedir/

3.https://medium.com/@halisak_/nosql-veritabanlar%C4%B1-3cf5b01347ad

4.https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SQLtoNoSQL.WhyDynamoDB.html

5.https://aws.amazon.com/tr/nosql/

--

--

No responses yet