# Clickhouse

ClickHouse is an open-source column-oriented database management system that enables high-performance real-time data analysis. As a scheduler environment in Paradime, ClickHouse enables deploying dbt™ in production with [Bolt](https://docs.paradime.io/app-help/documentation/bolt).

{% hint style="warning" %}
**IP RESTRICTIONS**

Make sure to allow traffic from one of the Paradime IPs in your firewall depending on the data location selected.

👉 See also: [Paradime IP addresses](https://docs.paradime.io/app-help/developers/ip-restrictions).
{% endhint %}

### Setup Instructions

1. Click **Settings** in the top menu bar of the Paradime interface to access **Account Settings**
2. In the left sidebar, click "**Connections**"
3. Click "**Add New**" next to the **Bolt Schedules** section
4. Select "**Clickhouse**"
5. In the **Profile Configuration** field, add at least these required parameters. For additional configuration options, see the [Profile Fields Reference ](#profile-fields-reference)section below:

```yaml
schema: dbt_transformations                    # Production database
host: clickhouse.internal.company.com          # Internal hostname
port: 9000                                     # Native protocol port
user: dbt_user                                 # Database user
password: clickhouse_pass_456                  # User password
secure: false                                  # Internal traffic
driver: native                                 # Native protocol
```

{% hint style="info" %}
After adding the configuration, ensure it's properly formatted using a YAML formatter like [YAML Formatter](https://jsonformatter.org/yaml-formatter).
{% endhint %}

6. Provide a dbt™ **Profile Name** (This should match with the profile name set in your `dbt_project.yml`).
7. In the **Target** field, enter "**`prod`**". This is the default target your dbt™ project will use for your [Bolt Schedules.](https://docs.paradime.io/app-help/documentation/bolt)
8. The **Threads** value is pre-configured to 1, but you can adjust this number to specify how many parallel operations your dbt project can run.

***

### Example Profile Configuration

<figure><img src="https://2337193041-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHET0AD04uHMgdeLAjptq%2Fuploads%2FhqX26jYH9xFmwZceQkBx%2Fimage.png?alt=media&#x26;token=dee5efa2-6a13-4b3f-9e02-633b32650106" alt=""><figcaption></figcaption></figure>

***

### Profile Fields Reference[​](https://docs.getdbt.com/docs/core/connect-data-platform/clickhouse-setup#description-of-clickhouse-profile-fields)

<table><thead><tr><th width="206">Field</th><th width="234">Description</th><th width="167">Default Value</th><th width="121">Required</th></tr></thead><tbody><tr><td><code>schema</code></td><td>ClickHouse database name for models.<br><br>This is configured in the UI "Schema" field</td><td>None</td><td><code>✅</code></td></tr><tr><td><code>driver</code></td><td>Connection protocol (http or native)</td><td><code>http</code></td><td>❌</td></tr><tr><td><code>host</code></td><td>ClickHouse server hostname</td><td><code>localhost</code></td><td>❌</td></tr><tr><td><code>port</code></td><td>Connection port number</td><td><ul><li>http: <code>8123/8443</code></li><li>native: <code>9000/9440</code></li></ul></td><td>❌</td></tr><tr><td><code>user</code></td><td>Database user name</td><td>None</td><td><code>✅</code></td></tr><tr><td><code>password</code></td><td>Database user password</td><td>None</td><td><code>✅</code></td></tr><tr><td><code>cluster</code></td><td>Name of ClickHouse cluster for distributed operations</td><td>None</td><td>❌</td></tr><tr><td><code>verify</code></td><td>Whether to validate TLS certificate</td><td><code>True</code></td><td>❌</td></tr><tr><td><code>secure</code></td><td>Enable TLS/HTTPS connections</td><td><code>False</code></td><td>❌</td></tr><tr><td><code>retries</code></td><td>Number of connection retry attempts</td><td>None</td><td>❌</td></tr><tr><td><code>compression</code></td><td>Type of data compression to use</td><td><code>False</code></td><td>❌</td></tr><tr><td><code>connect_timeout</code></td><td>Seconds to wait for connection</td><td><code>10</code></td><td>❌</td></tr><tr><td><code>send_receive_timeout</code></td><td>Seconds to wait for data transfer</td><td><code>300</code> (5 minutes)</td><td>❌</td></tr><tr><td><code>cluster_mode</code></td><td>Settings for replicated databases</td><td><code>False</code></td><td>❌</td></tr><tr><td><code>use_lw_deletes</code></td><td>Enable lightweight delete operations</td><td><code>False</code></td><td>❌</td></tr><tr><td><code>check_exchange</code></td><td>Check support for atomic table exchange</td><td><code>True</code></td><td>❌</td></tr><tr><td><code>local_suffix</code></td><td>Suffix for local table names</td><td><code>_local</code></td><td>❌</td></tr><tr><td><code>local_db_prefix</code></td><td>Prefix for local database names</td><td>None</td><td>❌</td></tr><tr><td><code>allow_automatic_deduplication</code></td><td>Enable automatic data deduplication</td><td><code>False</code></td><td>❌</td></tr></tbody></table>

***
