airflow.providers.amazon.aws.hooks.glue

属性

DEFAULT_LOG_SUFFIX

ERROR_LOG_SUFFIX

GlueJobHook

与 AWS Glue 交互。

GlueDataQualityHook

与 AWS Glue Data Quality 交互。

模块内容

airflow.providers.amazon.aws.hooks.glue.DEFAULT_LOG_SUFFIX = 'output'[source]
airflow.providers.amazon.aws.hooks.glue.ERROR_LOG_SUFFIX = 'error'[source]
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)[source]

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

与 AWS Glue 交互。

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

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

  • 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 Role ARN,如果设置,iam_role_name 必须为 None。

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

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

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

class LogContinuationTokens[source]

用于在读取 Glue 作业写入的两个流的日志时保存续传令牌。

output_stream_continuation: str | None = None[source]
error_stream_continuation: str | None = None[source]
job_name = None[source]
desc = None[source]
concurrent_run_limit = 1[source]
script_location = None[source]
retry_limit = 0[source]
s3_bucket = None[source]
role_name = None[source]
role_arn = None[source]
s3_glue_logs = 'logs/glue-logs/'[source]
create_job_kwargs[source]
update_config = False[source]
job_poll_interval = 6[source]
create_glue_job_config()[source]
describe_jobs()[source]

获取作业列表。

另请参阅

list_jobs()[source]

获取作业列表。

自版本 - 起已弃用:请改用 describe_jobs()

get_iam_execution_role()[source]
initialize_job(script_arguments=None, run_kwargs=None)[source]

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

get_job_state(job_name, run_id)[source]

获取 Glue 作业的状态;作业状态可以是运行中、已完成、失败、已停止或超时。

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

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

返回:

Glue 作业的状态

返回类型:

str

async async_get_job_state(job_name, run_id)[source]

获取 Glue 作业的状态;作业状态可以是运行中、已完成、失败、已停止或超时。

get_job_state 的异步版本。

property logs_hook[source]

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

print_job_logs(job_name, run_id, continuation_tokens)[source]

将最新的作业日志打印到 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,更多 Glue 作业运行日志会显示在 Airflow 任务日志中。(默认值: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,更多 Glue 作业运行日志会显示在 Airflow 任务日志中。(默认值: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 Data Quality 交互。

提供围绕 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) 格式。

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

此条目有帮助吗?