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]

此條目有幫助嗎?