Метаданные страницы в keen.io
У меня есть вопрос о лучших методах добавления метаданных к нашим событиям просмотра страниц keen.io. Внутренне мы используем 3 разных категории ключевых слов, чтобы идентифицировать часть контента, и эти ключевые слова находятся в тегах на каждой странице. Хорошим примером будет что-то вроде этого:
<meta name="namespace:tier1" content="Programming" />
<meta name="namespace:tier2" content="Web Development, Web Operations" />
<meta name="namespace:tier3" content="JavaScript, Analytics, jQuery, HTML, CSS" />
Мы хотим иметь возможность сегментировать наших пользователей на основе этих уровней и выполнять такие запросы:
- Просмотреть весь трафик, сегментированный по ключевым словам уровня 1
- Просмотреть наиболее популярные ключевые слова уровня 2, относящиеся к определенному ключевому слову уровня 1
- ... и так далее.
Вот мой вопрос: кажется, что мы могли бы просто отправить эти метаданные вместе с событием просмотра страницы, но в итоге у нас будет много избыточных данных, которые могут находиться в отдельном месте. Например, если мы ежедневно очищаем ключевые слова для наших страниц, мы можем индексировать их по URL, и не иметь всех этих дублирующих метаданных в keen.io.
Как бы вы подошли к этому? Я застрял в земле SQL, и я не должен беспокоиться о дублирующих данных?
Смежный вопрос заключается в том, что наши ключевые слова в основном являются списками, а документация keen.io гласит, что мы должны держаться подальше от списков. Должен ли я создать Metadata
событие для каждого слова тогда? Похоже, немного излишним, чтобы отправить +10 запросов на каждом просмотре страницы.
1 ответ
Краткий ответ - не беспокойтесь о дублировании. Когда дело доходит до данных о событиях, денормализация - ваш друг. Интерфейс запросов Keen разработан таким образом, чтобы быть наиболее мощным, когда каждое событие содержит множество свойств - фактически состояние мира в то время.
Мишель написала руководство к размышлению о данных о событиях, которые сравнивают их с реляционными данными. Многие из нас (в том числе и я) уже застряли на земле SQL и считают это руководство полезным:)
Что касается списков - это в основном списки объектов, которые вы хотите избежать. В этом случае ваш список является одной из строк, так что вы все равно можете сделать немало запросов к этому свойству.
Для получения дополнительной информации о Keen & списках объектов проверьте этот вопрос SO: Вложенные объекты JSON в Keen IO.