Какая база данных лучше для реализации API отслеживания? SQL против NoSQL

Мне нужно реализовать решение, позволяющее обмениваться информацией в целях приема через документы JSON. Идея состоит в том, чтобы реализовать REST API, который содержит следующие операции:

  • Встроенные операции для обеих сторон интеграции (настольные / облачные приложения в одной стороне и сторонние приложения в другой).
  • Загрузка файла / Операции загрузки файла
  • Отслеживание операций (получить и положить)
  • Операции с файловыми запросами (получить доступные файлы для каждой стороны интеграции)

Основное сомнение, которое у меня есть, состоит в том, какая архитектура базы данных (SQL или NoSQL) подходит лучше в этом сценарии, учитывая следующее:

  • Для поддержки требований требуется всего 8-10 таблиц (таблица основных файлов, таблица учетных записей сторонних производителей, таблица приложений сторонних производителей, учетные записи рабочих столов / облачных сред, таблица приложений настольных и облачных приложений, история отслеживания файлов, таблица аудита и разрешения для файлов).
  • Потенциально можно обменять миллионы файлов (у моей компании тысячи клиентов по всему миру)
  • Файлы не сохраняются вечно, после завершения интеграции (кто-то загружает файл и помечает его как загруженный), файлы остаются в хранилище в течение недели, а затем удаляются.
  • Использование SAAS является обязательным (мы не хотим размещать наши собственные серверы)

Основная причина, по которой мне приходится думать при использовании базы данных No-SQL, заключается в том, что она масштабируется лучше, чем база данных SQL, и она дешевле (в базах данных SAAS SQL масштабируется только вертикально).

Однако работа с базой данных NoSQL более сложна и имеет некоторые недостатки (плохой дизайн разделов может быть очень дорогим, если приложение растет очень быстро, допускаются только объединения внутри одной таблицы / коллекции / раздела, транзакции ACID поддерживаются странными способами).

0 ответов

Другие вопросы по тегам