Skip to main content

Semantic Modeler Series: Setting up Git repository

Using Git with Semantic Modeler

Let’s assume you already have a deployed semantic model in your Oracle Analytics Cloud (OAC) environment. Now, you want to enable collaboration by allowing multiple developers to work on this model simultaneously.

In the past, OBIEE supported collaboration through the Multi-User Development Environment (MUDE). However, MUDE had its challenges—locking conflicts, merge complexities, and deployment issues were common pitfalls.

With the introduction of Semantic Modeler in Oracle Analytics, collaborative development is more robust and streamlined. Developers can either:

  • assign permissions within Semantic Modeler, effectively making it a built-in multi-user environment, or
  • integrate with Git, which brings version control and true collaborative development via source control access rights.

In this article, we’ll walk through how to integrate Semantic Modeler with Git for the first time.

Integrating Semantic Modeler with Git is relatively straight forward process that can be accomplished within a few steps. Each Semantic Modeler in the list of models has associated menu (accessible on the right hand side).

Inspect Semantic Model

Selecting Inspect menu option opens a window in which users decide and set their development environments - under Sharing tab on the left side menu:

Permissions Permissions

Git Git

As you can see, Git is by default preferred option. However in my case it hasn't been configured yet. To configure git integration, one must open Semantic Model and click Git icon (located in bottom-right corner).

Configure Git

Because this is my first attempt to configure Git, it has to be initialized first.

Start configuring Git

Initialize Git window opens. It is assumed that Git repository has already been created, so Git repository URL should be provided.

Initialize Git - empty

Just for the further reference, here is my Git repository for this case:

Create a new Git repository

As it is also shown in instructions, there are two options for providing required URL, HTTPS or SSH. In my example, I am using HTTPS, but either of two URLs can be used:

URL HTTPS

URL SSH

Once URL has been copied into Git Repository URL and Branch Name provided, i.e. main (assuming this is main branch), setup can continue.

Initialize Git - complete

In the next step, you’ll need to define a Git user profile. Along with the username, Git also requires a password. Note that this isn’t your Git login password, but rather a Personal Access Token, which you generate from your Git account.

Here are the steps to generate Personal Access Token:

In Git, navigate to user's Settings and then to Developer Settings. Open Personal access tokens and then click on Fine-grained tokens.

Git - Developer Settings

Click Generate new token.

Git - Generate token

Provide a new token name, set expiration date, optionally define for which repository is this token valid, and then click Generate token.

Git - Copy token

When token is generated, copy it into clipboard. Use this token and fill the password field in Initialize Git popup window.

Git - Finish initializing token

After a couple of seconds, Git is initialized.

Git Initialized

The results of Git initialization can be now reviewed in you Git environment, Github in my case:

Updated Git repository

As you can see there are four folders created which replicate Semantic Modeler content:

  • three folders for each layer of semantic model: physical, logical and presentation,
  • additional folder for variables.

Drilling down the folder structures shows semantic model structure and its definitions in SMML (JSON). When comparing with Semantic Model that resides in OAC, we can see that the content is exactly the same.

Model in Semantic modeler

Model in Git

There is also one minor detailed available for inspection in Oracle Analytics' Semantic Models list - for the model that we initialised Git repository, connection to the Git repository is now displayed:

Model in Git

And detailed description of connection is available as well:

Semantic Model definition

Final Thoughts

This walkthrough demonstrated how to connect Semantic Modeler with a Git repository. In upcoming posts, we’ll explore real-world use cases of this integration, including:

  • migrating semantic models between environments,
  • multi-user development environment,
  • model versioning.