ClickhouseUserPassword#
Maps Airflow generic connections using user + password authentication to dbt Clickhouse profiles.
https://docs.getdbt.com/docs/core/connect-data-platform/clickhouse-setup
This profile mapping translates Airflow connections with the type generic
into dbt profiles. To use this profile, import it from cosmos.profiles
:
from cosmos.profiles import ClickhouseUserPasswordProfileMapping
profile = ClickhouseUserPasswordProfileMapping(
conn_id = 'my_generic_connection',
profile_args = { ... },
)
While the profile mapping pulls fields from Airflow connections, you may need to supplement it
with additional profile_args
. The below table shows which fields are required, along with those
not required but pulled from the Airflow connection if present. You can also add additional fields
to the profile_args
dict.
dbt Field Name |
Required |
Airflow Field Name |
---|---|---|
|
True |
|
|
True |
|
|
False |
|
|
False |
|
|
True |
|
|
True |
|
Some notes about the table above:
This table doesn’t necessarily show the full list of fields you can pass to the dbt profile. To see the full list of fields, see the link to the dbt docs at the top of this page.
If the Airflow field name starts with an
extra.
, this means that the field is nested under theextra
field in the Airflow connection. For example, if the Airflow field name isextra.token
, this means that the field is nested underextra
in the Airflow connection, and the field name istoken
.If there are multiple Airflow field names, the profile mapping looks at those fields in order. For example, if the Airflow field name is
['password', 'extra.token']
, the profile mapping will first look for a field namedpassword
. If that field is not present, it will look forextra.token
.