Skip to main content
Skip table of contents

Supported target database configuration

In order to create an environment in beVault, and therefore a database to store your data vault, you will need to configure at least one server. You can add as many servers you need. This can be useful to have your testing environment on another server than your production one.

We recommend having all your environments on the same type of database to avoid issues with your custom SQL code (information mart, hard rules and data quality controls)

Supported target databases

Here are the currently supported databases where you can deploy your Data Vault.

Postgresql_elephant.svg-20240605-071144.png

PostgreSQL

Snowflake_Logo.svg-20240605-071233.png

Snowflake

microsoft-sql-server-logo-20240605-071318.svg

SQL Server

And also, in alpha: IbmDb2


Configuration

The configuration may differ a little depending on the type of database you target.

AppData JSON configuration file
JSON
{
  "Servers": {
    "PostgreSQL": {
      "Name": "",
      "allowCustomEnvironmentDatabaseName": false,
      "DatabaseType": "PostgreSQL",
      "Username": "",
      "Password": "",
      "ReadOnlyUsername": "",
      "ReadOnlyPassword": "",
      "ConnectionStringSuffix": "",
      "EngineParameters": {
        "FORCE_LOWERCASE": true
      }
    },
    "SQL Server": {
      "Name": "localhost",
      "allowCustomEnvironmentDatabaseName": false,
      "DatabaseType": "SQLServer",
      "Username": "",
      "Password": "",
      "ReadOnlyUsername":"",
      "ReadOnlyPassword":"",
      "ConnectionStringSuffix":"",
    },
    "Snowflake": {
      "Name": "<account_identifier>.snowflakecomputing.com",
      "allowCustomEnvironmentDatabaseName": false,
      "DatabaseType": "Snowflake",
      "Username": "MegaAdmin",
      "Password": "password",
      "ReadOnlyUsername":"",
      "ReadOnlyPassword":"",
      "ConnectionStringSuffix":"",
    },
    "IbmDb2": {
      "Name": "the.host.of.my.db.com",
      "Port": 50000,
      "allowCustomEnvironmentDatabaseName": true,
      "DatabaseType": "IbmDb2",
      "Username": "db2inst1",
      "Password": "password",
      "ReadOnlyUsername":"db2inst1",
      "ReadOnlyPassword":"password"
    },
  }
}
Environment variables
YAML
Servers__PostgreSQL__allowCustomEnvironmentDatabaseName=False
Servers__PostgreSQL__ConnectionStringSuffix=
Servers__PostgreSQL__DatabaseType=PostgreSQL
Servers__PostgreSQL__EngineParameters=
Servers__PostgreSQL__EngineParameters__FORCE_LOWERCASE=True
Servers__PostgreSQL__Name=
Servers__PostgreSQL__Password=
Servers__PostgreSQL__ReadOnlyPassword=
Servers__PostgreSQL__ReadOnlyUsername=
Servers__PostgreSQL__Username=

Servers__Snowflake__allowCustomEnvironmentDatabaseName=False
Servers__Snowflake__ConnectionStringSuffix=
Servers__Snowflake__DatabaseType=Snowflake
Servers__Snowflake__Name=<account_identifier>.snowflakecomputing.com
Servers__Snowflake__Password=password
Servers__Snowflake__ReadOnlyPassword=
Servers__Snowflake__ReadOnlyUsername=
Servers__Snowflake__Username=MegaAdmin

Servers__SQL Server__allowCustomEnvironmentDatabaseName=False
Servers__SQL Server__ConnectionStringSuffix=
Servers__SQL Server__DatabaseType=SQLServer
Servers__SQL Server__Name=localhost
Servers__SQL Server__Password=
Servers__SQL Server__ReadOnlyPassword=
Servers__SQL Server__ReadOnlyUsername=
Servers__SQL Server__Username=

SERVERS__Db2__NAME=localhost
SERVERS__Db2__PORT=50000
SERVERS__Db2__DATABASETYPE=IbmDb2
SERVERS__Db2__USERNAME=db2inst1
SERVERS__Db2__PASSWORD=password
SERVERS__Db2__READONLYUSERNAME=db2inst1
SERVERS__Db2__READONLYPASSWORD=password
SERVERS__Db2__AllowCustomEnvironmentDatabaseName=true

Don’t forget to prefix the variables with the component’s name

  • Name: the host where the DBMS resides, for example localhost

  • allowCustomEnvironmentDatabaseName : If the users have the right to choose a database name when creating an environment. If set to false, the database name will have the following format: project_environment

  • DatabaseType : The type of Database. Expected values :

    • PostgreSQL

      • for versions 12 → 14

    • PostgreSQL15

      • for versions 15 → …

    • SQLServer

    • Snowflake

  • Username : the name of the database user. This user will need to have the read and write access to the database, the right to create tables, schema, and databases (if the user has no right to create database you will have to create them manually).

  • Password : the password of the database user

  • ReadOnlyUsername : Username of a user with stg_reader, ref_reader, dv_reader Role and im_reader

  • ReadOnlyPassword : password of the read-only user

  • ConnectionStringSuffix : (1.6.8+) Additional parameters that will be appended to the connection string

  • EngineParameters: A list of parameters to pass to the Datavault Engine. This is specific to the database flavor. See below for details per db

Engine parameters

Postgresql

Parameter name

Expected value

Effect

FORCE_LOWERCASE

True/False

All identifiers to be generated and used for the database are changed to lowercase. This option is used to mimic the behavior of previous versions of beVault.

Note: If you migrate a beVault from version 2.X to version 3.0.0, you need to activate this option.

Snowflake

Parameter name

Expected value

Effect

DATAWAREHOUSE

Snowflake cloud database has the concept of “Warehouse” which is the entity doing the work when querying the database. This parameter specifies the warehouse to use. If not set, Snowflake selects the role’s default warehouse.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.