airflow.providers.amazon.aws.hooks.glue

模块内容

GlueJobHook

与 AWS Glue 交互。

GlueDataQualityHook

与 AWS Glue 数据质量交互。

属性

DEFAULT_LOG_SUFFIX

ERROR_LOG_SUFFIX

airflow.providers.amazon.aws.hooks.glue.DEFAULT_LOG_SUFFIX = 'output'[源代码]
airflow.providers.amazon.aws.hooks.glue.ERROR_LOG_SUFFIX = 'error'[源代码]
class airflow.providers.amazon.aws.hooks.glue.GlueJobHook(s3_bucket=None, job_name=None, desc=None, concurrent_run_limit=1, script_location=None, retry_limit=0, num_of_dpus=None, iam_role_name=None, iam_role_arn=None, create_job_kwargs=None, update_config=False, job_poll_interval=6, *args, **kwargs)[源代码]

基类: airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook

与 AWS Glue 交互。

提供围绕 boto3.client("glue") 的厚封装器。

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

  • job_name (str | None) – 每个 AWS 帐户唯一的作业名称

  • desc (str | None) – 作业描述

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

  • script_location (str | None) – s3 上 etl 脚本的路径

  • retry_limit (int) – 如果作业失败,则重试该作业的最大次数

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

  • region_name – aws 区域名称(例如:us-east-1)

  • 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 作业创建的额外参数

  • update_config (bool) – 在 Glue 上更新作业配置(默认值:False)

可以指定其他参数(例如 aws_conn_id),并将其传递给底层的 AwsBaseHook。

class LogContinuationTokens[源代码]

用于保存从 Glue Jobs 写入的两个流读取日志时的延续令牌。

create_glue_job_config()[源代码]
list_jobs()[源代码]

获取作业列表。

另请参阅

get_iam_execution_role()[源代码]
initialize_job(script_arguments=None, run_kwargs=None)[源代码]

初始化与 AWS Glue 的连接以运行作业。

get_job_state(job_name, run_id)[源代码]

获取 Glue 作业的状态;作业状态可以是 running、finished、failed、stopped 或 timeout。

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

  • run_id (str) – 前置作业运行的作业运行 ID

返回

Glue 作业的状态

返回类型

str

async async_get_job_state(job_name, run_id)[源代码]

获取 Glue 作业的状态;作业状态可以是 running、finished、failed、stopped 或 timeout。

get_job_state 的异步版本。

logs_hook()[源代码]

返回一个 AwsLogsHook,该 AwsLogsHook 使用 GlueJobHook 的参数实例化。

print_job_logs(job_name, run_id, continuation_tokens)[源代码]

将最新的作业日志打印到 Airflow 任务日志中,并更新续传令牌。

参数

continuation_tokens (LogContinuationTokens) – 读取日志时从哪里恢复的令牌。此方法会使用新令牌更新该对象。

job_completion(job_name, run_id, verbose=False, sleep_before_return=0)[source]

等待具有 job_name 的 Glue 作业完成;如果完成则返回最终状态,否则引发 AirflowException。

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

  • run_id (str) – 前置作业运行的作业运行 ID

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

  • sleep_before_return (int) – 返回最终状态前等待的时间(以秒为单位)。

返回

JobRunState 和 JobRunId 的字典

返回类型

dict[str, str]

async async_job_completion(job_name, run_id, verbose=False)[source]

等待具有 job_name 的 Glue 作业完成;如果完成则返回最终状态,否则引发 AirflowException。

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

  • run_id (str) – 前置作业运行的作业运行 ID

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

返回

JobRunState 和 JobRunId 的字典

返回类型

dict[str, str]

has_job(job_name)[source]

检查作业是否已存在。

另请参阅

参数

job_name – 每个 AWS 账户唯一的作业名称

返回

如果作业已存在则返回 True,否则返回 False。

返回类型

bool

update_job(**job_kwargs)[source]

更新作业配置。

参数

job_kwargs – 用于定义作业配置的关键字参数

返回

如果作业已更新则为 True,否则为 False

返回类型

bool

get_or_create_glue_job()[source]

获取(或创建)并返回作业名称。

返回值:作业名称

create_or_update_glue_job()[source]

创建(或更新)并返回作业名称。

返回值:作业名称

class airflow.providers.amazon.aws.hooks.glue.GlueDataQualityHook(*args, **kwargs)[source]

基类: airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook

与 AWS Glue 数据质量交互。

提供围绕 boto3.client("glue") 的厚封装器。

可以指定其他参数(例如 aws_conn_id),并将其传递给底层的 AwsBaseHook。

has_data_quality_ruleset(name)[source]
get_evaluation_run_results(run_id)[source]
validate_evaluation_run_results(evaluation_run_id, show_results=True, verify_result_status=True)[source]
log_recommendation_results(run_id)[source]

打印推荐运行的结果,推荐运行会针对数据源(Glue 表)生成多种数据质量定义语言 (DQDL) 格式的规则。

规则 = [ IsComplete “NAME”, ColumnLength “EMP_ID” between 1 and 12, IsUnique “EMP_ID”, ColumnValues “INCOME” > 50000 ]

此条目是否有帮助?