> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# atoti_directquery_snowflake.ConnectionConfig

### *final class* atoti\_directquery\_snowflake.ConnectionConfig

Config to connect to a Snowflake database.

### Example

```pycon theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
>>> import os
>>> from atoti_directquery_snowflake import ConnectionConfig
>>> connection_config = ConnectionConfig(
...     url="jdbc:snowflake://"
...     + os.environ["SNOWFLAKE_ACCOUNT_IDENTIFIER"]
...     + ".snowflakecomputing.com/?user="
...     + os.environ["SNOWFLAKE_USERNAME"],
...     password=os.environ["SNOWFLAKE_PASSWORD"],
... )
>>> external_database = session.connect_to_external_database(connection_config)
```

#### auto\_multi\_column\_array\_conversion *: [AutoMultiColumnArrayConversion](./atoti.directquery.array_conversion.auto_multi_column_array_conversion#atoti.AutoMultiColumnArrayConversion) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

When not `None`, multi-column array conversion will be performed automatically.

#### cache *: [bool](https://docs.python.org/3/library/functions.html#bool)* *= True*

Whether to look for query results in the external database query cache.

#### column\_clustered\_queries *: 'all' | 'feeding'* *= 'feeding'*

Control which queries will use clustering columns.

#### feeding\_query\_timeout *: Duration* *= datetime.timedelta(seconds=3600)*

Timeout for queries performed on the external database during feeding phases.

The feeding phases are:

* the initial load to feed [`aggregate_providers`](./atoti.Cube.aggregate_providers#atoti.Cube.aggregate_providers) and [`hierarchies`](./atoti.Cube.hierarchies#atoti.Cube.hierarchies);
* the refresh operations.

#### feeding\_warehouse\_name *: [str](https://docs.python.org/3/library/stdtypes.html#str) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

The name of the warehouse to use for the initial feeding.

If `None`, the main warehouse will be used.

#### lookup\_mode *: 'allow' | 'warn' | 'deny'* *= 'warn'*

Whether lookup queries on the external database are allowed.

Lookup can be very slow and expensive as the database may not enforce primary keys.

#### main\_warehouse\_name *: [str](https://docs.python.org/3/library/stdtypes.html#str) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

The name of the warehouse to use for all other queries than the ones handled by the [`feeding warehouse`](#atoti_directquery_snowflake.ConnectionConfig.feeding_warehouse_name).

If `None`, the warehouse defined in :attr: url will be used.
If :attr: url does not specify a warehouse, the user’s default warehouse will be used.

#### max\_sub\_queries *: Annotated\[[int](https://docs.python.org/3/library/functions.html#int), Field(gt=0)]* *= 500*

Maximum number of sub queries performed when splitting a query into multi-step queries.

#### password *: [str](https://docs.python.org/3/library/stdtypes.html#str) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

The password to connect to the database.

Passing it in this separate attribute prevents it from being logged alongside the connection string.

If `None`, a password is expected to be present in [`url`](#atoti_directquery_snowflake.ConnectionConfig.url).

#### query\_timeout *: Duration* *= datetime.timedelta(seconds=300)*

Timeout for queries performed on the external database outside feeding phases.

#### time\_travel *: [bool](https://docs.python.org/3/library/functions.html#bool)* *= True*

Whether to use time travel in queries.

#### url *: [str](https://docs.python.org/3/library/stdtypes.html#str)*

The JDBC connection string.

If [`feeding_warehouse_name`](#atoti_directquery_snowflake.ConnectionConfig.feeding_warehouse_name) is not `None`, the warehouse cannot be specified in the URL.

See [https://docs.snowflake.com/en/user-guide/jdbc-configure.html#jdbc-driver-connection-string](https://docs.snowflake.com/en/user-guide/jdbc-configure.html#jdbc-driver-connection-string) for more information.
