访问 Airflow 数据库

Cloud Composer 1 | Cloud Composer 2

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

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

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

获取环境集群的名称和区域

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

  2. 选择您的环境。

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

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

    例如,如果此参数的值为 projects/example-project/locations/us-central1/clusters/us-central1-composer-exam-e-23125af4-gke,则集群名称为 us-central1-composer-exam-e-23125af4-gke,则集群区域为 us-central1

获取数据库连接参数

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。

获取数据库端点地址

公共 IP

  1. 在 Google Cloud 控制台中,前往 Kubernetes Engine > 网关、服务和入站流量页面:

    转到“Service 和 Ingress”

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

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

专用 IP - PSC

  1. 在 Google Cloud 控制台中,前往网络服务 > Private Service Connect 页面:

    转到 Private Service Connect

  2. 点击带有环境名称的端点。例如,它可以命名为 us-central1-example-environ-d9cb394f-psc

  3. 您的环境通过 IP 地址行中指定的 IP 地址连接到数据库。

专用 IP - VPC 对等互连

  1. 在 Google Cloud 控制台中,前往 Kubernetes Engine > 网关、服务和入站流量页面:

    转到“Service 和 Ingress”

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

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

创建虚拟机实例

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

  • Region 绑定将多选选项设置为所有记录中 Region 的所有值。选择与您的集群相同的区域。

  • 可用区。选择集群所在区域中的任何可用区。

  • 启动磁盘。选择 Linux 发行版,例如 Ubuntu 21.04 LTS

  • 在集群的 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。

连接到 Airflow 数据库

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

Airflow 2

psql --user=USERNAME --password \
  --host=DB_ENDPOINT \
  --port=3306 \
  DB_NAME

Airflow 1

Cloud Composer 2 仅支持 Airflow 2。

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

  • USERNAME 替换为用户名。
  • DB_ENDPOINT 替换为您在本指南前面部分获得的数据库端点的 IP 地址。
  • DB_NAME 替换为数据库名称。

运行 SQL 查询

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

SELECT * FROM dag LIMIT 10;

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

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

Airflow 2

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

Airflow 1

Cloud Composer 2 仅支持 Airflow 2。

您需要将其中的:

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

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

gsutil cp DUMP_FILE BUCKET_ADDRESS

您需要将其中的:

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

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

后续步骤