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

IBM Db2



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
SERVERS__Db2__EngineParameters__ORGANIZEBY=Row
SERVERS__Db2__EngineParameters__COMPRESS=YesAdaptive
SERVERS__Db2__EngineParameters__TABLESPACE=THENAMEOFMYTABLESPACE
SERVERS__Db2__EngineParameters__TABLESPACEINDEXES=THENAMEOFMYTABLESPACEFORINDEXES

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. For database systems where database creation is not supported this is highly recommended, because databases have to be created beforehand. (IBM Db2 for example).

  • DatabaseType : The type of Database. Expected values :

    • PostgreSQL

      • for versions 12 → 14

    • PostgreSQL15

      • for versions 15 → …

    • SQLServer

    • Snowflake

    • IbmDb2

  • 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 : Name of a user that has read access by default on everything the write user creates.

  • 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.

OAUTHTOKENFILEPATH

<file path>

If set, for all connections, Snowflake will use the token found in the specified file to authenticate. Used for Snowflake’s app store environment where a token is mounted at a specific location for the service’s database connection.

USEENVIRONMENTCONFIG

true/false

If true, force the Host/Account to the values found in the following system environment variables:

  • SNOWFLAKE_ACCOUNT

  • SNOWFLAKE_HOST

This is specific to the Snowflake’s app store environment. It might or might not be useful, depending on how the docker image is deployed.

IBM Db2

Parameter name

Expected value

Effect

ORGANIZEBY

Row/Column

Defaults to Row. In the IBM DB2 datavault engine driver, starting with the 3.6.0, tables are created with an explicit data organization (ORGANIZE BY).

COMPRESS

No/YesAdaptive/YesStatic

Defaults to YesAdaptive. When table organization is set to be organized by row, sets IBMdb2 compression mode.

TABLESPACE

<tablespacename>

If set, produce IN <tablespacename> statements for all table creations. Sets the target tablespace for all tables generated by the metavault.

TABLESPACEINDEXES

<tablespacename>

If set, produce INDEX IN <tablespacename> statements for all table creations. Sets the target tablespace for all table indexes generated by the metavault.

JavaScript errors detected

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

If this problem persists, please contact our support.