This article shows how to embed self-service analytics on top of your Snowflake data with the GoodData.CN cloud-native analytics and the GoodData.UI data visualization toolkit.

The GoodData.CN includes tools and frameworks:

  • Powerful data analytics with semantic model and measures layer
  • API first approach. Convenient APIs for a seamless fit to your frontend and backend.
  • Flexible embedding with first-class support for React, Vue, Angular, and other popular Javascript frameworks.
  • Easy to use, visual, self-service analytics tools (dashboards, data visualizations) embeddable to SaaS applications.
  • Automated distribution of the analytics to many tenants (external and internal organizations) and integration with your CI/CD pipeline.


This article shows how to embed self-service analytics on top of your Postgres data with the GoodData.CN cloud-native analytics and the GoodData.UI data visualization toolkit.

The GoodData.CN includes tools and frameworks:

  • Powerful data analytics with semantic model and measures layer
  • API first approach. Convenient APIs for a seamless fit to your frontend and backend.
  • Flexible embedding with first-class support for React, Vue, Angular, and other popular Javascript frameworks.
  • Easy to use, visual, self-service analytics tools (dashboards, data visualizations) embeddable to SaaS applications.
  • Automated distribution of the analytics to many tenants (external and internal organizations) and integration with your CI/CD pipeline.


We’ve just launched GoodData.CN, the modern headless BI framework. In this article, I briefly describe the new product’s capabilities.

TLDR: Skip the BS. I want to try it myself.

docker pull gooddata/gooddata-cn-ce

Documentation and API reference is here. If you get in stuck, join our Slack community for help. Development is free of charge. Production deployment for an unlimited number of users is also free. You’ll pay for advanced features.

Cloud-Native

The GoodData.CN is deployed as a single Docker image via a pull from Docker Hub or as a set of Kubernetes images available via Helm chart. For initial evaluation, development, and testing, we recommend the Docker image. …


I work for GoodData and have been focused on multi-tenant analytics for more than a decade. By multi-tenant analytics, I mean a use-case when analytics is shared with external companies: customers, channel partners, suppliers, or other business partners.

Our analytics widgets and self-service analytics tools are usually embedded in applications or web portals. However, there are always tenants who have already adopted a specific BI tool or platform and want to integrate it with our analytics. Initially, we were serving these customers by exporting data from our platform to import them into their BI. Besides the obvious latency that this…


What is the semantic model? Why should you use it in your product or solution when you already have SQL? Continue reading.

A picture is better than a thousand words. Here is a simple semantic model visualized in GoodData:

Semantic model example (GoodData Logical Data Model)

Technically speaking, the semantic model brings the following technical concepts to SQL model (and query language):

  • Shared definition of relationships. The semantic model defines shared relationships between datasets. These relationships are implicitly used in queries. In short, your users won’t need to write joins and remember the names of the primary and foreign key columns. …


Containers open a whole new set of options for data analytics. Deploying and configuring a complete analytical stack can take less time than executing a query in your database.

GoodData has launched the modular analytical stack GoodData.CN that can be deployed as a single Docker image or as an elastic k8s application. The deployment and configuration of this stack can be easily automated. Let me share a quick example of how this stack works.

1. Pull Docker image

docker pull gooddata/gooddata-cn-ce

I tried this from my local Mac, Google cloud VM, and AWS EC3. …


GoodData.UI is a new open-source data visualization library. It is based on JSX components. For example, this <ColumnChart/> tag displays a column (aka bar) chart:

<ColumnChart 
measures={[Ldm.Revenue]}
viewBy={[Ldm.DateMonthYear.Long]} />
Bar chart data visualization displayed by the one-line code above

Try it yourself in this sandbox

You can play with the tags in this sandbox. The supported tags are documented here. By the way, the framework is open-sourced.


Data visualizations with GoodData.UI is as easy as writing HTML tags. For example, this <ColumnChart/> tag displays a column (aka bar) chart:

<ColumnChart 
measures={[Ldm.Revenue]}
viewBy={[Ldm.DateMonthYear.Long]} />
Bar chart data visualization displayed by the one-line code above

You can play with the tags in this sandbox. The supported tags are documented here. By the way, the framework is open-sourced.


Multitenant analytics is about delivering analytics to users in multiple organizations (tenants). The most common use case for multitenant analytics is customer-facing reports, and dashboards embedded in a SaaS application.

Another frequent use case is an organization that provides analytics to its business partners: suppliers, distributors, resellers, franchises, etc.

Multitenant analytics is often delivered as a product. This involves the following high-level steps:

  • Deliver an initial analytical experience (data visualizations, reports, dashboards, etc.) to new tenants (e.g. organizations, customers, business partners)
  • Organizations customize their analytics with self-service tools
  • You release a new version of the analytics without breaking the customizations


This example shows how to create Spark Dataset on top of GoodData workspace. Once you have data in a Spark Dataset, you can use all data processing power of Spark including data transformation, machine learning, etc.

The dataset uses the workspace created in this tutorial.

Setup

The example requires a .gooddata configuration file located in your home directory. The file has this structure:

{ 
"host": "<your-gd-domain>.na.gooddata.com",
"username": "<your-gd-username>",
"password": "<your-gd-password>",
"workspace":"<your-gd-workspace-id>"
}

Code

Check out the example code

Tutorials and articles

Originally published at https://github.com.

ZD

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store