Я обнаружил, что у меня есть проект (очень расслабленный, практически без последствий для неудачи), который, я думаю, требует какой-то базы данных. Проблема в том, что, хотя я все еще довольно неопытен в целом, я никогда не касался какой-либо базы данных, кроме учебников, которые я мог бы найти в Google и настроить ваше среднее домашнее облако. Я застрял на том, что не знаю, чего не знаю.
Это о ситуации:
Несколько сотен различных автоматизированных тестовых систем будут часто записывать небольшие объемы данных по медленной сети в базу данных. Немногие пользователи будут редко получать большие подмножества этих данных из базы данных по медленной сети. Затем данные будут обработаны, что потребует большого количества операций чтения, и в этот момент требуется очень высокая производительность.
Это будут данные (по порядку величин):
- 1000 продуктов, содержащих
- 10 вариантов, содержащих
- 100 партий, содержащих
- 100 объектов, содержащих
- 10 тест-систем, содержащих
- 100 тестовых шагов, содержащих
- 10 записей
Это в основном маркированное B-дерево с этапами тестирования в качестве покидающих узлов (поскольку их формат был стандартизирован).
Партия всегда будет принадлежать одному варианту, объект всегда будет принадлежать одному и тому же варианту (но, возможно, нескольким партиям), и вариант всегда будет принадлежать одному продукту. Существуют сотни тысяч различных этапов тестирования.
Возможные запросы будут пытаться получить (например,):
- Все из пакета (необязательно: и значение записи в диапазоне)
- Все из варианта
- Все тестовые шаги типа X и Y из тестовой системы с именем Z
Насколько я могу судить, строки шириной в сотни тысяч столбцов (содержащие все, что описано выше) не кажутся хорошей идеей, равно как и триллион строк (и средняя точка между этими двумя до сих пор кажется весьма экстремальной) .
Я бы действительно хотел использовать иерархическую природу данных, но все, что я нашел, например, что-то вроде вложенных баз данных в том, что они просто не вещь.
Было бы хорошо, если бы вы могли помочь мне с:
- Что искать
- Что было бы хорошим подходом для структурирования и хранения этих данных
- Где-то, где я могу узнать о том, как избежать ужасов SQL, даже если я нашел много
- Если есть отличный способ / наилучшая практика, о которой я должен знать, о передаче запрашиваемых данных и локальном их кэшировании для обработки
Спасибо и хорошего дня
Andreas