# Dremio

Dremio is a lakehouse platform that enables high-performance SQL queries directly on data lake storage. Paradime supports connections to both **Dremio Cloud** and **Dremio Software**. As a development environment in Paradime, Dremio 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 %}

### Prerequisites

Dremio offers different authentication methods for Dremio Cloud and Dremio Software deployments. Choose the appropriate method and ensure complete their respective prerequisites.

#### Dremio Cloud

* Access to a Dremio Cloud workspace
* Access to the ID of the Sonar project you want to use. See [Obtaining the ID of a Project](https://docs.dremio.com/cloud/cloud-entities/projects/#obtaining-the-id-of-a-project).
* A valid personal access token (PAT) for authenticating to Dremio Cloud. See [Creating a Token](https://docs.dremio.com/cloud/security/authentication/personal-access-token/#creating-a-token).
* Python 3.9 or later installed on the system that you are running dbt on.

#### Dremio Software

* Dremio Software version 22.0 or later
* Python 3.9 or later installed
* Required support keys enabled in your Dremio cluster (See [Support Keys](https://docs.dremio.com/software/advanced-administration/support-settings/#support-keys) docs for details)
  * `dremio.iceberg.enabled`
  * `dremio.iceberg.ctas.enabled`
  * `dremio.execution.support_unlimited_splits`

### 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 "**Dremio**"
5. In the **Profile Configuration** field, add the following parameters based on your authentication method. Reference the [**Profile Fields Reference**](#profile-fields-reference) section below for additional context and configurations:

{% tabs %}
{% tab title="Dremio Cloud" %}

```yaml
cloud_host: https://api.dremio.cloud      # US Control Plane
cloud_project_id: 12345678                # Sonar project ID
object_storage_source: my_storage         # Filesystem name for objects
object_storage_path: data/analytics       # Filesystem path for objects
dremio_space: analytics_space             # Space for view creation
dremio_space_folder: reports.daily        # Space folder path
pat: drm_cl_1a2b3c4d5e6f                 # Personal access token
use_ssl: true                             # Required for Cloud
user: analyst@company.com                 # Your email
```

{% endtab %}

{% tab title="Dremio Software (Username/Password)" %}

```yaml
software_host: dremio.company.com         # Hostname or IP address
port: 9047                                # Default: 9047
user: dremio_analyst                      # Username
password: your_secure_password            # Password
object_storage_source: company_storage    # Filesystem name for objects
object_storage_path: data/transforms      # Filesystem path for objects
dremio_space: dev_space                   # Space for view creation
dremio_space_folder: testing.models       # Space folder path
threads: 4                                # Number of threads
use_ssl: true                             # Enable SSL
```

{% endtab %}

{% tab title="Dremio Software (Personal Access Token)" %}

```yaml
pat: drm_sw_1a2b3c4d5e6f                 # Token for authentication
port: 9047                                # Port for Dremio Software cluster API endpoints
software_host: dremio.internal.net        # Hostname or IP address of the Dremio coordinator node
object_storage_source: analytics_source    # Name of filesystem for creating tables and views
object_storage_path: production/models     # Path in filesystem for objects
dremio_space: prod_space                  # Dremio space for creating views
dremio_space_folder: models.validated     # Folder path in Dremio space
threads: 4                                # Number of threads for dbt project execution
use_ssl: true                             # Enable/disable SSL connection
user: dremio_prod                         # Username for authentication
```

{% endtab %}
{% endtabs %}

{% 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%2F5UCHauFVPmuDcYJoQqO5%2Fimage.png?alt=media&#x26;token=b826302f-a636-49a5-a7de-94dbf5865ecd" alt=""><figcaption><p>Profile configuration example is for "Dremio Cloud" </p></figcaption></figure>

***

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

{% tabs %}
{% tab title="Common Fields" %}

<table><thead><tr><th width="205">Field</th><th width="185">Description</th><th width="206">Default Value</th><th>Required</th></tr></thead><tbody><tr><td>object_storage_source</td><td>Source name for storing tables and other objects</td><td><code>$scratch</code></td><td>❌</td></tr><tr><td>object_storage_path</td><td>Path within storage for object creation</td><td><code>no_schema</code></td><td>❌</td></tr><tr><td>dremio_space</td><td>Space designation for view creation</td><td><code>@username</code></td><td>❌</td></tr><tr><td>dremio_space_folder</td><td>Folder structure within Dremio space</td><td><code>no_schema</code></td><td>❌</td></tr></tbody></table>
{% endtab %}

{% tab title="Dremio Cloud" %}

<table><thead><tr><th width="178">Field</th><th width="242">Description</th><th width="163">Default Value</th><th>Required</th></tr></thead><tbody><tr><td>cloud_host</td><td>Dremio Cloud API endpoint</td><td><code>https://api.dremio.cloud</code></td><td>✅</td></tr><tr><td>cloud_project_id</td><td>Project identifier in Dremio Cloud</td><td>None</td><td>✅</td></tr><tr><td>user</td><td>Email address for authentication</td><td>None</td><td>✅</td></tr><tr><td>pat</td><td>Authentication token</td><td>None</td><td>✅</td></tr><tr><td>use_ssl</td><td>SSL connection enablement</td><td><code>true</code></td><td>✅</td></tr></tbody></table>
{% endtab %}

{% tab title="Dremio Software " %}

<table><thead><tr><th width="159">Field</th><th width="185">Description</th><th width="206">Default Value</th><th>Required</th></tr></thead><tbody><tr><td>software_host</td><td>Host address of Dremio instance</td><td>None</td><td>✅</td></tr><tr><td>port</td><td>Connection port number</td><td><code>9047</code></td><td>✅</td></tr><tr><td>user</td><td>Authentication username</td><td>None</td><td>✅</td></tr><tr><td>password</td><td>User password (if not using PAT)</td><td>None</td><td>✅*</td></tr><tr><td>pat</td><td>Authentication token (if not using password)</td><td>None</td><td>✅*</td></tr><tr><td>use_ssl</td><td>SSL connection enablement</td><td><code>false</code></td><td>✅</td></tr></tbody></table>

\*: Either password or port must be provided, but not both
{% endtab %}
{% endtabs %}


---

# 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/dremio.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.
