Нереляционная СУБД (NoSQL)

Что такое нереляционная СУБД?

В предыдущей статье мы узнали о реляционных базах данных и их реляционной модели. Нереляционная база данных, также известная как NoSQL, — это база данных, которая не следует этой модели, а использует структуру ключ-значение.

Как понять, когда следует выбрать нереляционную БД?

Если часть ваших повседневных задач требует манипулирования и анализа сложных и неструктурированных данных всех размеров с большой гибкостью, то NoSQL — ваш лучший выбор.

Каковы некоторые отрасли применения нереляционных СУБД?

  • Веб-сайты, системы электронной коммерции и приложения (думайте о взаимодействии с клиентами)

    • Кредитные карты (история)
    • Торги в режиме реального времени
    • Корзина покупок
    • Социальный
    • Каталог продуктов
    • Предпочтения клиентов
    • Высокий трафик

Теперь, когда у нас есть общее представление о нереляционных базах данных, давайте продолжим углубляться и изучать и создавать нереляционные ресурсы AWS:

  • Amazon DynamoDB

Что такое Amazon DynamoDB?

Amazon DynamoDB — это полностью управляемая служба баз данных NoSQL, которая обеспечивает быструю и предсказуемую производительность с плавной масштабируемостью. DynamoDB позволяет разгрузить вас от административного бремени эксплуатации и масштабирования распределенной базы данных, так что вам не придется беспокоиться о предоставлении оборудования, установке и конфигурации, репликации, обновлении программного обеспечения или масштабировании кластера.

Давайте рассмотрим некоторые важные характеристики Amazon DynamoDB


Performance: 

- More than 10 trillion requests per day
- Database tables can store and retrieve any amount of data and serve any level of request traffic
- Provides on-demand backup capability and enable point-in-time recovery of DynamoDB tables
- 20 million requests per second
- Can restore a table to any point in time during the last 35 days
- Global table replication
- Availability to switch between read/write capacity modes once every 24 hours.
- No need to change any code or applications to use or manage encrypted tables.

Scalability: 

- Automatic data replication over three availability-zones in a single region
- Scale up or down tables throughput capacity with zero downtime or performance degradation


Availability:

 - Maximum size per item is 400KB
 - 2,500 tables per AWS Region
 - Read/write capacity mode: 

 Capacity unit sizes for provisioned tables:

     - One read capacity unit = one strongly consistent read per second, or two eventually consistent reads per second, for items up to 4 KB in size.
     - One write capacity unit = one write per second, for items up to 1 KB in size.
     - Transactional read requests require two read capacity units to perform one read per second for items up to 4 KB.
     - Transactional write requests require two write capacity units to perform one write per second for items up to 1 KB.

 Request unit sizes for on-demand tables:

     - One read request unit = one strongly consistent read, or two eventually consistent reads, for items up to 4 KB in size.
     - One write request unit = one write, for items up to 1 KB in size.
     - Transactional read requests require two read request units to perform one read for items up to 4 KB.
     - Transactional write requests require two write request units to perform one write for items up to 1 KB. 

- Throughput capacity: 

  - On-Demand:
    - Per table
      1. 40,000 read request units and 40,000 write request units

    - Per account
      1. Not applicable

    - Minimum throughput for any table or global secondary index
      1. Not applicable

  - Provisioned:
    - Per table
      1. 40,000 read request units and 40,000 write request units

    - Per account
      1. 80,000 read capacity units and 80,000 write capacity units

    - Minimum throughput for any table or global secondary index
      1. read capacity unit and 1 write capacity unit


Security: 

  - DynamoDB encryption at rest provides enhanced security by encrypting all your data at rest using encryption keys stored in AWS Key Management Service (AWS KMS)
  - AWS owned key – Default encryption type. The key is owned by DynamoDB (no additional charge).
  - AWS managed key – The key is stored in your account and is managed by AWS KMS (AWS KMS charges apply).
  - Customer managed key – The key is stored in your account and is created, owned, and managed by you. You have full control over the KMS key (AWS KMS charges apply).
  - Can switch between the AWS owned key, AWS managed key, and customer managed key at any given time.
  - IAM administrators control who can be authenticated (signed in) and authorized (have permissions) to use Amazon DynamoDB resources.
Вход в полноэкранный режим Выход из полноэкранного режима

Обратите внимание, что некоторые из этих ограничений настраиваются, а другие — нет.

Как вы можете видеть из этих характеристик, DynamoDB является идеальным инструментом для разработчиков 👩💻.

О, точно, пора строить 👷 давайте создадим эту базу данных с помощью Terraform.

Найти репо Terraform и инструкции для этого проекта можно здесь

Код Terraform предыдущий:

resource "aws_dynamodb_table" "dynamodb-table" {
  name           = "GameScores"
  billing_mode   = "PROVISIONED"
  read_capacity  = 20
  write_capacity = 20
  hash_key       = "UserId"
  range_key      = "GameTitle"

  attribute {
    name = "UserId"
    type = "S"
  }

  attribute {
    name = "GameTitle"
    type = "S"
  }

  attribute {
    name = "TopScore"
    type = "N"
  }

  ttl {
    attribute_name = "TimeToExist"
    enabled        = false
  }

  global_secondary_index {
    name               = "GameTitleIndex"
    hash_key           = "GameTitle"
    range_key          = "TopScore"
    write_capacity     = 10
    read_capacity      = 10
    projection_type    = "INCLUDE"
    non_key_attributes = ["UserId"]
  }

}
Вход в полноэкранный режим Выход из полноэкранного режима

Диаграмма

Ссылки:

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/identity-and-access-mgmt.html

Войти в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий