Acessar o banco de dados do Airflow

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Nesta página, você verá como se conectar a uma instância do Cloud SQL que executa o banco de dados do Airflow do ambiente do Cloud Composer e executar consultas SQL.

Por exemplo, talvez você queira executar consultas diretamente no banco de dados do Airflow, fazer backups de bancos de dados, coletar estatísticas com base no conteúdo do banco de dados ou recuperar outras informações personalizadas do banco de dados.

Para um ambiente do Cloud Composer, uma maneira de fazer isso é conectar-se ao banco de dados do Airflow de uma VM no cluster do GKE do ambiente.

Encontre o nome e a região do cluster do ambiente

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Selecione o ambiente.

  3. Acesse a guia Configuração do ambiente.

  4. O item cluster do GKE lista o nome e a região. do cluster do GKE do seu ambiente.

    Por exemplo, se o valor desse parâmetro for projects/example-project/locations/us-central1/clusters/us-central1-composer-exam-e-23125af4-gke, o nome do cluster será us-central1-composer-exam-e-23125af4-gke, e a região do cluster será us-central1.

Receber os parâmetros de conexão do banco de dados

Airflow 2

  1. Acesse a interface da Web do Airflow para seu ambiente.
  2. Na interface da Web do Airflow, acesse Administrador > Configurações.

  3. Encontre o parâmetro sql_alchemy_conn.

  4. Consiga o nome de usuário, a senha e o nome do banco de dados com o valor desse parâmetro.

    Por exemplo, se o valor deste parâmetro for postgresql+psycopg2://root:example-password@127.0.0.1:3306/composer-1-17-0-airflow-2-0-1-400fa094, o nome de usuário é root, a senha é example-password e o nome do banco de dados é composer-1-17-0-airflow-2-0-1-400fa094.

Airflow 1

O Cloud Composer 2 é compatível apenas com o Airflow 2.

Receber o endereço do endpoint do banco de dados

IP público

  1. No console do Google Cloud, acesse a página Kubernetes Engine > Gateways, Serviços e Ingress:

    Acesse "Serviços e Entrada"

  2. Selecione o serviço airflow-sqlproxy-service para seu cluster. Use o nome do cluster ou o intervalo de IPs listado para que os endpoints procurem o item correto.

  3. Na página Detalhes do serviço, encontre o endereço IP de um pod de exibição. Ele aparece na seção Pods de exibição, na coluna Endpoints.

IP particular: PSC

  1. No console do Google Cloud, acesse Página Serviços de rede > Private Service Connect:

    Acessar a página "Private Service Connect"

  2. Clique no endpoint com o nome do ambiente. Por exemplo, ele pode ser chamado de us-central1-example-environ-d9cb394f-psc.

  3. Seu ambiente se conecta ao banco de dados pelo endereço IP especificado na linha Endereço IP.

IP particular: peerings de VPC

  1. No console do Google Cloud, acesse a página Kubernetes Engine > Gateways, Services & Ingress:

    Acesse "Serviços e Entrada"

  2. Selecione o serviço airflow-sqlproxy-service para seu cluster. Use o nome do cluster ou o intervalo de IPs listado para que os endpoints procurem o item correto.

  3. Na página Detalhes do serviço, encontre o endereço IP de um pod de exibição. Ele aparece na seção Pods de exibição, na coluna Endpoints.

criar uma instância de VM

Crie uma nova instância de VM com os seguintes parâmetros:

  • Region. Selecione a mesma região do cluster;

  • Zona. Selecione qualquer zona na mesma região do seu cluster.

  • Disco de inicialização. Selecione uma distribuição do Linux, por exemplo, Ubuntu 21.04 LTS.

  • Especifique um endereço IP no intervalo de IP do cluster:

    1. Expanda o item Gerenciamento, segurança, discos, rede, locatário único.
    2. Acesse a guia Rede.
    3. Em Interfaces de rede, expanda o item de interface padrão.
    4. Expanda Mostrar intervalos de IP do alias.
    5. Em Intervalo da sub-rede, selecione o intervalo de IP gke-services do cluster. Por exemplo, gke-europe-west3-composer-exam7b206598-gke-services-115b26e7. Você recebeu o nome do cluster na etapa anterior.
    6. No Intervalo de IP do alias, especifique um endereço IP da instância de VM que está no intervalo de endereços IP do intervalo de sub-redes especificado.

Conecte-se à instância de VM e instale o pacote do cliente SQL

Airflow 2

  1. Conecte-se à instância de VM que você criou na etapa anterior.

  2. Instale o pacote postgresql-client.

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

Airflow 1

O Cloud Composer 2 é compatível apenas com o Airflow 2.

Conectar-se ao banco de dados do Airflow

Enquanto conectado à instância de VM, execute o seguinte comando para se conectar ao banco de dados do Airflow:

Airflow 2

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

Airflow 1

O Cloud Composer 2 é compatível apenas com o Airflow 2.

Substitua pelos valores das etapas anteriores:

  • USERNAME pelo nome de usuário.
  • DB_ENDPOINT pelo endereço IP do endpoint do banco de dados que você recebeu anteriormente neste guia.
  • DB_NAME pelo nome do banco de dados.

Executar consultas SQL

Uma solicitação é exibida. Você pode executar consultas SQL nessa solicitação. Exemplo:

SELECT * FROM dag LIMIT 10;

Despejar conteúdo do banco de dados e transferi-lo para um bucket

Para fazer o despejo do conteúdo do banco de dados em um arquivo, execute o seguinte comando:

Airflow 2

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

Airflow 1

O Cloud Composer 2 é compatível apenas com o Airflow 2.

Substitua:

  • USERNAME pelo nome de usuário.
  • DB_ENDPOINT pelo endereço IP do endpoint do banco de dados.
  • DB_NAME pelo nome do banco de dados.
  • DUMP_FILE pelo nome do arquivo dump. Por exemplo, dump.sql.

Para transferir o arquivo dump para um bucket do Cloud Storage:

gcloud storage cp DUMP_FILE BUCKET_ADDRESS

Substitua:

  • DUMP_FILE pelo nome do arquivo dump.
  • BUCKET_ADDRESS pelo endereço do bucket. Por exemplo, gs://europe-west3-db-dump.

Como alternativa, você pode transferir o arquivo dump localmente com gcloud compute scp.

A seguir