This example demonstrates support for time data built into GoodData CL.
Run gdi.sh with the forex.txt script as follows:
Windows:
c:> bin\gdi.bat -u <username> -p <password> examples\forex\forex.txt
Project id = 'f5977852bfec20271d4c9bc453a263cb' created.
Unix like OS (Linux, Mac OS X and others):
$ ./bin/gdi.sh -u <username> -p <password> examples/forex/forex.txt
Project id = 'f5977852bfec20271d4c9bc453a263cb' created.
There are two parts shown in this example - a GoodData provided date dimension (providing a hierarchy of days, weeks, months, years etc.) and a separate Time dimension (providing attributes such as AM/PM, hours, minutes, seconds). Both make use of the DATETIME column in the forex.csv data file.
First, we need to tell GoodData CL to set up the Date and Time dimensions in our project:
Here are the lines from forex.txt that take care of setting up the date & time dimensions:
Create/Use/OpenProject(...);
UseDateDimension(name="Forex", includeTime="true"); # with includeTime=false sets up just the date dimension
GenerateMaql(maqlFile="date.maql");
ExecuteMaql(maqlFile="date.maql");
TransferData(); # this line is necessary only when includeTime=true
Now that we have the date & time dimensions present in our project, we can define a mapping between the DATETIME column in forex.csv file and these dimensions. In the definition of your data model XML schema, the column entry for the DATETIME column has 4 important entries:
<column>
...
<ldmType>DATE</ldmType>
<datetime>true</datetime>
<schemaReference>Forex</schemaReference>
<format>dd-MM-yyyy HH:mm:ss</format>
...
</column>
<ldmType>DATE</ldmType> - this tells GoodData CL to treat this field as a date field (by default without time support). GoodData CL parses this field according to the <format> and then connects it automatically to a Date dimension (identified by the <schemaReference>)
<datetime>true</datetime> - this extents the LDM type DATE to include time support. GoodData CL will now be able to parse the field as DATETIME
<schemaReference>Forex</schemaReference> - this specifies the name of the Date dimension to be used. Needs to correspond with the UseDateDimension() name parameter used in your script (here forext.txt)
<format>dd-MM-yyyy HH:mm:ss</format> - this field helps GoodData CL understand how to parse the datetime string
