Я использую mongo db для хранения данных трафика веб-сервера.На каждом посещении страницы я хочу хранить несколько типов данных, таких как:
- Информация HTTP-запроса
- Информация о клиентской аналитике
- и т. Д.
эти типы данных принимаются от разных конечных точек для разных доменов, а иногда и не для всех.
При каждом поступлении данных я хотел бы хранить необработанные данные, чтобы в итоге я мог запрашивать разные типы данных наконкретный пользователь / домен.
Моя текущая структура БД:
коллекций:
- data_type1
- data_type2 ... (больше коллекций для каждого типа данных)
- доменов (концентрация всех доменов, ссылающихся на связанные типы данных)
- пользователей (концентрация всех пользователей, ссылающихся на связанные типы данных)
документы:
data_type1: {_id: ABCD, данные: raw_data (включая пользователя и домен)}
data_type2: {_id: XYZ, данные: raw_data (включая пользователя и домен)} *
доменов: {домен: xxx.xx, data_type1:[ABCD, (другой связанный)], data_type2: [XYZ, (другой связанный)]}
пользователи: {user: qwerty, data_type1: [(user data_type1 related docs _id)], data_type2: [(user data_type2related docs _id)]}
Я пробовал по-разному, меня беспокоит то, что для каждого пользователя или домена массивы, ссылающиеся на data_types, могут расти бесконечно, особенно при обработке миллионов запросов.
Учитывается ли этот порядокэффективный?Вы можете предложить лучшую структуру?Спасибо!