About the Authors |
|
xvii | |
About the Technical Reviewer |
|
xix | |
Acknowledgments |
|
xxi | |
Introduction |
|
xxiii | |
|
Chapter 1 Business Intelligence for Everybody |
|
|
1 | (28) |
|
What Is Business Intelligence? |
|
|
2 | (3) |
|
|
3 | (2) |
|
|
5 | (3) |
|
Hidden Relevant Information |
|
|
5 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
Company Analytics Life Cycle and Continuous Improvement |
|
|
7 | (1) |
|
|
8 | (3) |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
Who Can Get Benefit from BI? |
|
|
11 | (1) |
|
|
11 | (2) |
|
|
12 | (1) |
|
|
12 | (1) |
|
|
13 | (1) |
|
|
13 | (1) |
|
|
13 | (1) |
|
|
13 | (1) |
|
|
14 | (7) |
|
|
14 | (1) |
|
|
15 | (1) |
|
|
16 | (3) |
|
|
19 | (1) |
|
|
20 | (1) |
|
|
21 | (3) |
|
|
21 | (1) |
|
|
22 | (1) |
|
|
22 | (1) |
|
|
22 | (1) |
|
|
22 | (1) |
|
|
23 | (1) |
|
|
23 | (1) |
|
|
24 | (1) |
|
|
24 | (4) |
|
|
24 | (1) |
|
|
25 | (1) |
|
|
25 | (1) |
|
|
26 | (1) |
|
|
26 | (1) |
|
|
26 | (1) |
|
|
27 | (1) |
|
|
27 | (1) |
|
|
28 | (1) |
|
|
28 | (1) |
|
|
28 | (1) |
|
Chapter 2 Agile Methodologies for BI Projects |
|
|
29 | (28) |
|
Introduction to Agile Methodologies |
|
|
30 | (1) |
|
|
31 | (15) |
|
Our Recommended Mix between Scrum and Kanban |
|
|
31 | (1) |
|
Developing Projects with Scrum |
|
|
32 | (11) |
|
|
43 | (2) |
|
Mix of Both Methodologies, Scrumban |
|
|
45 | (1) |
|
Peculiarities of Scrum for BI |
|
|
46 | (6) |
|
Sprint 0 - Longer Initial Analysis |
|
|
46 | (2) |
|
|
48 | (1) |
|
Front-End vs. Back-End Activities |
|
|
49 | (1) |
|
Role Isolation - Specific Knowledge |
|
|
50 | (1) |
|
Developer Story Types in BI |
|
|
51 | (1) |
|
|
52 | (4) |
|
|
53 | (1) |
|
|
54 | (2) |
|
|
56 | (1) |
|
|
57 | (36) |
|
|
57 | (1) |
|
|
58 | (2) |
|
Databases and Database Vendors |
|
|
60 | (32) |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
63 | (1) |
|
Retrieving Data from a Table |
|
|
63 | (4) |
|
|
67 | (2) |
|
|
69 | (2) |
|
|
71 | (3) |
|
|
74 | (3) |
|
|
77 | (8) |
|
|
85 | (4) |
|
|
89 | (2) |
|
|
91 | (1) |
|
|
92 | (1) |
|
Chapter 4 Project Initialization -- Database and Source ERP Installation |
|
|
93 | (24) |
|
|
93 | (1) |
|
Setting the System Up with Odoo ERP |
|
|
93 | (18) |
|
|
94 | (1) |
|
Downloading and Installing Odoo |
|
|
95 | (1) |
|
Bitnami and Odoo Configuration Files |
|
|
96 | (1) |
|
Installing psql and Checking the Database Connection |
|
|
97 | (1) |
|
Accessing the Application |
|
|
98 | (1) |
|
Configuring and Installing Modules |
|
|
99 | (2) |
|
Selecting our Datawarehouse Database |
|
|
101 | (1) |
|
Sourcing and Installing MariaDB |
|
|
102 | (5) |
|
Creating Our First Database |
|
|
107 | (4) |
|
Analyzing the Data Source |
|
|
111 | (1) |
|
|
111 | (2) |
|
Setting up a PostgreSQL Connection to the Server |
|
|
113 | (3) |
|
|
116 | (1) |
|
Chapter 5 Data Modeling for BI Solutions |
|
|
117 | (30) |
|
Naming Convention and Nomenclature |
|
|
117 | (2) |
|
|
119 | (5) |
|
|
119 | (1) |
|
|
120 | (1) |
|
|
121 | (1) |
|
|
122 | (2) |
|
|
124 | (4) |
|
|
125 | (2) |
|
|
127 | (1) |
|
|
127 | (1) |
|
|
127 | (1) |
|
|
127 | (1) |
|
|
128 | (1) |
|
|
128 | (1) |
|
Exploring Data Modeling Possibilities |
|
|
128 | (9) |
|
|
129 | (1) |
|
|
130 | (1) |
|
Fact Normalization and Denormalization |
|
|
131 | (1) |
|
|
132 | (1) |
|
|
133 | (1) |
|
|
133 | (1) |
|
|
134 | (1) |
|
Multiple Views Using a Table, Entity Isolation |
|
|
134 | (1) |
|
Modifying Existing Structures, Adding More Sales Document Status |
|
|
135 | (1) |
|
|
135 | (2) |
|
|
137 | (1) |
|
|
137 | (7) |
|
|
137 | (5) |
|
|
142 | (2) |
|
|
144 | (2) |
|
|
144 | (1) |
|
|
145 | (1) |
|
|
145 | (1) |
|
|
146 | (1) |
|
|
147 | (38) |
|
Why Do We Need an ETL Process? |
|
|
147 | (1) |
|
|
147 | (1) |
|
|
148 | (1) |
|
Downloading and Installing Pentaho Data Integration |
|
|
148 | (2) |
|
Understanding ETL Concepts |
|
|
150 | (33) |
|
Repositories and Connections |
|
|
150 | (4) |
|
Transformations, the Core of Kettle |
|
|
154 | (1) |
|
Jobs or How to Organize a Set of Transformations in a Workflow |
|
|
155 | (1) |
|
Create and Share a Connection |
|
|
156 | (1) |
|
|
157 | (1) |
|
The Product, Product Category, and Product Parent Category Tables |
|
|
157 | (2) |
|
The Customer and Customer Country Tables |
|
|
159 | (1) |
|
The Employee and Employee Category and Employee Department Tables |
|
|
160 | (1) |
|
The Fact Table: How to Create the Transformation for the Sales |
|
|
160 | (2) |
|
Creating the Time Dimension |
|
|
162 | (14) |
|
|
176 | (6) |
|
|
182 | (1) |
|
Open Source Alternatives to PDI |
|
|
182 | (1) |
|
|
183 | (2) |
|
Chapter 7 Performance Improvements |
|
|
185 | (22) |
|
|
185 | (16) |
|
Avoid Using Dates for Join Keys (and Primary Keys Too) |
|
|
185 | (1) |
|
Analyze the Tables in Your Database |
|
|
186 | (1) |
|
Indexing, or How to Speed Up Queries |
|
|
187 | (4) |
|
|
191 | (6) |
|
Using the EXPLAIN Sentence |
|
|
197 | (2) |
|
Views and Materialized Views |
|
|
199 | (1) |
|
|
200 | (1) |
|
|
201 | (1) |
|
Disabling Triggers and Constraints |
|
|
201 | (1) |
|
|
201 | (4) |
|
Offloading Operations to the Database |
|
|
201 | (1) |
|
|
201 | (1) |
|
Performance Tips with PDI |
|
|
202 | (3) |
|
|
205 | (2) |
|
Chapter 8 The BI Reporting Interface |
|
|
207 | (28) |
|
How to Choose the BI Tool |
|
|
207 | (1) |
|
Best Practices in Dashboarding |
|
|
208 | (8) |
|
|
209 | (1) |
|
Joining Related Information |
|
|
209 | (1) |
|
|
210 | (1) |
|
Formatting Recommendations |
|
|
210 | (2) |
|
|
212 | (4) |
|
|
216 | (17) |
|
|
216 | (7) |
|
|
223 | (5) |
|
|
228 | (5) |
|
|
233 | (2) |
|
Chapter 9 MOLAP Tools for Budgeting |
|
|
235 | (20) |
|
Multidimensional Databases |
|
|
236 | (5) |
|
Dimensions or Axes for Analysis |
|
|
237 | (2) |
|
|
239 | (2) |
|
Sharing Properties across Cubes |
|
|
241 | (1) |
|
|
241 | (1) |
|
|
242 | (2) |
|
|
243 | (1) |
|
|
243 | (1) |
|
|
244 | (1) |
|
|
244 | (1) |
|
|
245 | (7) |
|
|
245 | (2) |
|
Creating Dimensions in PowerOLAP |
|
|
247 | (1) |
|
|
248 | (1) |
|
|
249 | (1) |
|
|
250 | (1) |
|
|
251 | (1) |
|
|
251 | (1) |
|
|
252 | (3) |
|
Chapter 10 BI Process Scheduling: How to Orchestrate and Update Running Processes |
|
|
255 | (18) |
|
|
255 | (6) |
|
|
255 | (6) |
|
Overview at PDI Command-Line Tools |
|
|
261 | (3) |
|
Launching Transformations from the Command Line with Pan |
|
|
261 | (2) |
|
Launching Jobs from the Command Line with Kitchen |
|
|
263 | (1) |
|
Scheduling Jobs in the Task Scheduler |
|
|
264 | (3) |
|
Scheduling a PDI Job in Windows |
|
|
264 | (1) |
|
Scheduling a PDI Job in Unix/Linux |
|
|
265 | (2) |
|
Running Database Maintenance Tasks |
|
|
267 | (4) |
|
Backing Up Our MySQL/Maria DB Database |
|
|
267 | (1) |
|
Perform Checks and Optimizations in the Database |
|
|
268 | (3) |
|
|
271 | (2) |
|
Chapter 11 Moving to a Production Environment |
|
|
273 | (22) |
|
Multienvironment Scenario |
|
|
273 | (8) |
|
Deploying a Productive Environment |
|
|
274 | (4) |
|
|
278 | (1) |
|
Isolation of Environments |
|
|
279 | (1) |
|
Multienvironment Recommendations |
|
|
279 | (2) |
|
Maintaining Your Environment |
|
|
281 | (8) |
|
|
281 | (3) |
|
|
284 | (1) |
|
|
285 | (1) |
|
Using Testing as Disaster Recovery of Production |
|
|
286 | (1) |
|
|
287 | (1) |
|
|
288 | (1) |
|
|
289 | (3) |
|
Security Management, Using Roles and Groups |
|
|
290 | (1) |
|
|
291 | (1) |
|
|
291 | (1) |
|
|
292 | (2) |
|
|
292 | (1) |
|
|
293 | (1) |
|
|
294 | (1) |
|
Chapter 12 Moving BI Processes to the Cloud |
|
|
295 | (20) |
|
Deciding our Cloud Provider |
|
|
295 | (4) |
|
|
295 | (3) |
|
A First Look at the Physical Design |
|
|
298 | (1) |
|
Choosing the Right Cloud Provider |
|
|
299 | (15) |
|
Amazon Web Services (AWS) |
|
|
299 | (12) |
|
|
311 | (2) |
|
|
313 | (1) |
|
Vendor-Based Cloud Solutions |
|
|
314 | (1) |
|
|
314 | (1) |
|
Chapter 13 Conclusions and Next Steps |
|
|
315 | (4) |
|
|
315 | (1) |
|
|
316 | (1) |
|
|
317 | (2) |
Index |
|
319 | |