πŸ“„Creating a new project

A Euno project serves as an exclusive repository for aggregating data products linked to a specific account or data domain. Essentially, a project embodies a dynamic and continuously evolving compilation of text files, collectively sculpting and elucidating the extensive data model it signifies. Notably, a Euno project maintains a one-to-one correspondence with a dbt project. This segment will walk you through the nuances of overseeing and advancing projects, providing valuable insights into the smooth integration of data across various accounts and domains.

Connecting to a Github Repository

When initiating a new project through the "Create a new dbt project" button on the homepage, a dialog box will appear, prompting you to provide the following details:

  • Project name

  • Repository

  • Branch

To include a directory path for the dbt project, you can access this option by clicking on the "Advanced" setting.

Upon successful configuration, the user will be directed to the project's home page. If any issues arise, an error message will be shown in the dialogue box in red text.

Selecting a Job

For Euno to support automated code generation, data model visualization, and the data app sync, it requires specific artifacts from the dbt build: catalog.json, manifest.json, and run_results.json. Additionally, the following information is required from a job responsible for building the "entire" data model, or the portion considered as such by your organization. Since not every job serves the same function, it is essential to choose the job you want Euno to process.

The selected job must meet the following three criteria:

  1. It must be a build, not just a compile.

  2. The option "Generate docs on run" must be selected.

  3. The job should be set to build the "entire" data model or the specific part of the data model your organization wants to view in Euno.

If you do not have an existing job that meets the above criteria and you are concerned about the build cost, create a lightweight job with the following criteria:

  1. dbt compile

  2. The option 'Generate docs on run' must be selected.

  3. The job should be set to build the 'entire' data model or the specific part of the data model your organization wants to view in Euno.

Please note that while it's possible to use a lightweight job, it's not recommended. Since the job doesn't build the data model, it can't guarantee 100% accuracy. Therefore, if a lightweight job is created, it should be scheduled to execute regularly to ensure it reflects your warehouse transformations.

To configure the specific job for the project, click the "Select job" button under the "Deploy job link" heading on the project configuration page. This will open a dialogue box with a dropdown menu where a dbt job can be selected (see image below).

Connecting a New Branch

Connecting a new branch into a Euno project is a pivotal step in the evolution and collaboration of software development. This process not only extends the scope of the project but also introduces a new dimension of version control and collaboration. To connect a new branch, click the β€œConnect branch” button found in the top right corner of the project's Configuration tab, which will open a dialogue box to select a new branch to connect to.

Configuring the Data Application Sync

To leverage one of Euno's distinctive features, syncing your dbt changes back to your BI application, it is necessary to configure the specific data application for syncing with your dbt project.

Configuring LookML

From the project Configuration screen, users can link a specific branch in the project to a particular LookML file by clicking the "Sync to Data Application" button next to the branch. Clicking this button opens a dialogue box prompting you to input:

  • LookML Repository

  • Target branch

  • Directory

  • Selective sync

Users can also specify whether they want the sync to be automatically committed to a branch (selected by default) or have Euno create a pull request.

Setting up this data sync ensures that with each new build from the selected job, Euno will automatically trigger a data application sync.

Customizing LookML Structure for Auto-code Generation

Euno uses Jinja2 templates to generate the LookML files from a given dbt manifest and catalog.

Out-of-the-box, every model that is selected by the tags (or all models, if no tags are specified), will automatically generate a single view file in the target directory. Users can customize the behavior by either specifying meta fields in the model or the column, or by overriding the default Euno Jinja2 macros.

Customizing Generated LookML by Specifying Meta Fields

Node Meta Fields

Column Meta Fields

By default, Delphi will generate a single dimension clause for each column and a single measure for each dbt metric (MetricFlow).

Please note that only simple metrics and ratios are currently supported for dbt Metrics. In addition, we do not support metrics across multiple dbt models.

To configure any of the above options:

  • For columns - Insert the meta key & and overriding value underneath the column in the YML file the model is found.

  • For metrics - Insert the config key and overriding value in metric's YML file underneath the config key.

Customizing Generated LookML by Overriding Built-in Macros[

Euno will process any file in the dbt’s repository, under the directory .delphi/lookml_sync/macros/ as a Jinja2 template, and override any build-in macros found in those files.

Deploying LookML Changes Made in GitHub to Looker

Euno syncs to LookML any changes introduced to dbt, by utilizing the GitHub integration to commit changes directly to the LookML repository in GitHub. However, Looker does not automatically pull these changes from GitHub and deploy them to the production environment.

You have the option to deploy changes to the project's production environment in Looker either manually for every commit or by setting up automatic pushes from the master branch.

Note: This step is crucial to ensure a successful sync with Looker.

Manually

To manually deploy the changes from a branch to the Looker’s production environment, follow the following steps from within Looker:

  • Enter β€œdevelopment mode”

  • Go to β€œDevelop”, and pick the Looker project

  • Go to β€œGit Actions”

  • Click β€œPull from…” and pick β€œPull from remote”

  • Once the operation is done, click β€œDeploy to Production”

Automatically

Users can take advantage of Looker’s built-in Advanced deploy mode capability so that changes would automatically be deployed using either a webhook, API endpoint or manually using the deployment manager.

For Looker configurations involving GitHub, we can recommend configuring a webhook so that commits into the master branch would be automatically applied in Looker.

For more detailed instructions see Google’s instructions.

Project Home Screen

The Project Home screen is the landing page for the project. This includes two tabs; the "Overview" tab, and the "Configuration" tab.

Overview Tab

The Overview tab includes overview information about the project itself, including: the number of sources and models in the project, the connected branches, their health, and the health of the project.

Health

In the intricate landscape of data management, the concept of "health" transcends mere binary success or failure. In Euno, we introduce a nuanced understanding of health to provide users with comprehensive insights into the status and viability of their data builds and projects.

Build Health

In Euno, the health of a build refers to its current status and whether it has successfully progressed through the various stages of processing. Each build undergoes a lifecycle that includes uploading, processing, and being marked as processed. The health of a build is crucial for users who wish to explore the associated resources. Below are the different states of a build and their corresponding descriptions:

The resulting build health helps users understand the current state of their builds, allowing for informed decision-making during exploration.

Project Health

Euno also provides insights into the overall health of projects, considering the health of both the main and side branches. The health of a project depends on the least healthy, active, side branch and the status of the main branch. Here are the different states and their implications for project health:

Understanding the project health helps users assess the overall stability of their projects, taking into account the health of both the main and side branches.

Configuration Tab

The project configuration tab serves four primary functions in project management:

  1. Administration of connected branches

  2. Oversight of builds

  3. Setting up data application synchronization

  4. Configuring jobs for processing dbt builds

The builds section of this tab includes a list of builds, sorted chronologically by build time and date. This table includes the status of the build, and the data sync, if configured. Users can click on the status in order to view the details.

Last updated