Using bippLang

bippLang is used by analysts and developers to create reusable data models using SQL syntax. These models are then used by BI analysts to generate reports, dashboards and insights, forming a dataset for the Project. The dataset becomes a repository of the business logic and knowledge about the database tables that can be reused by others without reinventing the information.

bippLang connects to all major databases and supports the associated SQL syntax, with bippLang datasets as an abstraction layer above SQL. This layer encapsulates internal data operations like join, cast, format, aggregate, filter used to present data on a report. The operations are defined once in the dataset and reused to generate reports, graphs or charts. SQL queries are generated on-the-fly based on the referenced dataset components. bippLang is designed for data analysts with an basic knowledge of SQL.

See how bippLang can help you deliver the data and visualizations your users require:

  • bippLang data modeling language: Create reusable complex data models with custom columns and dynamic sub-querying so you no longer need to rewrite the same SQL fragments.

  • Auto-SQL Generator: Ends repetitive writing of the same SQL fragments over and over again by leveraging joins defined in the data model figuring out which tables to join, and when, based on need.

  • bipp’s dashboard specification language: Streamline the development of visual dashboards that can be fully edited and customized using markup language.

  • Git version control: Track changes and collaboratively develop your data model to increase productivity and significantly reduce time to generate reports.

  • In-database: Integrates into the data warehousing functionality so you do not need multiple tools. Helps provide real-time analysis instead of taking minutes to refresh data.

  • Visualization: Reduces time to insight by enabling data slicing and dicing with real-time dashboard updates.

Developing in bippLang

The bippLang developer tools help you concentrate on modelling without worrying about operational distractions like installation, software maintenance, version control and team collaboration. You access bipp through a browser, and connect to your supported database instances.

bipp features a user-friendly editor interface for development:

  • Syntax highlighting
  • Code completion option while typing
  • File/table explorer bar
  • Expand and collapse data model sections
  • Find and Replace within your code
  • Access to the viewer and application menu
  • Git integration to save and commit your code
  • Git integration to synchronize your branch with the master
  • Preview and deploy functions to enable data model visualization
  • Parsing error checking for bippLang code
  • Multi-view code comparison

bipplang Editor

The development interface behaves like a Git client where you can save/commit code to your own branch and push/pull from the master. This is key for enterprise teams working together on an analytics project. You can switch between committed versions of the source by selecting the versions from History.

Data Viewer

You can test your model within bipp by visualizing your data from a dataset. The tables created in your model are available in the development interface. Columns can be selected for viewing data as tables, charts or graphs.

Supported Databases

bipp supports a wide range of databases:

  • BigQuery
  • BQPub
  • RedShift
  • SQL Server 2017+
  • MySQL 5.7+
  • Impala 5.x+
  • Teradata 15.x+
  • Hive 2.x.x+
  • Postgres 9.x+
  • Snowflake 3.27+
  • Oracle 12c+
  • mongoDB 3.2+

Database Specific SQL Dialect

Different databases use different SQL syntax for queries and operations. bippLang handles this for you. When you select the type of database (dialect on the project page), bippLang enforces the syntax for that database in the query-parts that are auto-generated. The BI analyst is responsible for dialect correctness of the SQL fragments specified for columns (and sometimes, tables) in the data model.

For example: Column definition for a project using MySQL data source:

column StDate 
	sql """ STR_TO_DATE(StartDate, '%m/%d/%Y') """
	type datetime

Column definition for a project using SQL Server data source:

column StDate 
	sql """ CONVERT(datetime, StartDate, 101) """
	type datetime

Notice the syntax difference for handling the date between the two data sources.