The Bling Specification
Bling is a language that can be used by data analysts and developers to create reusable data models using SQL syntax. These models can subsequently be used by BI analysts for generating reports, dashboards and insights. Thus, a Bling model serves as a place where business logic and knowledge about database tables can be encoded for posterity instead of being resident in the brains of human experts.
Bling can connect to all major databases and supports the associated SQL syntax. The Bling model thus provides an abstraction layer above SQL. This layer encapsulates internal data operations like join, cast, format, aggregate, filter etc that may be required before presenting data on a report. These operations are defined once in the model and may be reused any number of times to generate reports, graphs or charts. SQL queries are generated on-the-fly based on the components of the model that are added to the report.
Let us illustrate this with a simple example. Consider an application where many of your reports need to display the number of months that have elapsed since a specific date. Without Bling, you would probably include this function in each of your report queries.
TIMESTAMPDIFF( MONTH , StDate, NOW())
With Bling, however, you can define this operation as a column in your data model and then add this column to any report in the future.
column MonthsFromStartDate label Months From Start Date sql """ TIMESTAMPDIFF( MONTH , StDate, NOW()) """ type int
With this background let us now look at the many ways in which Bling can power the data analytics process by simplifying the management of SQL queries.