Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat]: deploy elementary report #468

Merged
merged 16 commits into from
Mar 27, 2024
Merged

Conversation

arthurfg
Copy link
Collaborator

@arthurfg arthurfg commented Mar 22, 2024

close #467

Sobre o elementary: https://docs.elementary-data.com/introduction
Documentação para o deploy: https://docs.elementary-data.com/oss/deployment-and-configuration/elementary-in-production

O elementary possui um CLI que gera, dentre outras coisas, um report em .html com os resultados dos testes. A ideia é que possamos usar esse html na BD.

Exemplo do html:
Captura de Tela 2024-03-22 às 11 47 37

A documentação sugere algumas maneiras para orquestrar a execução dos comandos cli em produção (docker, gh actions, prefect e etc), escolhi a action pq é a mesma ferramenta que usamos para orquestrar o deploy do dbt e por parecer ser mais simples de implementar.

Então a ideia seria que a cada push na main a action rodasse dois comandos: o edr report para gerar o html e edr send-report para subir o arquivo html no gcs.

Link para a action: https://github.com/elementary-data/run-elementary-action

O input profiles-yml na action não é necessário pq já existe um arquivo profiles-yml no repositório, ele usa esse por default. O que precisamos incluir são as secrets com o gcs-keyfile e gcs-bucket-name e o google-service-account-path, que não sei qual é ao certo

Atualização:

Fiz uma poc no meu repositório para testar a action e consegui rodar o processo de gerar o report + subir o html no gcs. Aqui o report hospedado no storage: https://storage.googleapis.com/arthur-data-engineering-course-terra-bucket/index.html. Dá pra mudar o domínio, deixar em um bucket separado e etc, mas não muda a funcionalidade.

Secrets que precisamos criar:

  • BIGQUERY_KEYFILE: uma service account que tenha as permissões BigQuery Data Editor e BigQuery User
  • ELEMENTARY_PROFILES_YML: o conteúdo do profiles.yml só que com o keyfile apontando para /tmp/bigquery_keyfile.json:
elementary:
  outputs:
    default:
      type: "bigquery"
      project: "basedosdados-dev"
      dataset: "elementary"
      method: service-account
      threads: 2
      keyfile: /tmp/bigquery_keyfile.json
  • GCS_BUCKET_NAME: nome do bucket
  • GCS_KEYFILE: uma service account com as permissões para criar/subir dados no bucket

Depois de subir verificar as permissões/visibilidadede bucket (segui esse tutorial), mas acho que não vamos precisar mudar nada pq o bucket de dev e prod já são abertos.

@arthurfg arthurfg self-assigned this Mar 22, 2024
@arthurfg arthurfg force-pushed the feat/deploy-elementary-report branch from 9bd513a to 98dcd57 Compare March 22, 2024 23:00
Copy link
Contributor

@vncsna vncsna left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recomendo adicionar o edr_target ao gitignore e retirar arquivos desse PR

@arthurfg arthurfg force-pushed the feat/deploy-elementary-report branch from fb9e084 to 1739ac7 Compare March 27, 2024 20:11
@arthurfg arthurfg requested a review from vncsna March 27, 2024 21:53
@arthurfg arthurfg merged commit bc5eb29 into main Mar 27, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[add] Conseguir montar os paineis do elementary dos dados em produção
2 participants