Commit Graph

53 Commits (835e30ca978e66a323cac1e93b92b785b1c56eac)

Author SHA1 Message Date
Abhinav Sarkar ade5c388d8 Adds a smart constructor for Env for better type safety.
- Env is now created through a smart constructor which does
  validations.
2016-02-05 16:17:57 +05:30
Abhinav Sarkar 0f4970d587 Changes FactColumn to use GADTs for better type safety. 2016-02-03 17:15:59 +05:30
Abhinav Sarkar 04be3b69f1 Adds more doctests.
- Found and fixed a bug regarding column names of FKs to existing dimension tables
  (from DimId fact columns).
2016-01-26 01:34:09 +05:30
Abhinav Sarkar 68bf32a673 Adds doctests for factTablePopulateSQL and validate* functions. 2016-01-25 22:27:38 +05:30
Abhinav Sarkar 46e5e43856 Changes fact populatation generator to use hssqlppp internally. 2016-01-25 22:13:47 +05:30
Abhinav Sarkar d33dcbe33c Merge branch 'master' into hssqlppp 2016-01-19 01:07:25 +05:30
Abhinav Sarkar 3b7603b311 Fixes dim time population select clause.
- Dim time fact column population had a bug where the time id was being rounded
  instead of being floored. This fixes it.
2016-01-19 01:05:20 +05:30
Abhinav Sarkar 6d86392946 Merge branch 'master' into hssqlppp 2016-01-15 14:43:11 +05:30
Abhinav Sarkar aede5d6fc6 Fixes the dim time where clause interval queries.
- Changes the interval queries on dim time columns from <= ? and > ? to < ? and >= ?.
  This is more convinient for specifying where clause datetime values.
2016-01-14 16:18:53 +05:30
Abhinav Sarkar 5b35b03a1a Adds an option to choose if fact tables are persistent. 2016-01-07 03:01:50 +05:30
Abhinav Sarkar 4a7682320b Adds max and min fact column types. 2016-01-07 02:41:32 +05:30
Abhinav Sarkar 089ce59f20 Changes in dimension table column indexes generation.
- Indexes for dimension table columns are generated only if there
  are more than one non-PK columns.
2016-01-07 02:39:46 +05:30
Abhinav Sarkar 6ce2d56252 Adds support for tenant id fact column for multi-tenant databse designs. 2016-01-07 02:38:41 +05:30
Abhinav Sarkar 0d5e1ff29f Adds indexes on dimension table columns in SQL. 2016-01-06 19:00:27 +05:30
Abhinav Sarkar 6a107aaf8d Changes dimension populatation generator to use hssqlppp internally. 2016-01-04 01:32:36 +05:30
Abhinav Sarkar 4fe1006d0c Makes tests run only on ghc 7.10.
- doctest is unable to resolve cabal macros on ghc 7.8 so disabling
  tests on ghc 7.8.
2016-01-02 02:59:24 +05:30
Abhinav Sarkar c021ffb845 Adds doctests. 2016-01-01 20:57:54 +05:30
Abhinav Sarkar 28ff8a99fb Changes Create generator to use hssqlppp internally. 2016-01-01 17:15:22 +05:30
Abhinav Sarkar 4e4d13b94f Adds support for generated table suffixes and time where clause on source table in full refresh mode. 2015-12-30 19:57:38 +05:30
Abhinav Sarkar 644acc7ee9 Moves out foreign key id coalesce value as a setting. 2015-12-30 12:34:35 +05:30
Abhinav Sarkar dc4b260ff6 Refactoring. 2015-12-30 12:21:41 +05:30
Abhinav Sarkar 601eed9a3c Changes count distinct algo to use a specialized int log2 function. 2015-12-29 18:22:01 +05:30
Abhinav Sarkar 2d5a49f53e Refactoring: Breaks Ringo.Generator into small modules. 2015-12-29 17:11:15 +05:30
Abhinav Sarkar 87a787ba8f Moves type default value validations to run only on DimVal and NoDimId fact column.
Instead of running on all columns.
2015-12-29 16:24:40 +05:30
Abhinav Sarkar d758dc3310 Changes dimension table population query for coalesce changes.
- Replaces "IS NOT DISTICNT FROM" with "="
- Adds not-all-columns-null check for full refresh.
2015-12-29 16:22:58 +05:30
Abhinav Sarkar aeed16570e Makes NoDimId columns in extracted fact tables not nullable. 2015-12-29 16:21:52 +05:30
Abhinav Sarkar ad14698ab0 Refactoring. 2015-12-29 15:19:17 +05:30
Abhinav Sarkar bcd210e7a5 Moves SQL type defaults to input json from code. 2015-12-28 22:06:44 +05:30
Abhinav Sarkar 8a530618e4 Fixes incremental SQL for coaleasce changes. 2015-12-28 18:43:49 +05:30
Abhinav Sarkar 3978f33cd0 Adds coalescing to default values for fact table columns.
- Removes FKs from fact tables
- Some coercions in SQL for faster processing
2015-12-28 18:09:02 +05:30
Abhinav Sarkar b994955399 Adds coalescing to default values for dimension table columns. 2015-12-24 17:42:47 +05:30
Abhinav Sarkar ff4ca5e235 Adds sql generation for count distinct fact columns population. 2015-12-22 19:46:37 +05:30
Abhinav Sarkar 2dcbe4efd7 Adds source column to count and count distinct fact columns.
Also removes CountDistinctColumSuffix setting.
2015-12-21 22:19:54 +05:30
Abhinav Sarkar d1e1eb7676 Adds output json generation.
- JSON files are generated for the following:
 - list of fact tables generated
 - list of dimension tables generated
 - dependencies between the fact, dimension and source tables
2015-12-21 15:30:23 +05:30
Abhinav Sarkar 7d64ffcde4 Adds incremental refresh sql generation for fact tables. 2015-12-20 18:25:14 +05:30
Abhinav Sarkar 7dc6db944f Adds incremental refresh sql generation for dimension tables.
- Adds partial unique indexes for tables to handle null columns.
- Adds validation for time column in fact tables.
2015-12-19 11:55:08 +05:30
Abhinav Sarkar f8a6382aa3 Fixes bugs in fact table DDL and insert SQL generation. 2015-12-18 17:00:46 +05:30
Abhinav Sarkar c430e5f255 Refactoring. 2015-12-18 13:20:35 +05:30
Abhinav Sarkar a84325cb2a Makes the build work with stack lts-2. 2015-12-18 02:37:17 +05:30
Abhinav Sarkar ea9e100f8f Extracts constants in code to settings. 2015-12-18 01:33:06 +05:30
Abhinav Sarkar 21497269ee Adds index SQL in fact table create SQL. 2015-12-17 23:48:17 +05:30
Abhinav Sarkar 4a5233a1a2 Adds the ability to run as an executable.
- Adds a parser to parse yaml file into tables and facts
- Adds program argument handling for specifying program settings
2015-12-17 20:02:13 +05:30
Abhinav Sarkar 900b4b7488 Adds fact table insert SQL generation. 2015-12-16 16:57:10 +05:30
Abhinav Sarkar c39916704e Refactoring 2015-12-16 03:14:04 +05:30
Abhinav Sarkar 041d55f9dd Refactors to move validation logic to its own namespace 2015-12-16 02:07:37 +05:30
Abhinav Sarkar 6e1341b52a Adds dimension table insert SQL generation.
Moves some private functions from Extractor to Extractor.Internal for reuse.
2015-12-15 18:22:51 +05:30
Abhinav Sarkar 6d8e32950f Adds SQL generation for table definitions.
And moves dimension and fact extraction logic to Ringo.Extractor namespace.
2015-12-15 17:22:45 +05:30
Abhinav Sarkar 3d00a89062 Changes to use Reader monad 2015-12-15 11:59:53 +05:30
Abhinav Sarkar b7d13c4947 Refactoring 2015-12-14 23:10:54 +05:30
Abhinav Sarkar 8e74c20705 Adds fact table extraction function 2015-12-14 21:57:11 +05:30