views:

19

answers:

0

I've got a large database of call-traffic information (although the question could be answered with any generic data set.)

For instance, a row contains : call endpoint server (endpoint_name) call endpoint status (sip_disconnect_reason) call destination (destination) call completed (duration) [duration >0 is completed] call account group (account_group)

It's pretty easy to run SQL reports against the data, i.e. select count(*), endpoint_name from calls where duration>0 group by endpoint_name select count(*),destination from calls where blah group by destination

I've been calling this filtering or breakdown reports (I get the number of calls per carrier, etc.).

Add another breakdown, and you've got two breakdowns, a la select count(*), endpoint_name, sip_disconnect_reason from calls where duration=0 group by endpoint_name, sip_disconnect_reason

Of course, if you keep adding breakdowns, you end up making super-large reports and slicing your data so thin that you can't extract any trends from it.

So my question is this :

Is there a name for this sort of method of report writing? (I've heard words like squares, slicing and breakdown reports applied to them) --- I'm looking for a Python/Reporting toolkit that I can use to make these easier to generate for my end users.

aside : Are there other ways of representing transactional data that might be useful rather than the above method?

Thanks,