清理 Airflow 数据库

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本页介绍了如何手动清理环境中的 Airflow 数据库。

如果您想改为自动清理数据库,请参阅配置数据库保留政策

自动数据库清理

Cloud Composer 提供了多种手动清理替代方案:

  • 您可以为环境配置数据库保留政策,以便系统每天自动从 Airflow 数据库中移除超过特定期限的记录。

  • 在 Cloud Composer 中推出数据库保留期限政策之前,我们建议通过数据库清理 DAG 采用其他方法来自动执行数据库清理。此方法已废弃,但仍受支持。您可以在 Cloud Composer 2 页面上找到说明和 DAG 代码。

数据库大小限制

随着时间的推移,环境的 Airflow 数据库会存储越来越多的数据。这些数据包括与过往 DAG 运行、任务和其他 Airflow 操作相关的信息和日志。

  • 如果 Airflow 数据库大小超过 20 GB,则无法将环境升级到更高版本。

  • 如果 Airflow 数据库大小超过 20 GB,则无法创建快照。

通过 Airflow CLI 运行数据库清理操作

当您通过 Google Cloud CLI 运行 airflow db trim Airflow CLI 命令时,Cloud Composer 会执行数据库保留操作

在此操作期间,Cloud Composer 会移除早于当前配置的数据库保留期限(默认为 60 天)的 Airflow 数据库条目。此操作不会锁定 Airflow 数据库表,即使被中断,也能保持数据一致性。

如需从 Airflow 数据库中移除旧条目,请运行以下命令:

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION \
    db trim \
    -- --retention-days RETENTION_DAYS

替换以下内容:

  • ENVIRONMENT_NAME:您的环境的名称。
  • LOCATION:环境所在的区域。
  • RETENTION_DAYS:保留期限(以天为单位)。系统会移除超过此天数的条目。

如需详细了解如何在 Cloud Composer 中运行 Airflow CLI 命令,请参阅访问 Airflow 命令行界面

维护数据库性能

  • Airflow 数据库性能问题可能会导致整体 DAG 执行问题。观察“数据库 CPU 和内存用量”统计信息。如果 CPU 和内存利用率接近上限,则表示数据库过载并需要扩缩。 Airflow 数据库可用的资源量由环境的环境大小属性控制。如需扩缩数据库,请将环境大小更改为更大的层级。增加环境大小会增加环境的费用。

  • 如果您使用 XCom 机制传输文件,请确保按照 Airflow 准则使用该机制。使用 XCom 传输大型文件或大量文件会影响 Airflow 数据库的性能,并可能会导致加载快照或升级环境时发生失败。考虑使用 Cloud Storage 等替代方案来传输大量数据。

移除未使用的 DAG 的条目

您可以通过从 Airflow 界面中移除 DAG 移除未使用的 DAG 的数据库条目。

后续步骤