Acessar o banco de dados do Airflow

Cloud Composer 1 | Cloud Composer 2

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 zona do cluster do seu 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 de 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, e a zona do cluster será europe-west3-a.

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. Use o valor desse parâmetro para receber o nome de usuário, a senha e o nome do banco de dados.

    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.

Airflow 1

  1. Acesse a interface da Web do Airflow para seu ambiente.
  2. Na interface da Web do Airflow, acesse Admin > Configuration.
  3. Encontre o parâmetro sql_alchemy_conn.
  4. Use o valor desse parâmetro para receber o nome de usuário, a senha e o nome do banco de dados.

    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, o nome de usuário será root, a senha será example-password e o nome do banco de dados será composer-1-16-2-airflow-1-10-14-3e9e2312.

Receber o endereço do endpoint do banco de dados

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

    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 a mesma zona do 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

  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
    

Conecte-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

mysql --user=USERNAME --password \
  --host=DB_ENDPOINT \
  DB_NAME

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

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

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:

gsutil 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