访问 Airflow 数据库

Cloud Composer 1 | Cloud Composer 2

本页面介绍如何连接到运行您的 Cloud Composer 环境的 Airflow 数据库的 Cloud SQL 实例以及如何运行 SQL 查询。

例如,您可能想要直接在 Airflow 数据库上运行查询、进行数据库备份、根据数据库内容收集统计信息,或从数据库中检索任何其他自定义信息。

对于 Cloud Composer 环境,一种方法是从您环境中的 GKE 集群中的虚拟机连接到 Airflow 数据库。

获取环境集群的名称和可用区

  1. 在 Google Cloud Console 中,转到环境页面。

    转到“环境”

  2. 选择您的环境。

  3. 转到环境配置标签页。

  4. GKE 集群项列出了环境的 GKE 集群的名称和可用区。

    例如,如果此参数的值是 projects/example-project/zones/europe-west3-a/clusters/europe-west3-composer-exam--7b206598-gke,则集群名称为 europe-west3-composer-exam--7b206598-gke,集群可用区为 europe-west3-a

获取数据库连接参数

Airflow 2

  1. 访问环境的 Airflow 网页界面
  2. 在 Airflow 网页界面中,转到 Admin > Configurations

  3. 找到 sql_alchemy_conn 参数。

  4. 从此参数的值获取用户名、密码和数据库名称。

    例如,如果此参数的值为 postgresql+psycopg2://root:example-password@127.0.0.1:3306/composer-1-17-0-airflow-2-0-1-400fa094,则用户名为 root,密码为 example-password,数据库名称为 composer-1-17-0-airflow-2-0-1-400fa094

Airflow 1

Cloud Composer 2 仅支持 Airflow 2。

获取 SQL 代理端点地址

  1. 在 Google Cloud Console 中,转到 Kubernetes Engine > Service 和 Ingress 页面:

    转到“Service 和 Ingress”

  2. 为您的集群选择 airflow-sqlproxy-service 服务。您可以使用集群名称或所列的端点 IP 地址范围查找正确的项。

  3. 服务详情页面上,找到服务 pod 的 IP 地址。它列在 Serving pod 部分的端点列中。

创建虚拟机实例

使用以下参数创建新的虚拟机实例

  • Region 绑定将多选选项设置为所有记录中 Region 的所有值。选择与您的集群相同的区域。
  • 可用区。选择与您的集群相同的可用区。
  • 启动磁盘。选择 Linux 发行版,例如 Ubuntu 21.04 LTS
  • (仅适用于专用 IP)指定集群的 IP 范围内的 IP 地址:

    1. 展开管理、安全、磁盘、网络、单独租用项。
    2. 转到网络标签页。
    3. 网络接口中,展开默认接口项。
    4. 展开显示别名 IP 范围
    5. 子网范围中,为您的集群选择 gke-services IP 地址范围。例如 gke-europe-west3-composer-exam7b206598-gke-services-115b26e7。您在上一步中获取了集群的名称。
    6. 别名 IP 范围中,为虚拟机实例指定 IP 地址,该地址在指定子网范围内的 IP 地址范围内。

连接到虚拟机实例并安装 SQL 客户端软件包

Airflow 2

  1. 连接到您在上一步中创建的虚拟机实例

  2. 安装 postgresql-client 软件包。

    sudo apt-get update
    sudo apt-get install postgresql-client
    

Airflow 1

Cloud Composer 2 仅支持 Airflow 2。

连接到 Airfow 数据库

连接到虚拟机实例时,运行以下命令以连接到 Airflow 数据库:

Airflow 2

psql --user=USERNAME --password --host=SQL_ENDPOINT --port=3306 DB_NAME

Airflow 1

Cloud Composer 2 仅支持 Airflow 2。

使用在上面的步骤中获取的值进行替换:

  • USERNAME 替换为用户名。
  • SQL_ENDPOINT 替换为 SQL 端点的 IP 地址。
  • DB_NAME 替换为数据库名称。

运行 SQL 查询

系统会显示提示符。您可以在此提示符中运行 SQL 查询。例如:

SELECT * FROM dag LIMIT 10;

转储数据库内容并转移到存储桶

如需将数据库内容转储到一个文件中,请运行以下命令:

Airflow 2

pg_dump --user=USERNAME --password --host=SQL_ENDPOINT --port=3306 \
    DB_NAME > DUMP_FILE

Airflow 1

Cloud Composer 2 仅支持 Airflow 2。

替换:

  • USERNAME 替换为用户名。
  • SQL_ENDPOINT 替换为 SQL 端点的 IP 地址。
  • DB_NAME 替换为数据库名称。
  • DUMP_FILE 替换为转储文件的名称。例如 dump.sql

如需将转储文件转移到 Cloud Storage 存储分区,请执行以下操作:

gsutil cp DUMP_DILE BUCKET_ADDRESS

替换:

  • DUMP_FILE 替换为转储文件的名称。
  • BUCKET_ADDRESS 替换为存储桶的地址。例如 gs://europe-west3-db-dump

或者,您可以使用 gcloud compute scp 将转储文件转移到本地。

后续步骤