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 ]

此條目有幫助嗎?