Какова общая архитектура или подход, если вы храните сотни миллиардов записей базы данных, на общую сумму более 65536 ГБ в пространстве/размере данных? Калькулятор цен AWS RDS ограничивает вас 65536 ГБ, так что реально вы, вероятно, хотите оставаться намного ниже этого предела, скажем, 1 ТБ на «экземпляр» базы данных? Какова общая архитектура для хранения сотен или тысяч терабайт записей реляционной базы данных RDS? (Я даже не включаю расчеты для хранения изображений и других нереляционных данных, как на S3).

То есть, как мне вообще организовать свои модели/таблицы базы данных? Одна только таблица может содержать более 100 ТБ записей (более 65 536 ГБ). Или 100 ТБ могут растянуться на 1000 различных таблиц базы данных для разных типов записей. Это также не включает репликацию данных в разных регионах. Я также не уверен, какое место в этой картине занимает шардинг , я уже давно не занимался масштабированием использования базы данных. Кроме того, это для RDS Postgres, если это имеет значение.

Скажем, приложение написано на Node.js. Должен ли я просто иметь, скажем, 1 «экземпляр» базы данных на 1 ТБ данных и создавать пул подключений к каждому из них? (Для выборки или сохранения данных из/в БД). Если да, то как мне определить схему организации для разделения данных между разными экземплярами базы данных (каждый с максимальным объемом использования 1 ТБ)? Допустим, у меня есть ~ 1111 различных таблиц, из которых 1 таблица использует более 100 ТБ, 10 таблиц используют более 10 ТБ каждая, 100 таблиц используют 1 ТБ каждая и 1000 таблиц используют 10 ГБ каждая. Что бы вы сделали с точки зрения того, как рассматривать эту систему баз данных как единую «сущность» с точки зрения приложения Node.js? То есть приложение просто думает: «Эй, дайте мне список из 200 записей этого типа, объединенных в 5 разных таблиц разных размеров и форм». Каков общий способ сделать это на высоком уровне? (не надо залезать в сорняки).

no answer