# Clickhouse

ClickHouse is an open-source column-oriented database management system that enables high-performance real-time data analysis. As a development environment in Paradime, ClickHouse enables dbt™️ development from Paradime's **Code IDE.**

{% 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 Code IDE 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 "**dev**". This is the default target your dbt project will use for development work.
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%2FCfeen7hHzM44fRWrPbix%2Fimage.png?alt=media&#x26;token=f2fcdd15-f864-4d80-9966-ee66405c791c" 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>

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.paradime.io/app-help/documentation/settings/connections/development-environment/clickhouse.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
