Airflow Summit 2026 is coming August 31 - September 2 in Austin, TX. Register now to secure your spot!

airflow.providers.tableau.operators.tableau

Attributes

RESOURCE_CONFLICT_ERROR_CODE

RESOURCES_METHODS

Classes

TableauOperator

Execute a Tableau API Resource.

Module Contents

airflow.providers.tableau.operators.tableau.RESOURCE_CONFLICT_ERROR_CODE = '409093'[source]
airflow.providers.tableau.operators.tableau.RESOURCES_METHODS[source]
class airflow.providers.tableau.operators.tableau.TableauOperator(*, resource, method, find, match_with='id', site_id=None, blocking_refresh=True, check_interval=20, timeout=None, exponential_backoff=False, max_check_interval=None, incremental_refresh=False, skip_on_conflict=False, tableau_conn_id='tableau_default', **kwargs)[source]

Bases: airflow.providers.common.compat.sdk.BaseOperator

Execute a Tableau API Resource.

https://tableau.github.io/server-client-python/docs/api-ref

See also

For more information on how to use this operator, take a look at the guide: TableauOperator

Parameters:
  • resource (str) – The name of the resource to use.

  • method (str) – The name of the resource’s method to execute.

  • find (str) – The reference of resource that will receive the action.

  • match_with (str) – The resource field name to be matched with find parameter.

  • site_id (str | None) – The id of the site where the workbook belongs to.

  • blocking_refresh (bool) – By default will be blocking means it will wait until it has finished.

  • check_interval (float) – time in seconds that the job should wait in between each instance state checks until operation is completed

  • timeout (float | None) – maximum total time in seconds to wait for a blocking refresh to finish before giving up with a TimeoutError. None (the default) waits indefinitely until the job leaves the PENDING state.

  • exponential_backoff (bool) – when True the wait between status checks grows by 50% each time, starting from check_interval, instead of staying fixed.

  • max_check_interval (float | None) – maximum interval in seconds between two consecutive status checks when exponential_backoff is enabled. None leaves the growth uncapped.

  • incremental_refresh (bool) – Whether to perform an incremental refresh instead of a full refresh. Only applies to datasource and workbook refresh operations. Defaults to False (full refresh).

  • skip_on_conflict (bool) – When True, treat a Tableau 409093 Resource Conflict error while triggering a refresh, or while running an extract refresh task, as a skipped task instead of a failure. Raised when a refresh/run for the same resource is already queued or running. Applies to method="refresh" and to method="run" on tasks. Defaults to False, so the conflict fails the task as before.

  • tableau_conn_id (str) – The Tableau Connection id containing the credentials to authenticate to the Tableau Server.

template_fields: collections.abc.Sequence[str] = ('find', 'match_with')[source]
resource[source]
method[source]
find[source]
match_with = 'id'[source]
check_interval = 20[source]
timeout = None[source]
exponential_backoff = False[source]
max_check_interval = None[source]
site_id = None[source]
blocking_refresh = True[source]
incremental_refresh = False[source]
skip_on_conflict = False[source]
tableau_conn_id = 'tableau_default'[source]
execute(context)[source]

Execute the Tableau API resource and push the job id or downloaded file URI to xcom.

Parameters:

context (airflow.providers.common.compat.sdk.Context) – The task context during execution.

Returns:

the id of the job that executes the extract refresh or downloaded file URI.

Return type:

str

Was this entry helpful?