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

Otimização no procedimento de carga de task_migrate_document_records #478

Open
5 tasks
robertatakenaka opened this issue Jun 20, 2024 · 0 comments
Open
5 tasks
Assignees

Comments

@robertatakenaka
Copy link
Member

Descrição da tarefa

O procedimento de migração dos registros de documentos é muito lento devido à busca sequencial dos registros nos arquivos *.id localizados em serial, bases-work, bases/artigo, bases/artigo/p (Em fixture há exemplos reais de como podem ser o conteúdo).

for doc_id, doc_records in self.classic_website.get_documents_pids_and_records(

Esta função é da biblioteca scielo_migration (https://github.com/scieloorg/scielo_migration)
Nesta estratégia, para cada issue (journal acron + volume + número) é buscado nos arquivos .id disponíveis os registros dos documentos correspondentes e registrado em MigratedArticle.

A proposta alternativa é varrer todos os arquivos id sem filtrar por journal e acron e carregá-los na base de dados. Em etapa posterior, extrair os dados e registrar nos MigratedArticle.

A diferença é que cada arquivo id será percorrido apenas 1 vez.

Etapas

  • a) obtenção dos arquivos *.id
  • b) armazenamento do arquivo em banco de dados em modelo que contenha nome do arquivo, a data da coleta, data do arquivo, tamanho do arquivo (Talvez migration.models.MigratedFiles atenda). Estes dados ajudam a identificar se houve atualização dos arquivos .id
  • c) leitura aos arquivos *.id "novos" registrados no banco de dados para conversão do conteúdo dos arquivos *.id em JSON
  • d) extração do conteúdo do JSON
  • e) armazenamento dos registros JSON em MigratedArticle

Notas

Para (a), pode ser usada a classe para obter os caminhos para os arquivos id que
contém registros de documentos https://github.com/scieloorg/scielo_migration/blob/c4ba659b1decf2923fd45dc09f9eb3c59c55d73d/scielo_classic_website/models/issue_files.py#L270
Para (d), pode ser usado https://github.com/scieloorg/scielo_migration/blob/main/scielo_classic_website/iid2json/id2json3.py
Para (e):

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

No branches or pull requests

2 participants