הגדרת מדיניות שמירת נתונים במסד נתונים

Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)

בדף הזה מוסבר איך להגדיר מדיניות שמירת נתונים למסד הנתונים של Airflow, כך שרשומות ישנות יוסרו ממנו באופן אוטומטי. כך אפשר לשמור על הגודל של מסד הנתונים של Airflow.

מדיניות שמירת נתונים במסד נתונים זמינה רק ב-Managed Airflow (דור 3).

מידע על שמירת נתונים במסד נתונים

עם הזמן, מסד הנתונים של Airflow בסביבה שלכם מאחסן יותר ויותר נתונים. הנתונים האלה כוללים מידע ויומנים שקשורים להפעלות קודמות של DAG, למשימות ולפעולות אחרות של Airflow.

אם הגדרתם תקופת שמירה למסד הנתונים של Airflow בסביבה שלכם:

  • ב-Managed Airflow, רשומות שקשורות להרצות של DAG ולסשנים של משתמשים נמחקות אם הן ישנות יותר מפרק הזמן שצוין.
  • המידע העדכני ביותר על הפעלת DAG תמיד נשמר, גם אחרי שתקופת השמירה של רשומות קשורות מסתיימת.
  • תקופת השמירה שמוגדרת כברירת מחדל היא 60 ימים. אפשר להגדיר תקופת שמירה מותאמת אישית של 30 עד 730 ימים.

פעולות שמירת נתונים במסד נתונים פועלות באופן הבא:

  • כברירת מחדל, שמירת מסד הנתונים מופעלת. אפשר להפעיל או להשבית אותו בסביבה חדשה או בסביבה קיימת. תקופת השמירה שמוגדרת כברירת מחדל היא 60 יום.

  • פעולת ניקוי מופעלת אוטומטית לפחות פעם אחת תוך 24 שעות אחרי שמפעילים את שמירת מסד הנתונים. אי אפשר להגדיר לוח זמנים מותאם אישית לפעולה הזו. ב-Managed Airflow, פעולת הניקוי לא מתבצעת מיד אחרי שמפעילים את השמירה של מסד הנתונים או משנים את תקופת השמירה.

  • פעולת הניקוי לא נועלת את טבלאות מסד הנתונים של Airflow, ושומרת על עקביות הנתונים גם אם היא מופסקת.

  • אחרי שמגדילים את נפח האחסון ב-Cloud SQL, אי אפשר להקטין אותו באמצעות פעולות שמירה של מסד הנתונים. פעולות שמירת נתונים במסד הנתונים עוזרות רק למנוע את הגידול של מסד הנתונים של Airflow לאורך זמן. מידע נוסף זמין בבעיה המוכרת הרלוונטית.

  • פעולת הניקוי מעריכה את הגיל של הרצת DAG על סמך התאריך הלוגי שלה, ולא על סמך הזמן בפועל שבו המשימה בוצעה. אם מרווח הזמן של מילוי החוסרים חורג מחלון השמירה הנוכחי, יכול להיות שתהליך השמירה יסיר במהירות את הריצות החדשות האלה כי התאריכים הלוגיים שלהן ישנים יותר ממגבלת השמירה. כתוצאה מכך, ההרצות האלה לא מוצגות בממשק המשתמש של Airflow. כדי למנוע את זה, לפני שמריצים את פעולת המילוי החוזר, מגדילים באופן זמני את מגבלת השימור כך שתכסה את התאריך הכי ישן של מרווח המילוי החוזר.

לפני שמתחילים

  • אם בסביבה שלכם מופעל DAG לניקוי מסד הנתונים לפי לוח זמנים, אתם יכולים להפסיק את ה-DAG אחרי שתגדירו את מדיניות שמירת הנתונים במסד הנתונים. הגישה של DAG לתחזוקה היא מיושנת ב-Managed Airflow (דור 3). ה-DAG הזה מבצע עבודה מיותרת, ואפשר להפסיק אותו כדי לצמצם את צריכת המשאבים.

הגדרת שמירת נתונים במסד נתונים בסביבה חדשה

כדי להפעיל או להשבית את השמירה של מסד נתונים או להגדיר תקופה מותאמת אישית לשמירה של מסד נתונים כשיוצרים סביבה:

המסוף

בדף Create environment:

  1. בקטע Database data retention policy, מגדירים את שמירת הנתונים במסד הנתונים:

    • (ברירת מחדל) כדי להפעיל שמירת נתונים במסד הנתונים, בוחרים באפשרות הפעלת מדיניות שמירת נתונים במסד הנתונים.

    • כדי להשבית את השמירה של מסד הנתונים, בוחרים באפשרות השבתת מדיניות שמירת נתונים של מסד הנתונים.

  2. (אופציונלי) כדי להגדיר תקופת שמירה בהתאמה אישית, בשדה תקופת שמירה, מציינים תקופת שמירה בין 30 ל-730 ימים.

gcloud

כשיוצרים סביבה, הארגומנט --airflow-database-retention-days מאפשר שמירה של מסד הנתונים ומציין את תקופת השמירה, בימים.

תמיד צריך לציין את הארגומנט הזה באופן מפורש:

  • ערך של 0 משבית את שמירת הנתונים במסד הנתונים.
  • מציינים 60 כדי להשתמש בערך ברירת המחדל.
  • מציינים ערך כדי להגדיר תקופה מותאמת אישית לשמירת נתונים במסד הנתונים, בין 30 ל-730 ימים.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.9 \
    --airflow-database-retention-days RETENTION_PERIOD

מחליפים את מה שכתוב בשדות הבאים:

  • ENVIRONMENT_NAME: השם של הסביבה.
  • LOCATION: האזור שבו נמצאת הסביבה.
  • RETENTION_PERIOD: ערך מותאם אישית לתקופת השמירה.

דוגמה:

gcloud composer environments create example-environment \
    --location us-central1 \
    --airflow-database-retention-days 60

API

כשיוצרים סביבה, במשאב Environment > EnvironmentConfig > [DataRetentionConfig][api-res-data-retention-config] > AirflowMetadataRetentionPolicyConfig, מציינים את פרמטרי השמירה של מסד הנתונים:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE_ENABLED",
        "retentionDays": "RETENTION_PERIOD"
      }
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ENVIRONMENT_NAME: השם של הסביבה.
  • LOCATION: האזור שבו נמצאת הסביבה.
  • RETENTION_PERIOD: ערך מותאם אישית לתקופת השמירה בין 30 ל-730 ימים.

דוגמה:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE_ENABLED",
        "retentionDays": "90"
      }
    }
  }
}

Terraform

כשיוצרים סביבה, הבלוק airflow_metadata_retention_config בקובץ data_retention_config מציין את פרמטרי השמירה של מסד הנתונים:

  • שדה retention_mode מציין את מצב השמירה של מסד הנתונים:

    • (ברירת מחדל) RETENTION_MODE_ENABLED מאפשר שמירה של מסד הנתונים.
    • RETENTION_MODE_DISABLED משבית את השמירה של מסד הנתונים.
  • ‫(Optional) retention_days specifies a custom retention period. ערך ברירת המחדל הוא 60 ימים.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    data_retention_config {
      airflow_metadata_retention_config {
        retention_mode = "RETENTION_MODE"
        retention_days = RETENTION_PERIOD
      }
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ENVIRONMENT_NAME: השם של הסביבה.
  • LOCATION: האזור שבו נמצאת הסביבה.
  • RETENTION_MODE: מצב השמירה של מסד הנתונים (RETENTION_MODE_ENABLED או RETENTION_MODE_DISABLED).
  • RETENTION_PERIOD: ערך מותאם אישית לתקופת השמירה בין 30 ל-730 ימים.

דוגמה:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    data_retention_config {
      airflow_metadata_retention_config {
        retention_mode = "RETENTION_MODE_ENABLED"
        retention_days = 90
      }
    }

הגדרת שמירת נתונים במסד נתונים בסביבה קיימת

כדי להפעיל או להשבית את שמירת מסד הנתונים בסביבה קיימת ולהגדיר תקופת שמירה בהתאמה אישית:

המסוף

  1. נכנסים לדף Environments במסוף Google Cloud .

    מעבר אל Environments

  2. ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.

  3. עוברים לכרטיסייה Environment configuration (הגדרת הסביבה).

  4. בפריט מדיניות שמירת הנתונים של מסד הנתונים מפורטת מדיניות שמירת הנתונים הנוכחית של מסד הנתונים בסביבה שלכם.

  5. לוחצים על Edit.

  6. מגדירים את הסטטוס של שמירת מסד הנתונים:

    • כדי להפעיל שמירה של נתונים במסד הנתונים, בוחרים באפשרות הפעלת מדיניות שמירה של נתונים במסד הנתונים.

    • כדי להשבית את השמירה של מסד הנתונים, מבטלים את הסימון של הפעלת מדיניות שמירת נתונים במסד הנתונים.

  7. (אופציונלי) כדי להגדיר תקופת שמירה בהתאמה אישית, בשדה תקופת שמירה, מציינים תקופת שמירה בין 30 ל-730 ימים.

gcloud

הארגומנט --airflow-database-retention-days מאפשר שמירת נתונים במסד הנתונים ומציין את תקופת השמירה בימים. ערך של 0 משבית את שמירת הנתונים במסד הנתונים.

gcloud composer environments update ENVIRONMENT_NAME \
    --airflow-database-retention-days RETENTION_PERIOD

מחליפים את מה שכתוב בשדות הבאים:

  • ENVIRONMENT_NAME: השם של הסביבה.
  • LOCATION: האזור שבו נמצאת הסביבה.
  • RETENTION_PERIOD: ערך מותאם אישית לתקופת השמירה בין 30 ל-730 ימים.

דוגמה:

gcloud composer environments update example-environment \
    --location us-central1 \
    --airflow-database-retention-days 60

API

  1. יוצרים בקשת API של environments.patch.

  2. בבקשה הזו:

    1. בפרמטר updateMask, מציינים את המסכה config.dataRetentionConfig.airflowMetadataRetentionConfig.

    2. בגוף הבקשה, מציינים את פרמטרים השמירה של מסד הנתונים.

{
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE",
        "retentionDays": "RETENTION_PERIOD"
      }
    }
  }
}

מחליפים את:

  • RETENTION_MODE: RETENTION_MODE_ENABLED הפעלה של שמירת נתונים במסד הנתונים, RETENTION_MODE_DISABLED השבתה של שמירת נתונים במסד הנתונים.
  • RETENTION_PERIOD: ערך מותאם אישית לתקופת השמירה בין 30 ל-730 ימים. אם לא מציינים ערך בשדה הזה, המערכת משתמשת בערך ברירת המחדל (60 ימים).

דוגמה:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.dataRetentionConfig.airflowMetadataRetentionConfig

{
  "config": {
    "dataRetentionConfig": {
      "airflowMetadataRetentionConfig": {
        "retentionMode": "RETENTION_MODE_ENABLED",
        "retentionMode": "90"
      }
    }
  }
}

Terraform

הבלוק airflow_metadata_retention_config ב-data_retention_config מציין פרמטרים של שמירת נתונים במסד הנתונים:

  • שדה retention_mode מציין את מצב השמירה של מסד הנתונים:

    • (ברירת מחדל) RETENTION_MODE_ENABLED מאפשר שמירה של מסד הנתונים.
    • RETENTION_MODE_DISABLED משבית את השמירה של מסד הנתונים.
  • ‫(Optional) retention_days specifies a custom retention period. ערך ברירת המחדל הוא 60 ימים.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    data_retention_config {
      airflow_metadata_retention_config {
        retention_mode = "RETENTION_MODE"
        retention_days = RETENTION_PERIOD
      }
    }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ENVIRONMENT_NAME: השם של הסביבה.
  • LOCATION: האזור שבו נמצאת הסביבה.
  • RETENTION_MODE: מצב השמירה של מסד הנתונים (RETENTION_MODE_ENABLED או RETENTION_MODE_DISABLED).
  • RETENTION_PERIOD: ערך מותאם אישית לתקופת השמירה בין 30 ל-730 ימים.

דוגמה:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    data_retention_config {
      airflow_metadata_retention_config {
        retention_mode = "RETENTION_MODE_ENABLED"
        retention_days = 90
      }
    }

בדיקת סטטוס השמירה של מסד הנתונים

המסוף

  1. נכנסים לדף Environments במסוף Google Cloud .

    מעבר אל Environments

  2. ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.

  3. עוברים לכרטיסייה Environment configuration (הגדרת הסביבה).

  4. בפריט מדיניות שמירת הנתונים של מסד הנתונים מפורטת מדיניות שמירת הנתונים הנוכחית של מסד הנתונים בסביבה שלכם.

gcloud

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.dataRetentionConfig.airflowMetadataRetentionConfig.retentionMode)"

צפייה ביומני שמירת נתונים במסד הנתונים

אפשר לראות את יומני הפעולות של שמירת נתונים במסד הנתונים בפרטי הסביבה > יומנים >. היומנים נמצאים בכל היומנים > יומני Composer > שמירת נתונים במסד הנתונים.

ברשומות ביומן מפורטים סטטוס הפעולה וגודל מסד הנתונים.

מידע נוסף על צפייה ביומנים של Managed Service for Apache Airflow

המאמרים הבאים