This guide explains how to configure SYNQ Data Warehouse agent installed on-premise.

When possible use standard integration methods as they are much simpler and provide full functionality.

Reach out to SYNQ for installation details.

Data we collect

For the automated data anomaly testing, we collect the following:

  • Number of rows in every table in the monitored dataset(s)
  • Timestamp of the last change of data in all tables in the monitored dataset(s)

To provide out-of-the-box monitors for volume of data and freshness SYNQ doesn’t require access to your actual data. For custom monitors, SYNQ requires access to query your raw data

Setup DWH Agent integration

  1. In SYNQ, navigate to Data Sources and click “Add integration”

  2. Select “On-premise DWH Agent” from the list of available integrations

  3. Enter a title for your integration (e.g., “Production DWH Agent”)

  4. Click “Create”. You will receive:

    • client_id
    • client_secret

    Save these credentials - you’ll need them to configure the agent in the next section.

Keep your client credentials secure. They allow the agent to authenticate with SYNQ.

Agent Configuration

Agent is configured via agent.yaml file or through environment variables.

Example configuration:

synq:
  client_id: "xxxx-xxxx-xxxx-xxx"
  client_secret: "${SYNQ_CLIENT_SECRET}"
#  endpoint: localhost:8000

connections:
  "pg-local":
    name: "PG Local"
    postgres:
      host: 1.2.3.4
      port: 54320
      username: postgres
      password: ${PG_PASSWORD}
      database: db
      allow_insecure: true

  "bq-nifty-motif-341212":
    bigquery:
      project_id: big-query-project-id
      region: europe-west2

  "ch-staging":
    name: Clickhouse
    clickhouse:
      host: host.clickhouse.cloud
      port: 9440
      username: default
      password: ${STAGING_CLICKHOUSE_PASSWORD}

  "prod-snowflake":
    disabled: true
    snowflake:
      username: "SYNQ"
      password: "${SNOWFLAKE_DWH_PASSSWORD}"
      account: "snowflake-account"
      warehouse: "SYNQ_WH"
      databases: ["DB"]
      role: "SYNQ_ROLE"
      use_get_ddl: true

For details about available options check Config file schema

Config file schema

Config

Config represents the main configuration for the DWH agent

Type: object

PropertyTypeRequiredPossible valuesDescription
agentobjectConfig.AgentAgent configuration
synqobjectConfig.SYNQSYNQ platform configuration
connectionsobjectConfig.ConnectionMap of connection configurations

Config.Agent

Agent contains metadata about this agent instance

Type: object

PropertyTypeRequiredPossible valuesDescription
namestringstringName of the agent instance
tagsarraystringTags to categorize and organize the agent
log_levelstringLOG_LEVEL_UNSPECIFIED LOG_LEVEL_TRACE LOG_LEVEL_DEBUG LOG_LEVEL_INFO LOG_LEVEL_WARN LOG_LEVEL_ERROR
log_jsonbooleanboolean
log_report_callerbooleanboolean

Config.Connection

Connection represents a database connection configuration

Type: object

PropertyTypeRequiredPossible valuesDescription
namestringstringName of the connection
disabledbooleanboolean
parallelismintegerintegerHow many queries to DWH can be executed in parallel, defaults to 2
bigqueryobjectBigQueryConf
clickhouseobjectClickhouseConf
databricksobjectDatabricksConf
mysqlobjectMySQLConf
postgresobjectPostgresConf
redshiftobjectRedshiftConf
snowflakeobjectSnowflakeConf

Config.SYNQ

SYNQ contains authentication and connection details for the SYNQ platform

Type: object

PropertyTypeRequiredPossible valuesDescription
client_idstringstringClient ID for OAuth authentication
client_secretstringstringClient secret for OAuth authentication
endpointstringstringSYNQ API agent endpoint (host:port)
ingest_endpointstringstringSYNQ API ingest endpoint (host:port)
oauth_urlstringstringOAuth authentication URL

BigQueryConf

BigQuery specific configuration

Type: object

PropertyTypeRequiredPossible valuesDescription
project_idstringstringGCP project ID
service_account_keystringstringService account key JSON
service_account_key_filestringstringLocation of service account key file
regionstringstringRegion for BigQuery resources

ClickhouseConf

No description provided for this model.

Type: object

PropertyTypeRequiredPossible valuesDescription
hoststringstringHost address
portintegerintegerPort number
databasestringstringDatabase name
usernamestringstringUsername for authentication
passwordstringstringPassword for authentication
allow_insecurebooleanbooleanWhether to use disable SSL for connection

DatabricksConf

No description provided for this model.

Type: object

PropertyTypeRequiredPossible valuesDescription
workspace_urlstringstring
auth_tokenstringstring
auth_clientstringstring
auth_secretstringstring
warehousestringstring
refresh_table_metricsbooleanboolean
refresh_table_metrics_use_scanbooleanboolean
fetch_table_tagsbooleanboolean
use_show_create_tablebooleanboolean

MySQLConf

MySQL specific configuration

Type: object

PropertyTypeRequiredPossible valuesDescription
hoststringstringHost address
portintegerintegerPort number
databasestringstringDatabase name
usernamestringstringUsername for authentication
passwordstringstringPassword for authentication
allow_insecurebooleanbooleanWhether to allow insecure connections
paramsobjectobjectAdditional connection parameters

PostgresConf

Postgres specific configuration

Type: object

PropertyTypeRequiredPossible valuesDescription
hoststringstringHost address
portintegerintegerPort number
databasestringstringDatabase name
usernamestringstringUsername for authentication
passwordstringstringPassword for authentication
allow_insecurebooleanbooleanWhether to allow insecure connections

RedshiftConf

Redshift specific configuration

Type: object

PropertyTypeRequiredPossible valuesDescription
hoststringstringHost address
portintegerintegerPort number
databasestringstringDatabase name
usernamestringstringUsername for authentication
passwordstringstringPassword for authentication
freshness_from_query_logsbooleanbooleanEstimate table freshness based on query logs

SnowflakeConf

Snowflake specific configuration

Type: object

PropertyTypeRequiredPossible valuesDescription
accountstringstringSnowflake account identifier
warehousestringstringVirtual warehouse to use
rolestringstringRole to assume
usernamestringstringUsername for authentication
passwordstringstringPassword for authentication
private_keystringstringContent of Private key used for Snowflake authentication
databasesarraystringDatabase to connect to
use_get_ddlbooleanbooleanUse GET_DDL to determine queries used for table/view creation