19/02/2022

AWS DynamoDB

  • AWS Taradfından geliştirilmiş bir db dir.
  • DB ler yerine tablolar oluşturulur.
  • NoSQL key-value type DB
  • Performans parametrelerine bağlı olarak yatay olarak downtime olmadan genişleyebilir.
  • Bir region içinde farklı AZ lere genişleyeilir.
  • DynamoDB içinde
    • Tablolar
    • Itemlar
    • Attributelar mevcuttur.

Table oluştururken

Diğer ayarlar autoscaling, encryption ……. bunlar ücreti de ektileyen ayarlar detaylara bakmakta fayda var.

Table oluşturulduktan sonra itemları ekleyebiliriz.

Actions tan yeni bir item ekleyebilir yeni bir attribute ekleyebiliriz. Mevcut item i edit edip JSON formati ile de inceleyebiliriz.

DynamoDB yi CLI ile de kullanabiliriz.

PS C:\Users\can\Downloads> aws dynamodb scan --table-name cans_training1
{
    "Items": [
        {
            "surname": {
                "S": "Can"
            },
            "name": {
                "S": "Can"
            }
        }
    ],
    "Count": 1,
    "ScannedCount": 1,
    "ConsumedCapacity": null
}

Eğer DB ye doğrudan bir dosya ile yazmak istersek cli üzerinden buda mümkündür.

Bunun için dosyanın specifik bir formatı olmalıdır.

cans_training1.json

{
  "cans_training1": [
    {
      "PutRequest": {
        "Item": {
          "name": {
            "S": "Cem"
          },
          "surname": {
            "S": "Cem"
          }
        }
      }
    }
  ]
}
PS C:\Users\can\Downloads\AWS training> aws dynamodb batch-write-item --request-items file://cans_training1.json
{
    "UnprocessedItems": {}
}

QUERY

Name attribute değeri “Can” olan item i görmek istediğimizde

PS C:\Users\can\Downloads\AWS training> aws dynamodb query --table-name cans_training1 --key-conditions '{\"name\": { \"ComparisonOperator\": \"EQ\", \"AttributeValueList\": [ { \"S\": \"Can\"} ] } }'
{
    "Items": [
        {
            "surname": {
                "S": "Can"
            },
            "name": {
                "S": "Can"
            }
        }
    ],
    "Count": 1,
    "ScannedCount": 1,
    "ConsumedCapacity": null
}

Windows PS içinde ” karakterini escape \ etmek gerekiyor !!!!!!!

Leave a Reply