GoodData.CN: The best Headless BI platform

ZD
GoodData Developers
5 min readJul 24, 2021

There are multiple ways how analytics and BI are being consumed. End users are using analytical dashboards, creating their own ad-hoc reports, using the reports as a data source for their machine learning models, or scheduling reports via email and opening them in a PDF viewer or a spreadsheet.

BI consumption options

Implementing all these options in your application or a portal is quite a complex task. Many companies approach this by using multiple tools and platforms that sit on top of a shared database. Ensuring analytics consistency across these tools is hard because of multiple different data models and query languages. The different analytics tools also use snapshots of data from different times.

Consistency problem — different analytics tools and platforms yield different results

Achieving consistent data access permissions in these tools is even harder than analytics.

Headless BI provides a single source of metrics and a shared semantic model. All analytics consumption methods mentioned above work with the same calculations and datasets.

Headless BI: a single source of measures and semantic model

Let me demonstrate the key concepts of the Headless BI on GoodData.CN.

Multichannel analytics consumption

GoodData.CN supports pretty much any existing analytics or BI tool or platform, machine learning console or notebook, and programming language. Here are just a few examples:

GoodData.CN uses OpenAPI standard that allows for automated generation of programming language bindings. There are SDKs for Javascript, Java, Scala, Python, .NET, Kotlin, Ruby, and other languages.

GoodData.CN integration layers

GoodData also provides open-sourced GoodData.UI library that enables convenient development of React, Vue, and Angular UI applications.

GoodData.UI code example

Semantic model and Measures

The semantic model defines all entities that are subject to analytics. The entities are mapped to one or more data sources (e.g. Snowflake, Azure SQL, BigQuery, Redshift, Dremio, Drill, Kafka, etc.). It also defines the relationships between these entities.

Semantic model and metrics

Measures are defined on top of the semantic model.

Context-aware and reusable measures

GoodData measures are context-aware. This means that you can use them with any combination of dimensions and other measures and they will compute a correct result. You can define hundreds or even thousands of reports with just a handful of measures.

The measures (and thus reports, dashboards, or ML models) are executed in realtime.

Declarative definitions

GoodData.CN supports both visual and declarative editing of all analytics objects (e.g. dashboard, report, measure, semantic model, etc.). Both visual and code editors save an object’s definition to one metadata server. Both work instantly with the same declarative format, so there is no need for any synchronization, etc.

The declarative definitions can be automatically generated in any programming language and published or modified via API. They can also be versioned in any version control system (e.g. Github).

Continuous Delivery

The declarative definitions, open APIs, and support for scripting languages make it very easy to integrate Headless BI with your continuous integration pipeline (e.g. GitLab, Jenkins, Travis, etc.)

Headless BI and continuous integration pipeline

Multitenancy

GoodData.CN supports many tenants (your customers, business partners, branches) from a single deployment.

The analytical solution that you create can be deployed and rolled out to many tenants. The tenant-specific solutions are inherited from the base package. This means that all changes: e.g. bug fixes or new versions of your objects are instantly propagated to the tenant instances. Also, individual tenants can extend and override the base package. These tenant-specific changes are private to each tenant.

GoodData.CN also allows for partitioning data to individual tenant solution instances using data conditions (SQL WHERE clause). Each tenant’s users then only see data that are owned or related to the tenant.

Multitenant solutions are inherited from a base solution. Data are partitioned by a SQL WHERE clause

And many more

There are tons of other important aspects that GoodData.CN support. Among all let me mention intelligent caching, which ensures scalability and low execution latency. Strong data security and privacy, single sign-on, integration with user management platforms, etc.

GoodData.CN capabilities

Deployment is FREE for both development and production

And the best for the last. The GoodData.CN is free, for both development and production. The Community Edition contains all product features for development and testing. Everything is packed in one easy to install Docker image.

The production is also free and is installed as a Kubernetes application. You can install it to your local k8s cluster or to any public cloud provider (AWS, Azure, GCP, etc.).

You can learn more about it at GoodData University. There is also a strong Slack community where you can ask any technical question.

Start now!

docker pull gooddata/gooddata-cn-ce

--

--