Джош из Keen IO здесь.
В настоящее время нет способа запрашивать свойства объектов, содержащихся в списках, через инструментальные средства или API. Однако есть несколько способов обойти это.
Индексированные свойства
Вы можете скопировать свойства из списка объектов в набор индексированных свойств перед отправкой события. Это приводит к таким свойствам, как pour_1_amount
, pour_2_amount
до pour_n_amount
.
Если вы сделаете это, вы должны добавить свойство number_of_pours
, представляющее размер списка pours
. Когда вы будете готовы к анализу, сначала запросите максимальное number_of_pours
по диапазону событий. Это будет вводом в цикл, который вы будете запускать для анализа каждого проиндексированного свойства.
Допустим, вы хотите найти общее количество всех заливок. Вот как это сделать с помощью Ruby и keen-gem, хотя эта концепция применима в целом.
# within an irb session
require 'keen'
# get the maximum number of pours to check
maximum_pours_length =
Keen.maximum('collection', target_property: 'number_of_pours')
# total pour amount
total_pour_amount = 0
for n in maximum_pours_length
total_pour_amount = total_pour_amount +
Keen.sum('collection', target_property: "pour_#{n}_amount")
end
# print the total
puts total_pour_amount
total_pour_amount
будет содержать сумму всех объемов заливки для каждого элемента списка каждого события.
Предварительно совокупные свойства
Вы можете объединить (или уменьшить) все экземпляры свойства до одного: например. total_pour_amount
, maximum_pour_end_time
и т. д. Это требует, чтобы вы заранее знали, какой анализ вы хотите выполнить, но затем вы можете использовать Keen для всех запросов.
Извлечение с обработкой на стороне клиента
Вы можете выполнить извлечение и выполнить ручную обработку на своей стороне. Чтобы ускорить извлечение, вы можете ограничить его определенными свойствами. Этот вариант сохраняет модель данных самой чистой, но требует больше работы во время запроса, поскольку Keen не будет выполнять агрегацию. Такие проекты, как Miso Dataset, могут облегчить эту работу.
person
Josh Dzielak
schedule
07.07.2014