Posts

MongoDB Aggregation Queries Basics on MongoLab

Image
What is MongoLab? MongoLab is a hosted MonoDB  service that offers one free database to developers wanting to learn the technology. It's a very elegant way to start learning or developing a small application. I started using this earlier in the year and had created a couple of collections on it.  What is the MongoDB Aggregation Framework? Traditionally in SQL databases you have the concept of a GROUP BY and an aggregation function like average or sum. In MongoDB, aggregation wasn't ever as easy, in order to do any aggregation you'd have to write your own complicated MapReduce jobs. Along comes MongoDB version 2.2 , which includes the aggregation framework. So consider this SQL statement: SELECT sum(duration) FROM calls GROUP BY disposition And here it is translated to MongoDB, I've attempted to color code the translations: } runCommand: { aggregate : 'calls', pipeline : [ { $group : { ...

Jaspersoft Report Writing Best Practices

Image
The following is a set of guidelines for developing reports with iReport and JasperReports Server. It was compiled with the help of  Frau Klein Best Practice - report resources: Report units contain references to the resources they use: images, styles, sub-reports, queries, input controls -  example Why ? Promotes re-usability (nothing is local to report unit). Easy maintenance around moving report units, replacing resources in a mass scale.   Best Practice - references:  Never hard code an entire repository path to resource, the image repo:/reports/images/image.png should come in as a reference like repo:image.png   - example Why? When you use js-export with --uris option it only resolves repository dependencies, it doesn't look for expressions that maybe use an absolute repository path   Best Practice - styles: Do not hard code any style information to JRXML. Develop central style templates (jrtx, jrctx) for all your repo...

TalendDate

Not a lot of examples around TalendDate so thought I'd post a couple of quick examples: Today's date: TalendDate.getDate("yyyy-MM-dd") Returns: 2012-04-12 Yesterday's date: TalendDate.addDate(TalendDate.getDate("yyyy-MM-dd"),"yyyy-MM-dd",-1,"dd") Returns: 2012-04-11 Tomorrow's date: TalendDate.addDate(TalendDate.getDate("yyyy-MM-dd"),"yyyy-MM-dd",1,"dd") Returns: 2012-04-13 Date format: CC - century YY - year MM - month DD - day of month hh - hour mm - minutes ss - seconds Return types: string! Other methods: TalendDate.compareDate(myDate,myDate2,"yyyy-MM-dd") TalendDate.diffDate(myDate,myDate2,"MM") TalendDate.formatDate("yyyy-MM-dd HH:mm:ss",myDate) TalendDate.setDate(mydate,newValue,"MM") TalendDate.getFirstDayOfMonth(mydate) TalendDate.getLastDayOfMonth(mydate) TalendDate.getRandomDate("2007-01-01","2008...

Flush Jaspersoft OLAP Cache from Talend/JasperETL

Image
JaspersoftETL is a Java code generation tool designed to load your operational data into a  data warehouse  and get it ready for reporting and analysis.   Jaspersoft OLAP  takes advantage of aggregate tables and an in-memory cache to speed up queries. If you're running a nightly job to load the DW, it's a good idea to clear the OLAP cache at that time, otherwise your users will not take advantage of new data. There are several ways to clear the OLAP cache: Login with superuser privileges and display the OLAP Settings page. In the OLAP Settings panel, click Flush OLAP Cache .    Using utilities such as cURL and wget, send an HTTP request to this URL: http://server:8080/ olap/flush.html?j_username=superuser&j_password= Restart the application server instance.  Call the Java API. I've created a small component that allows the clearing of cache via the URL method from a JasperETL/Talend job. Essentially it will prompt you for a userna...

Using tGoogleAnalyticsInput in JasperETL/Talend

Image
This is a short article on getting Google Analytics into JaspersoftETL / Talend ETL tools. Google Analytics has a nice interface and many great ways of analyzing web traffic, it'd be hard to beat the work Google did there. The purpose of this connector would be to bring the data into your own data warehouse and join it with other intelligence you might have. A great way to display the aggregated data would be with a BI tool like  Jaspersoft . I'm writing because the help for the tGoogleAnalyticsInput is in French and incomplete. So let's get started. You'll need JasperETL 4.1.2 or older (commercial editions here , open source here ). Installing the plugin: Create a new Job Design and drag the tGoogleAnalyticsInput component from the Palette (under Internet): Configure the component. First start with finding some fields you'd like to use from the Google API: http://code.google.com/apis/analytics/docs/gdata/dimsmets/dimsmets.html....

Icinga Reporting with JasperReports Server - Part 2: Usage + Basic Report Development

Image
Short tutorial, shows how to schedule a report, how to change the way you are prompted for parameters and some basic editing of reports within iReport

Icinga Reporting with JasperReports Server - Part 1: Installation

Image
A quick overview of how to install and configure the reporting add-on packages for Icinga (a Nagios Monitoring Fork), written for JasperReports Server.