Acessar o banco de dados do Airflow

Esta página explica como se conectar a uma instância do Cloud SQL que executa o banco de dados do Airflow do ambiente do Cloud Composer e executa consultas SQL.

Por exemplo, você pode executar consultas diretamente no banco de dados do Airflow, fazer backups de banco de dados, reunir estatísticas com base no conteúdo do banco de dados ou recuperar qualquer outra informação personalizada do banco de dados.

Para um ambiente do Cloud Composer, conecte-se ao banco de dados do Airflow a partir de uma VM no cluster do GKE do seu ambiente.

Receber o nome e a zona do cluster do ambiente

  1. Acesse a página Ambientes no Console do Google Cloud:

    Acesse a página "Ambientes"

  2. Selecione seu ambiente.

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

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

    Por exemplo, se o valor desse parâmetro for projects/example-project/zones/europe-west3-a/clusters/europe-west3-composer-exam--7b206598-gke, o nome do cluster será europe-west3-composer-exam--7b206598-gke, a zona do cluster será europe-west3-c.

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

Airflow 1

  1. Acesse a interface da Web do Airflow no ambiente.

  2. Na interface da Web do Airflow, acesse Administrador > Configuração.

  3. Encontre o parâmetro sql_alchemy_conn.

  4. Veja o nome de usuário, a senha e o nome do banco de dados a partir do valor deste parâmetro.

    Por exemplo, se o valor desse parâmetro for mysql+mysqldb://root:example-password@127.0.0.1/composer-1-16-2-airflow-1-10-14-3e9e2312?charset=utf8 e o nome de usuário for root, a senha será example-password, o nome do banco de dados será composer-1-16-2-airflow-1-10-14-3e9e2312 para começar.

Airflow 2

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

  3. Encontre o parâmetro sql_alchemy_conn.

  4. Veja o nome de usuário, a senha e o nome do banco de dados a partir do valor deste parâmetro.

    Por exemplo, se o valor desse 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 será root, a senha será example-password e o nome do banco de dados será composer-1-17-0-airflow-2-0-1-400fa094.

Conseguir o endereço do endpoint do proxy SQL

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

    Acessar a página "Serviços e Entrada"

  2. Selecione o serviço airflow-sqlproxy-service para o 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. Ela está listada 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 a mesma zona do cluster.
  • Disco de inicialização. Selecione uma distribuição Linux, por exemplo, Ubuntu 21.04 LTS.
  • (Somente para IP privado) 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 para seu cluster. Por exemplo, gke-europe-west3-composer-exam7b206598-gke-services-115b26e7. Você recebeu o nome do cluster na etapa anterior.
    6. Em Intervalo de IP do alias, especifique um endereço IP para a instância de VM que esteja no intervalo de endereços IP do intervalo de sub-rede especificado.

Conectar-se à instância de VM e instalar o pacote de cliente SQL

Airflow 1

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

  2. Instale o pacote mysql-client.

    sudo apt-get update
    sudo apt-get install mysql-client
    

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
    

Conecte-se ao banco de dados do Airfow

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

Airflow 1

mysql --user=USERNAME --password --host=SQL_ENDPOINT DB_NAME

Airflow 2

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

Substitua pelos valores obtidos nas etapas anteriores:

  • USERNAME pelo nome do usuário.
  • SQL_ENDPOINT pelo endereço IP do endpoint SQL.
  • DB_NAME pelo nome do banco de dados.

Execute consultas SQL

Uma solicitação será exibida. É possível executar consultas SQL neste prompt. Exemplo:

SELECT * FROM dag LIMIT 10;

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

Para despejar o conteúdo do banco de dados em um arquivo, execute o comando a seguir:

Airflow 1

mysqldump --user=USERNAME --password --host=SQL_ENDPOINT \
    DB_NAME > DUMP_FILE

Airflow 2

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

Substitua:

  • USERNAME pelo nome do usuário.
  • SQL_ENDPOINT pelo endereço IP do endpoint SQL.
  • 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:

gsutil cp DUMP_DILE 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