DynamoDB JSON или стандартный JSON?

#json #amazon-web-services #amazon-dynamodb

Вопрос:

В моем старом проекте есть данные в Standard JSON формате in MySQL .

Для моего совершенно нового проекта в JS ( Node.js ) и DynamoDB о данных в Standard JSON формате:

  • Целесообразно ли преобразовать его в DynamoDB JSON ?
  • Какие преимущества DynamoDB JSON имеет перед Standard JSON другими ?
  • Будет ли проще анализировать данные?
  • Или он больше интегрируется с другими сервисами AWS, такими как AppSync GraphQL ?
  • Или этого достаточно, чтобы обработать его как строку?
  • Есть ли что-то, о чем я не подумал?

Стандартный JSON

 { updated_at: 146548180, uuid: 'foo', status: 'new' }
 

DynamoDB JSON

 {"updated_at":{"N":"146548180"},"uuid":{"S":"foo"},"status":{"S":"new"}}
 

Комментарии:

1. Пакет sdk node aws также предоставляет «клиент документов», я думаю, что он называется, и я уверен, что существуют эквиваленты для других языков, что немного облегчает работу с данными dynamodb. Основываясь на вашем примере, вы скорее получите {"updated_at":146548180,"uuid":"foo","status":"new"} , чем эту раздражающую динамическую структуру.

Ответ №1:

Основное преимущество JSON DynamoDB заключается в том, что вы явно задаете тип данных, что полезно для внутреннего представления, используемого DynamoDB, кроме того, я не вижу ни одного из них. Я также не знаю ни о каком другом сервисе AWS, использующем тот же вкус DynamoDB-JSON.

По моему опыту, DynamoDB-JSON просто более раздражает при работе из-за дополнительных преобразований данных, которые для этого требуются.

Я предпочитаю использовать обычный JSON в сочетании с JSON-схемой для обеспечения соблюдения типов и формата данных.

  • Или этого достаточно, чтобы обработать его как строку?

Это может быть выгодно в некоторых случаях использования, но если вы используете структуры DynamoDB-JSON, вы можете устанавливать дополнительные индексы для полей и даже создавать разрешения на уровне атрибутов, если вам это требуется.