# Dremio

### Connection configuration reference

{% hint style="info" %}
Make sure you have installed the **latest version of** [**`soda-core`**](https://docs.soda.io/release-notes-legacy/soda-core-release-notes).
{% endhint %}

Install the following package:

{% code overflow="wrap" %}

```bash
pip install "soda-dremio" -i "https://${SODA_CLOUD_API_KEY_ID}:${SODA_CLOUD_API_KEY_SECRET}@enterprise.pypi.soda.io/simple"
```

{% endcode %}

* `${SODA_CLOUD_API_KEY_ID}` and `${SODA_CLOUD_API_KEY_SECRET}` are environment variables that you should store with your API Key ID and API Key Secret, respectively.

{% hint style="info" %}
Learn how to [generate API keys](https://docs.soda.io/reference/generate-api-keys).
{% endhint %}

* For US host users, use `@enterprise.pypi.us.soda.io`\
  For EU host users, use `@enterprise.pypi.soda.io`

#### Data source YAML

{% code title="ds\_config.yml" %}

```yaml
type: dremio
name: my_dremio
connection:
  # Required
  host: ${env.DREMIO_HOST}
  port: ${env.DREMIO_PORT}
  username: ${env.DREMIO_USERNAME}
  password: ${env.DREMIO_PASSWORD}

  # Optional
  # schema: ${env.DREMIO_SCHEMA}                     # schema / space that contains your datasets
  # use_encryption: "true"                           # "false" by default; enable TLS by setting "true"
  # disable_certificate_verification: "true"         # "false" by default; set "true" to skip TLS cert checks

```

{% endcode %}

#### Connection test

Test the data source connection:

```bash
soda data-source test -ds ds_config.yml
```

### Limitations & edge cases

* Dremio does not fully support schema evolution in the same way other data sources do it. Tables are still versioned, but Soda cannot create views that point to the latest data.
* Soda does not support Dremio schemas with `.` in their name.

{% if  %}

* Diagnostics Warehouse: When enabling **Diagnostics Warehouse advanced configuration > Allow failed row collection** during [Diagnostics Warehouse setup](https://docs.soda.io/reference/data-source-reference-for-soda-core/broken-reference):
  * A **schema configuration** must be provided. Dremio requires a top level ID of a configured writable data source (e.g. `s3_instance.folder1.soda_diagnostics`, `gcp_instance.soda_diagnostics`). This field defaults to `soda_diagnostics` and will fail if left with that value.<br>

    <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>The examples above (<code>s3_instance.folder1.soda_diagnostics</code>, <code>gcp_instance.soda_diagnostics</code>) look like <strong>object storage paths</strong> because, generally, <strong>databases are not writable from Dremio</strong>, and object storage is.</p></div>

{% endif %}

<br>

***

{% if (visitor.claims.plan === 'datasetStandard')%}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Free license** documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}

{% if (visitor.claims.plan === 'enterprise')%}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Team license** documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}

{% if (visitor.claims.plan === 'enterpriseUserBased')%}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Enterprise license** documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}

{% if !(visitor.claims.plan === 'enterprise' || visitor.claims.plan === 'enterpriseUserBased' || visitor.claims.plan === 'datasetStandard')%}
{% hint style="info" %}
You are **not logged in to Soda** and are viewing the default public documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}


---

# 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.soda.io/reference/data-source-reference-for-soda-core/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.
