astro.sql.operators.merge
Module Contents
Classes
Merge the source table rows into a destination table. |
Functions
|
Merge the source table rows into a destination table. |
- class astro.sql.operators.merge.MergeOperator(*, target_table, source_table, columns, if_conflicts, target_conflict_columns, task_id='', **kwargs)
Bases:
airflow.models.baseoperator.BaseOperator
Merge the source table rows into a destination table.
- Parameters
source_table (astro.sql.table.Table) – Contains the rows to be merged to the target_table (templated)
target_table (astro.sql.table.Table) – Contains the destination table in which the rows will be merged (templated)
columns (list[str] | tuple[str] | dict[str, str]) – List/Tuple of columns if name of source and target tables are same. If the column names in source and target tables are different pass a dictionary of source_table columns names to target_table columns names. Examples:
["sell", "list"]
or{"s_sell": "t_sell", "s_list": "t_list"}
target_conflict_columns (list[str]) – List of cols where we expect to have a conflict while combining
if_conflicts (astro.constants.MergeConflictStrategy) – The strategy to be applied if there are conflicts.
task_id (str) –
kwargs (Any) –
- template_fields = ['target_table', 'source_table']
- execute(context)
This is the main method to derive when creating an operator. Context is the same dictionary used as when rendering jinja templates.
Refer to get_template_context for more context.
- Parameters
context (dict) –
- Return type
- astro.sql.operators.merge.merge(*, target_table, source_table, columns, target_conflict_columns, if_conflicts, **kwargs)
Merge the source table rows into a destination table.
- Parameters
source_table (astro.sql.table.Table) – Contains the rows to be merged to the target_table (templated)
target_table (astro.sql.table.Table) – Contains the destination table in which the rows will be merged (templated)
columns (list[str] | tuple[str] | dict[str, str]) – List/Tuple of columns if name of source and target tables are same. If the column names in source and target tables are different pass a dictionary of source_table columns names to target_table columns names. Examples:
["sell", "list"]
or{"s_sell": "t_sell", "s_list": "t_list"}
target_conflict_columns (list[str]) – List of cols where we expect to have a conflict while combining
if_conflicts (astro.constants.MergeConflictStrategy) – The strategy to be applied if there are conflicts.
kwargs (Any) – Any keyword arguments supported by the BaseOperator is supported (e.g
queue
,owner
)
- Return type
airflow.models.xcom_arg.XComArg