Data Modeling in GoodData

Data modeling in GoodData revolves around the concept of a logical data model (LDM). You create and modify an LDM for a particular workspace using our fully integrated LDM Modeler.

A logical data model represents the relationship between data objects in a workspace (also known as a project). The LDM provides a layer of abstraction so that you do not have to interact with the physical data model.

In the LDM Modeler, you assemble datasets and other objects, customize them, and build the relations between these objects to define data relationships within the workspace.

The GoodData platform is designed to enable users to quickly create and modify LDMs for your workspaces. However, be careful in how you assemble the components of your LDM. When possible, deploy experienced modelers to your workspaces, particularly if they involve multiple interacting datasets or specialized use cases for your data.

Data Models and the GoodData Platform

In GoodData, the entire data model is broken down into two components:

  • Logical data model  The logical data model describes the fields in use in your workspace, how they are organized into datasets, and their connections between datasets. LDMs are created through an intuitive graphical interface, the LDM Modeler.

  • Physical data model  The physical data model is the technical definition of how the data elements in the LDM are written to the data warehouse. When the LDM is created and published, the platform automatically creates or updates the physical data model, so that the tables in the data warehouse reflect the LDM.

You can see the LDM as the contract between the data loading process and the data warehouse, and between the data warehouse and the analytical queries. Your LDM maps the incoming data to the physical data model, which is used to store the content in the data warehouse. The LDM provides a layer of abstraction so that users do not need to interact with the physical data model.

The LDM enables a layer of abstraction between the information the GoodData user is accessing and the method by which the data is stored. This layer of abstraction allows continuous improvement of the physical data model and the tools used to access and maintain it without interfering with the user’s definition of the data architecture.

In the GoodData platform, the LDM is used to perform the following basic functions:

  • Data loading When a data loading process is executed, the GoodData platform references the LDM to determine how the incoming data is written into the designated dataset.
  • Data querying Any request for data submitted from a GoodData interface is passed through the LDM to retrieve the data and to return it to the querying client.

Logical Data Model and Your GoodData Workspace

The LDM describes the relationships between abstracted data elements, sets of data that are organized by logical connection rather than associated by how and where they are stored. In GoodData, these logical sets are called datasets. You can think of datasets as of virtual tables.

Each workspace requires an LDM. When properly constructed, the LDM defines the datasets and the connections between them and delivers the power to calculate predefined metrics and reports without forcing the platform to do complicated joins or lookups.

The following image represents a simple LDM visualization in the LDM Modeler. The model is based on the datasets that are used in the GoodData Demo Workspace.

Logical Data Model Components

An LDM is built from the following components:

  • Facts
  • Attributes
  • Dimensions
  • Datasets
  • Connection points

For a comprehensive description of the LDM components, see Logical Data Model Components in GoodData.

Mapping Your Source Data to the Components of the Logical Data Model

See how source data from your enterprise systems is mapped to basic types in the LDM.

Source Data Type

LDM Components


Text value

Attribute in a dataset

All text values are stored as attributes.

Numeric value

Fact in a dataset OR attribute in a dataset

Numbers that you want to aggregate by sum, count, minimum, maximum, or average must be stored as facts.

Numbers that you want to use to slice your data (for example, table size) are stored as attributes.

The same input data can be used in both ways.


Date dataset

A Date dataset stores date-related information. This specific dataset includes a pre-built hierarchy of attributes and dimensions for aggregating by date.

Data Modeling Tools in GoodData

GoodData LDM Modeler

The LDM Modeler is the primary tool for creating, testing, and deploying LDMs in workspaces on the GoodData platform.

Through the LDM Modeler’s drag-and-drop interface, you can build datasets, populate them with fields, and create the connections that enable flexible reporting within your workspace.


The GoodData REST APIs enable developers to programmatically interact with all aspects of their GoodData domain. User, workspace, and data load provisioning can be managed through these structured APIs. Additionally, you can modify individual objects within your workspace, such as metrics, reports, dashboards, data permissions, and the LDM.

To get started with the GoodData REST APIs, see API Reference.

Gray Pages

To make small changes to the technical definition of your deployed workspaces, developers can utilize the gray pages, a form-based interface. Select links displayed in the gray pages to navigate the internals of your workspace definition and use the available form fields to submit changes at the endpoints.

Do not use gray pages as a primary way to interact with your workspaces, as effective navigation requires an understanding of the technical layout of a workspace definition and management of the internal identifiers of your workspace. We recommend using other interfaces where possible.

To get started with the gray pages, see Access the Gray Pages for a Workspace.