Multidimensional Analysis of Financial Data
Our BookSet
and
Transaction
classes can be thought of as
classifying amounts of money by time and by account—a 2D
classification. In fact, many standard financial reports follow a
format of months across the top, and accounts (drawn from some level
of the tree) down the left. Previously, we saw how to extend the
system to add any attributes we wish. This effectively makes it a
multidimensional model. Analyzing multidimensional data is a big
business currently using the buzzword
OLAP (online analytical processing).
Furthermore, a common problem is to ensure the integrity of the
double-entry while querying and selecting subsets of data. There is
almost have a data warehouse in our BookSet
;
however, it’s currently optimized for adding, editing, and
deleting transactions, not for querying.
To query the
BookSet
,
flatten the transactions into a separate list of facts per line.
Taking the sales transaction earlier, you might extract something
like what’s in Table 6.1.
Date |
Account |
Customer |
Project |
Amount |
27-Apr-1999 |
...Income.Consulting |
HugeCo |
P1 |
-15000 |
27-Apr-1999 |
...Income.Consulting |
HugeCo |
P2 |
-10000 |
27-Apr-1999 |
...Creditors |
HugeCo |
(none) |
25000 |
This kind of fact-table structure is as easy to analyze in Python as it is in SQL. However, Python has a big advantage over the database world in that it’s not tied to particular sets of facts, or column headings, beforehand. Transactions ...
Get Python Programming On Win32 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.