Все примеры Crossfilter я нашел использовать плоскую структуру, как это:Требует ли Crossfilter плоской структуры данных?
[
{ name: “Rusty”, type: “human”, legs: 2 },
{ name: “Alex”, type: “human”, legs: 2 },
...
{ name: “Fiona”, type: “plant”, legs: 0 }
]
или
"date","open","high","low","close","volume","oi" 11/01/1985,115.48,116.78,115.48,116.28,900900,0 11/04/1985,116.28,117.07,115.82,116.04,753400,0 11/05/1985,116.04,116.57,115.88,116.44,876800,0
У меня есть сотни мегабайт плоских файлов обрабатываю с получением 1- 2MB JSON объект со структурой примерно как:
{
"meta": {"stuff": "here"},
"data": {
"accountName": {
// rolled up by week
"2013-05-20": {
// any of several "dimensions"
"byDay": {
"2013-05-26": {
"values": {
"thing1": 1,
"thing2": 2,
"etc": 3
}
},
"2013-05-27": {
"values": {
"thing1": 4,
"thing2": 5,
"etc": 6
}
}
// and so on for day
},
"bySource": {
"sourceA": {
"values": {
"thing1": 2,
"thing2": 6,
"etc": 7
}
},
"sourceB": {
"values": {
"thing1": 3,
"thing2": 1,
"etc": 2
}
}
}
}
}
}
}
который я хотел бы, чтобы отобразить в виде таблицы, как:
Group: byDay* || bySource || byWhatever
| thing1 | thing2 | etc
2013-05-26 | 1 | 2 | 2
2013-05-27 | 4 | 5 | 7
или:
Group: byDay || bySource* || byWhatever
| thing1 | thing2 | etc
sourceA | 2 | 6 | 6
sourceB | 3 | 1 | 3
сплющивание этой структуры JSON будет трудно и дают очень большой объекта.
Я хотел бы воспользоваться замечательными функциями Кроссфильтра, но я не уверен, если это возможно.
Возможно ли определить/объяснить мою нынешнюю структуру Crossfilter? Возможно, есть еще один способ, которым я мог бы подойти к этому? Я с готовностью признаю, что я не очень хорошо разбираюсь в измерениях и многих других концепциях Crossfilter.
Я отредактировал свой вопрос, чтобы показать некоторые из видов, которые я хотел бы получить из данных. Я не уверен, как бы сгладить структуру данных. Он включает накопительные/суммарные значения (не сырые). Будет ли приведенный выше пример сгладить что-то вроде https://gist.github.com/jfsiii/5786087? Извините за любые уведомления о спаме. Я понимаю, что текстовое поле комментария имеет другое поведение, чем текстовое поле вопроса. – user2487135
Ваши примеры представляют собой просто табличные формы ваших данных. Можете ли вы привести пример видов запросов (групп или фильтров), которые вы хотите показать Crossfilter? –
Я обновил ответ, чтобы ответить на вопрос о объединении агрегатов. –