Airflow Gerenciado (Geração 3) | Airflow Gerenciado (Geração 2) | Airflow Gerenciado (Geração 1 legada)
Nesta página, explicamos como ativar a integração da linhagem de dados no Airflow Gerenciado.
Sobre a integração da linhagem de dados
A linhagem de dados é um recurso do Knowledge Catalog que acompanha como os dados se movimentam nos sistemas: de onde vêm, para onde vão e quais transformações são aplicadas a eles.
O Airflow Gerenciado usa o pacote apache-airflow-providers-openlineage para gerar os eventos de linhagem enviados à API Data Lineage.
Esse pacote já está instalado em ambientes do Airflow Gerenciado. Se você instalar outra versão desse pacote, a lista de operadores compatíveis poderá mudar. Recomendamos fazer isso apenas se necessário e manter a versão pré-instalada do pacote.
A linhagem de dados está disponível para ambientes nas mesmas regiões que as regiões do Knowledge Catalog que oferecem suporte à linhagem de dados.
Se a linhagem de dados estiver ativada no ambiente do Serviço Gerenciado para Apache Airflow, o Serviço Gerenciado para Apache Airflow vai informar as informações de linhagem à API Data Lineage para DAGs que usam qualquer um dos operadores compatíveis. Também é possível enviar eventos de linhagem personalizados se você quiser informar a linhagem de um operador que não é compatível.
É possível acessar informações de linhagem com:
- API Data Lineage
- Gráficos de linhagem para entradas compatíveis no Knowledge Catalog. Para mais informações, consulte Gráficos de linhagem na documentação do Knowledge Catalog.
Ao criar um ambiente, a integração da linhagem de dados é ativada automaticamente se as seguintes condições forem atendidas:
A API Data Lineage está ativada no seu projeto. Para mais informações, consulte Ativar a API Data Lineage em documentação do Knowledge Catalog.
Um back-end de linhagem personalizado não está configurado em Airflow.
É possível desativar a integração da linhagem de dados ao criar um ambiente.
Para um ambiente atual, é possível ativar ou desativar a integração da linhagem de dados a qualquer momento.
Considerações sobre recursos no Serviço Gerenciado para Apache Airflow
O Airflow Gerenciado faz uma chamada RPC para criar eventos de linhagem nos seguintes casos:
- Quando uma tarefa do Airflow começa ou termina
- Quando uma execução do DAG começa ou termina
Para mais detalhes sobre essas entidades, consulte modelo de informações de linhagem e referência da API Lineage na documentação do Knowledge Catalog.
O tráfego de linhagem emitido está sujeito a cotas na API Data Lineage. O Airflow Gerenciado consome a cota de gravação.
Os preços associados ao processamento de dados de linhagem estão sujeitos aos preços de linhagem. Consulte Considerações sobre a linhagem de dados.
Considerações sobre a performance no Serviço Gerenciado para Apache Airflow
A linhagem de dados é informada no final da execução da tarefa do Airflow. Em média, a geração de relatórios de linhagem de dados leva cerca de 1 a 2 segundos.
Isso não afeta a performance da tarefa em si: as tarefas do Airflow não falham se a linhagem não for informada com sucesso à API Lineage. Não há impacto na lógica principal do operador, mas toda a instância da tarefa é executada um pouco mais para contabilizar a geração de relatórios de dados de linhagem.
Um ambiente que informa a linhagem de dados terá um pequeno aumento nos custos associados devido ao tempo extra necessário para informar a linhagem de dados.
Compliance
A linhagem de dados oferece diferentes níveis de suporte para recursos como o VPC Service Controls. Analise as considerações sobre a linhagem de dados para garantir que os níveis de suporte correspondam aos requisitos do ambiente.
Antes de começar
Esse recurso oferece suporte de compliance variado. Primeiro, analise as considerações sobre recursos específicos do Serviço Gerenciado para Apache Airflow e as considerações sobre recursos de linhagem de dados.
A integração da linhagem de dados é compatível com o Airflow Gerenciado versão 2.1.2 e mais recentes com as versões 2.2.5 e mais recentes do Airflow.
Todas as permissões do IAM necessárias para a linhagem de dados já estão incluídas no papel do Worker do Composer (
roles/composer.worker). Esse papel é obrigatório para as contas de serviço do ambiente.Para mais informações sobre as permissões de linhagem de dados, consulte Papéis e permissões de linhagem na documentação do Knowledge Catalog.
Verificar se um operador é compatível
O suporte à linhagem de dados é fornecido pelo pacote do provedor em que o operador está localizado:
Confira os registros de alterações do pacote do provedor em que o operador está localizado para entradas que adicionam suporte ao OpenLineage.
Por exemplo, o BigQueryToBigQueryOperator oferece suporte ao OpenLineage a partir da
apache-airflow-providers-googleversão 11.0.0.Verifique a versão do pacote do provedor usado pelo ambiente. Para fazer isso, consulte a lista de pacotes pré-instalados para a versão do Airflow Gerenciado usada no ambiente. Também é possível instalar uma versão diferente do pacote no ambiente.
Além disso, a página Classes compatíveis
na documentação apache-airflow-providers-openlineage lista os operadores compatíveis mais recentes.
Configurar a integração da linhagem de dados
A integração da linhagem de dados para o Serviço Gerenciado para Apache Airflow é gerenciada por ambiente. Isso significa que a ativação do recurso requer duas etapas:
- Ative a API Data Lineage no seu projeto.
- Ative a integração da linhagem de dados em um ambiente específico do Serviço Gerenciado para Apache Airflow.
Ativar a linhagem de dados no Serviço Gerenciado para Apache Airflow
Console
No Google Cloud console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Selecione a guia Configuração do ambiente.
Na seção Integração da linhagem do Knowledge Catalog, clique em Editar.
No painel Integração da linhagem do Knowledge Catalog, selecione Ativar a integração com a linhagem do Knowledge Catalog.
Clique em Salvar.
gcloud
Use o argumento --enable-cloud-data-lineage-integration.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--enable-cloud-data-lineage-integration
Substitua:
ENVIRONMENT_NAME: o nome do ambiente;LOCATION: a região em que o ambiente está localizado.
Exemplo:
gcloud composer environments update example-environment \
--location us-central1 \
--enable-cloud-data-lineage-integration
Desativar a linhagem de dados no Serviço Gerenciado para Apache Airflow
A desativação da integração de linhagem em um ambiente do Serviço Gerenciado para Apache Airflow não desativa a API Data Lineage. Se você quiser desativar completamente a geração de relatórios de linhagem para seu projeto, também desative a API Data Lineage. Veja como desativar serviços.
Console
No Google Cloud console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do seu ambiente. A página Detalhes do ambiente é aberta.
Selecione a guia Configuração do ambiente.
Na seção Integração da linhagem do Knowledge Catalog, clique em Editar.
No painel Integração da linhagem do Knowledge Catalog, selecione Desativar a integração com a linhagem do Knowledge Catalog.
Clique em Salvar.
gcloud
Use o argumento --disable-cloud-data-lineage-integration.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-cloud-data-lineage-integration
Substitua:
ENVIRONMENT_NAME: o nome do ambiente;LOCATION: a região em que o ambiente está localizado.
Exemplo:
gcloud composer environments update example-environment \
--location us-central1 \
--disable-cloud-data-lineage-integration
Enviar eventos de linhagem em operadores compatíveis
Se a linhagem de dados estiver ativada, os operadores compatíveis vão enviar eventos de linhagem automaticamente. Não é necessário mudar o código do DAG.
Por exemplo, executar a seguinte tarefa:
task = BigQueryInsertJobOperator(
task_id='snapshot_task',
dag=dag,
location='<dataset-location>',
configuration={
'query': {
'query': 'SELECT * FROM dataset.tableA',
'useLegacySql': False,
'destinationTable': {
'project_id': 'example-project',
'dataset_id': 'dataset',
'table_id': 'tableB',
},
}
},
)
Resulta na criação do seguinte gráfico de linhagem na interface do Knowledge Catalog:
Enviar eventos de linhagem personalizados
É possível enviar eventos de linhagem personalizados se você quiser informar a linhagem de um operador que não é compatível com a geração de relatórios de linhagem automatizada.
Por exemplo, para enviar eventos personalizados com:
- BashOperator: modifique o parâmetro
inletsououtletsna definição da tarefa. - PythonOperator: modifique o parâmetro
task.inletsoutask.outletsna definição da tarefa. - É possível usar
AUTOpara o parâmetroinlets. Isso define o valor igual aosoutletsda tarefa upstream.
O exemplo a seguir demonstra o uso de entradas e saídas:
from airflow.composer.data_lineage.entities import BigQueryTable
from airflow.lineage import AUTO
...
bash_task = BashOperator(
task_id="bash_task",
dag=dag,
bash_command="sleep 0",
inlets=[
BigQueryTable(
project_id="example-project",
dataset_id="dataset",
table_id="table1",
)
],
outlets=[
BigQueryTable(
project_id="example-project",
dataset_id="dataset",
table_id="table2",
)
],
)
def _python_task(task):
print("Python task")
python_task = PythonOperator(
task_id="python_task",
dag=dag,
python_callable=_python_task,
inlets=[
AUTO,
BigQueryTable(
project_id="example-project",
dataset_id="dataset",
table_id="table3",
),
],
outlets=[
BigQueryTable(
project_id="example-project",
dataset_id="dataset",
table_id="table4",
)
],
)
bash_task >> python_task
Como resultado, o seguinte gráfico de linhagem é criado na interface do Knowledge Catalog:
Ver registros de linhagem no Serviço Gerenciado para Apache Airflow
É possível inspecionar os registros relacionados à linhagem de dados usando o link na página Configuração do ambiente na seção Integração da linhagem do Knowledge Catalog.
Solução de problemas
Se os dados de linhagem não forem informados à API Lineage ou não aparecerem no Knowledge Catalog, tente as seguintes etapas de solução de problemas:
- Verifique se a API Data Lineage está ativada no projeto do ambiente do Serviço Gerenciado para Apache Airflow.
- Verifique se a integração da linhagem de dados está ativada no ambiente do Serviço Gerenciado para Apache Airflow.
- Verifique se o operador usado está incluído no suporte de geração de relatórios de linhagem automatizada. Para mais informações, consulte Operadores do Airflow compatíveis.
- Verifique os registros de linhagem no Serviço Gerenciado para Apache Airflow para possíveis problemas.