airflow.providers.amazon.aws.operators.glue

GlueJobOperator

创建一个 AWS Glue 作业。

GlueDataQualityOperator

创建一个将 DQDL 规则应用于指定 Glue 表的数据质量规则集。

GlueDataQualityRuleSetEvaluationRunOperator

针对数据源(Glue 表)评估规则集。

GlueDataQualityRuleRecommendationRunOperator

启动一个用于生成规则的推荐运行,Glue Data Quality 会分析数据并提供潜在规则集的建议。

模块内容

class airflow.providers.amazon.aws.operators.glue.GlueJobOperator(*, job_name='aws_glue_default_job', job_desc='AWS Glue Job with Airflow', script_location=None, concurrent_run_limit=None, script_args=None, retry_limit=0, num_of_dpus=None, aws_conn_id='aws_default', region_name=None, s3_bucket=None, iam_role_name=None, iam_role_arn=None, create_job_kwargs=None, run_job_kwargs=None, wait_for_completion=True, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), verbose=False, replace_script_file=False, update_config=False, job_poll_interval=6, stop_job_run_on_kill=False, sleep_before_return=0, **kwargs)[source]

基类: airflow.models.BaseOperator

创建一个 AWS Glue 作业。

AWS Glue 是一种无服务器 Spark ETL 服务,用于在 AWS 云上运行 Spark 作业。支持语言:Python 和 Scala。

另请参阅

有关如何使用此运算符的更多信息,请参阅指南:提交 AWS Glue 作业

参数:
  • job_name (str) – 每个 AWS 账户唯一的作业名称

  • script_location (str | None) – ETL 脚本的位置。必须是本地路径或 S3 路径

  • job_desc (str) – 作业描述详情

  • concurrent_run_limit (int | None) – 允许作业的最大并发运行次数

  • script_args (dict | None) – etl 脚本参数和 AWS Glue 参数(模板化)

  • retry_limit (int) – 作业失败时的最大重试次数

  • num_of_dpus (int | float | None) – 分配给此作业的 AWS Glue DPU 数量。

  • region_name (str | None) – AWS 区域名称(例如:us-east-1)

  • s3_bucket (str | None) – 用于上传日志和本地 etl 脚本的 S3 存储桶

  • iam_role_name (str | None) – 用于 Glue 作业执行的 AWS IAM 角色。如果设置此项,则 iam_role_arn 必须为 None。

  • iam_role_arn (str | None) – 用于 Glue 作业执行的 AWS IAM ARN。如果设置此项,则 iam_role_name 必须为 None。

  • create_job_kwargs (dict | None) – Glue 作业创建的额外参数

  • run_job_kwargs (dict | None) – Glue 作业运行的额外参数

  • wait_for_completion (bool) – 是否等待作业运行完成。(默认值:True)

  • deferrable (bool) – 如果为 True,运算符将异步等待作业完成。这意味着等待完成。此模式需要安装 aiobotocore 模块。(默认值:False)

  • verbose (bool) – 如果为 True,则 Glue 作业运行日志将显示在 Airflow 任务日志中。(默认值:False)

  • update_config (bool) – 如果为 True,运算符将更新作业配置。(默认值:False)

  • replace_script_file (bool) – 如果为 True,脚本文件将在 S3 中被替换。(默认值:False)

  • stop_job_run_on_kill (bool) – 如果为 True,当任务被终止时,运算符将停止作业运行。

  • sleep_before_return (int) – 返回最终状态前等待的秒数。这在限制并发运行时非常重要,Glue 需要 5-10 秒来清理资源。因此,如果立即返回状态,可能会导致出现超过 1 个并发运行的情况。建议在使用 concurrency=1 时将此参数设置为 10。更多信息请参阅:https://repost.aws/questions/QUaKgpLBMPSGWO0iq2Fob_bw/glue-run-concurrent-jobs#ANFpCL2fRnQRqgDFuIU_rpvA

template_fields: collections.abc.Sequence[str] = ('job_name', 'script_location', 'script_args', 'create_job_kwargs', 'run_job_kwargs',...[source]
template_ext: collections.abc.Sequence[str] = ()[source]
template_fields_renderers[source]
ui_color = '#ededed'[source]
job_name = 'aws_glue_default_job'[source]
job_desc = 'AWS Glue Job with Airflow'[source]
script_location = None[source]
concurrent_run_limit = 1[source]
script_args[source]
retry_limit = 0[source]
num_of_dpus = None[source]
aws_conn_id = 'aws_default'[source]
region_name = None[source]
s3_bucket = None[source]
iam_role_name = None[source]
iam_role_arn = None[source]
s3_protocol = 's3://'[source]
s3_artifacts_prefix = 'artifacts/glue-scripts/'[source]
create_job_kwargs = None[source]
run_job_kwargs[source]
wait_for_completion = True[source]
verbose = False[source]
update_config = False[source]
replace_script_file = False[source]
deferrable = True[source]
job_poll_interval = 6[source]
stop_job_run_on_kill = False[source]
sleep_before_return: int = 0[source]
property glue_job_hook: airflow.providers.amazon.aws.hooks.glue.GlueJobHook[source]
execute(context)[source]

从 Airflow 执行 AWS Glue 作业。

返回值:

当前的 Glue 作业 ID。

execute_complete(context, event=None)[source]
on_kill()[source]

取消正在运行的 AWS Glue 作业。

class airflow.providers.amazon.aws.operators.glue.GlueDataQualityOperator(*, name, ruleset, description='AWS Glue Data Quality Rule Set With Airflow', update_rule_set=False, data_quality_ruleset_kwargs=None, aws_conn_id='aws_default', **kwargs)[source]

基类: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.glue.GlueDataQualityHook]

创建一个将 DQDL 规则应用于指定 Glue 表的数据质量规则集。

另请参阅

有关如何使用此运算符的更多信息,请参阅指南:创建 AWS Glue 数据质量

参数:
  • name (str) – 数据质量规则集的唯一名称。

  • ruleset (str) – 数据质量定义语言 (DQDL) 规则集。更多信息请参阅 Glue 开发者指南。

  • description (str) – 数据质量规则集的描述。

  • update_rule_set (bool) – 要更新现有规则集,请将此标志设置为 True。(默认值:False)

  • data_quality_ruleset_kwargs (dict | None) – RuleSet 的额外参数。

  • aws_conn_id (str | None) – 用于 AWS 凭证的 Airflow 连接。如果为 None 或为空,则使用默认的 boto3 行为。如果 Airflow 以分布式方式运行且 aws_conn_id 为 None 或为空,则将使用默认的 boto3 配置(且必须在每个工作节点上维护)。

  • region_name – AWS 区域名称。如果未指定,则使用默认的 boto3 行为。

  • verify – 是否验证 SSL 证书。请参阅:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • botocore_config – 用于 botocore 客户端的配置字典(键值对)。请参阅:https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

aws_hook_class[source]
template_fields: collections.abc.Sequence[str] = ('name', 'ruleset', 'description', 'data_quality_ruleset_kwargs')[source]
template_fields_renderers[source]
ui_color = '#ededed'[source]
name[source]
ruleset[source]
description = 'AWS Glue Data Quality Rule Set With Airflow'[source]
update_rule_set = False[source]
data_quality_ruleset_kwargs[source]
aws_conn_id = 'aws_default'[source]
validate_inputs()[source]
execute(context)[source]

创建操作符时派生。

上下文与渲染 Jinja 模板时使用的字典相同。

有关更多上下文,请参阅 get_template_context。

airflow.providers.amazon.aws.operators.glue.GlueDataQualityRuleSetEvaluationRunOperator(*, datasource, role, rule_set_names, number_of_workers=5, timeout=2880, verify_result_status=True, show_results=True, rule_set_evaluation_run_kwargs=None, wait_for_completion=True, waiter_delay=60, waiter_max_attempts=20, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), aws_conn_id='aws_default', **kwargs)[source]

基类: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.glue.GlueDataQualityHook]

针对数据源(Glue 表)评估规则集。

另请参阅

有关如何使用此操作符的更多信息,请参阅指南:启动 AWS Glue 数据质量评估运行

参数:
  • datasource (dict) – 与此运行相关联的数据源(Glue 表)。 (模板化)

  • role (str) – 用于作业执行的 IAM 角色。 (模板化)

  • rule_set_names (list[str]) – 要评估的规则集名称列表。 (模板化)

  • number_of_workers (int) – 运行中使用的 G.1X worker 数量。 (默认值:5)

  • timeout (int) – 运行的超时时间(分钟)。这是运行在终止并进入 TIMEOUT 状态之前可以消耗资源的最长时间。 (默认值:2,880)

  • verify_result_status (bool) – 验证所有规则集规则评估运行结果,如果任何规则状态为 Fail 或 Error,则抛出异常。 (默认值:True)

  • show_results (bool) – 显示所有规则集规则评估运行结果。 (默认值:True)

  • rule_set_evaluation_run_kwargs (dict[str, Any] | None) – 评估运行的额外参数。 (模板化)

  • wait_for_completion (bool) – 是否等待作业停止。 (默认值:True)

  • waiter_delay (int) – 检查状态之间等待的秒数。 (默认值:60)

  • waiter_max_attempts (int) – 检查作业完成情况的最大尝试次数。 (默认值:20)

  • deferrable (bool) – 如果为 True,操作符将异步等待作业停止。这意味着等待完成。此模式需要安装 aiobotocore 模块。 (默认值:False)

  • aws_conn_id (str | None) – 用于 AWS 凭证的 Airflow 连接。如果为 None 或为空,则使用默认的 boto3 行为。如果 Airflow 以分布式方式运行且 aws_conn_id 为 None 或为空,则将使用默认的 boto3 配置(且必须在每个工作节点上维护)。

  • region_name – AWS 区域名称。如果未指定,则使用默认的 boto3 行为。

  • verify – 是否验证 SSL 证书。请参阅:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • botocore_config – 用于 botocore 客户端的配置字典(键值对)。请参阅:https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

aws_hook_class[source]
template_fields: collections.abc.Sequence[str] = ('datasource', 'role', 'rule_set_names', 'rule_set_evaluation_run_kwargs')[source]
template_fields_renderers[source]
ui_color = '#ededed'[source]
datasource[source]
role[source]
rule_set_names[source]
number_of_workers = 5[source]
timeout = 2880[source]
verify_result_status = True[source]
show_results = True[source]
rule_set_evaluation_run_kwargs[source]
wait_for_completion = True[source]
waiter_delay = 60[source]
waiter_max_attempts = 20[source]
deferrable = True[source]
aws_conn_id = 'aws_default'[source]
validate_inputs()[source]
execute(context)[source]

创建操作符时派生。

上下文与渲染 Jinja 模板时使用的字典相同。

有关更多上下文,请参阅 get_template_context。

execute_complete(context, event=None)[source]
airflow.providers.amazon.aws.operators.glue.GlueDataQualityRuleRecommendationRunOperator(*, datasource, role, number_of_workers=5, timeout=2880, show_results=True, recommendation_run_kwargs=None, wait_for_completion=True, waiter_delay=60, waiter_max_attempts=20, deferrable=conf.getboolean('operators', 'default_deferrable', fallback=False), aws_conn_id='aws_default', **kwargs)[source]

基类: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.glue.GlueDataQualityHook]

启动一个用于生成规则的推荐运行,Glue Data Quality 会分析数据并提供潜在规则集的建议。

建议运行会在 90 天后自动删除。

另请参阅

有关如何使用此操作符的更多信息,请参阅指南:启动 AWS Glue 数据质量建议运行

参数:
  • datasource (dict) – 与此运行相关联的数据源(Glue 表)。 (模板化)

  • role (str) – 用于作业执行的 IAM 角色。 (模板化)

  • number_of_workers (int) – 运行中使用的 G.1X worker 数量。 (默认值:5)

  • timeout (int) – 运行的超时时间(分钟)。这是运行在终止并进入 TIMEOUT 状态之前可以消耗资源的最长时间。 (默认值:2,880)

  • show_results (bool) – 推荐运行完成后,显示推荐的规则集(一组规则)。 (默认值:True)

  • recommendation_run_kwargs (dict[str, Any] | None) – 建议运行的额外参数。 (模板化)

  • wait_for_completion (bool) – 是否等待作业停止。 (默认值:True)

  • waiter_delay (int) – 检查状态之间等待的秒数。 (默认值:60)

  • waiter_max_attempts (int) – 检查作业完成情况的最大尝试次数。 (默认值:20)

  • deferrable (bool) – 如果为 True,操作符将异步等待作业停止。这意味着等待完成。此模式需要安装 aiobotocore 模块。 (默认值:False)

  • aws_conn_id (str | None) – 用于 AWS 凭证的 Airflow 连接。如果为 None 或为空,则使用默认的 boto3 行为。如果 Airflow 以分布式方式运行且 aws_conn_id 为 None 或为空,则将使用默认的 boto3 配置(且必须在每个工作节点上维护)。

  • region_name – AWS 区域名称。如果未指定,则使用默认的 boto3 行为。

  • verify – 是否验证 SSL 证书。请参阅:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • botocore_config – 用于 botocore 客户端的配置字典(键值对)。请参阅:https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

aws_hook_class[source]
template_fields: collections.abc.Sequence[str] = ('datasource', 'role', 'recommendation_run_kwargs')[source]
template_fields_renderers[source]
ui_color = '#ededed'[source]
datasource[source]
role[source]
number_of_workers = 5[source]
timeout = 2880[source]
show_results = True[source]
recommendation_run_kwargs[source]
wait_for_completion = True[source]
waiter_delay = 60[source]
waiter_max_attempts = 20[source]
deferrable = True[source]
aws_conn_id = 'aws_default'[source]
execute(context)[source]

创建操作符时派生。

上下文与渲染 Jinja 模板时使用的字典相同。

有关更多上下文,请参阅 get_template_context。

execute_complete(context, event=None)[source]

此条目有帮助吗?