Skip to content

Módulo data_platform.typesense ausente no Cloud Composer #105

@mauriciomendonca

Description

@mauriciomendonca

User Story

Como operador da plataforma DGB,
Quero que os jobs de Typesense (clusters, trending, engagement) consigam importar o módulo data_platform.typesense no Cloud Composer,
Para que a indexação de busca, cálculo de trending e agregação de engagement voltem a funcionar.

Contexto

As DAGs compute_clusters, compute_trending e aggregate_engagement estão falhando com ModuleNotFoundError desde pelo menos 03/03/2026 (~9 falhas/dia combinadas).

Causa raiz

O código dos jobs em src/data_platform/jobs/typesense/collection_ops.py:10 faz:

from data_platform.typesense import (
    get_client,
    delete_collection,
    list_collections,
    COLLECTION_NAME,
)

Este código é deployado como plugin do Airflow em /home/airflow/gcs/plugins/data_platform/jobs/typesense/collection_ops.py. Porém, o módulo data_platform.typesense não está disponível no ambiente do Composer.

Pacotes instalados no Composer (nenhum inclui data_platform)

pypiPackages:
  apache-airflow-providers-google: '>=10.14.0'
  apache-airflow-providers-postgres: '>=5.10.2'
  boto3: '>=1.35.0'
  psycopg2-binary: '>=2.9.9'
  requests: '>=2.31.0'
  sqlalchemy: '>=1.4.52'

O módulo existe localmente

O módulo data_platform/typesense/ existe em src/data_platform/typesense/ com os arquivos:

  • __init__.py — re-exports de client, collection, indexer, utils
  • client.py — conexão com Typesense (get_client, wait_for_typesense)
  • collection.py — schema da collection (COLLECTION_NAME, create_collection)
  • indexer.py — indexação de documentos
  • utils.py — utilitários (calculate_published_week)

Erro completo

File "/home/airflow/gcs/plugins/data_platform/jobs/typesense/collection_ops.py", line 10, in <module>
    from data_platform.typesense import (
ModuleNotFoundError: No module named 'data_platform.typesense'

DAGs afetadas

DAG Task Falhas/dia
compute_clusters find_and_store_clusters ~4
compute_trending compute_and_sync_trending ~3
aggregate_engagement aggregate_and_sync ~2

Impacto

  • Busca no portal pode estar com dados desatualizados (Typesense não sendo sincronizado)
  • Trending e clusters não estão sendo calculados
  • Agregação de engagement parada

Critérios de Aceite

  • O módulo data_platform.typesense está disponível no ambiente do Cloud Composer
  • As 3 DAGs afetadas executam com sucesso
  • Escolher abordagem: (a) instalar data_platform como PyPI package no Composer, OU (b) garantir que o deploy de plugins inclui o módulo typesense/ com __init__.py correto, OU (c) refatorar imports para não depender do pacote instalado
  • Dependências do Typesense (ex: typesense Python client) também devem estar nos PyPI packages do Composer

Arquivos relevantes

  • src/data_platform/jobs/typesense/collection_ops.py — import que falha
  • src/data_platform/jobs/typesense/sync_job.py — outro arquivo com mesma dependência
  • src/data_platform/typesense/ — módulo que precisa estar disponível
  • Terraform/config do Composer — onde PyPI packages são definidos

Dependências

  • Pode depender de configuração Terraform no repo infra (PyPI packages do Composer)

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingsize:SPequeno (~2-4h)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions