dbt-labs / dbt-athena

The athena adapter plugin for dbt (https://getdbt.com)
https://dbt-athena.github.io
Apache License 2.0
228 stars 100 forks source link

allow setting lakeformation tags in cross account catalogs #753

Open DeltiKron opened 2 weeks ago

DeltiKron commented 2 weeks ago

Is this your first time submitting a feature request?

Describe the feature

I have a use case where i want to set Lake Formation Tags on a table which is part of a database in a different account.

As far as I understand, the adapter always assumes that glue databases and catalog are located in the account from which the query is executed. For me this leads to a LakeFormation error as the adapter creates a database in the query account and attempts to apply LF-Tags the tags to this local Database.

I assume that my usecase should work if the catalogId can be added to the table resource in

https://github.com/dbt-labs/dbt-athena/blob/5db80c7e0017f2e83eead4a3378cb882fd72c2a1/dbt-athena/src/dbt/adapters/athena/lakeformation.py#L50

https://github.com/dbt-labs/dbt-athena/issues/414#issuecomment-1763345252 Describes a similar issue.

Describe alternatives you've considered

No response

Who will this benefit?

Makes the athena adapter more useful for data lake and data mesh applications with multi-account setups.

Are you interested in contributing this feature?

Sure, if the change isn't too much effort. Let me know if you're open to a PR.

Anything else?

Schema for the underlying boto3 call: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lakeformation/client/add_lf_tags_to_resource.html