scieloorg / opac-airflow

Componente de coleta e identificação das alterações realizadas nos metadados do SciELO
BSD 2-Clause "Simplified" License
3 stars 11 forks source link
scielo-publishing-framework

OPAC-Airflow

OPAC-Airflow é a configuração SciELO do Apache Airflow para o controle do fluxo de metadados e documentos para a publicação no Site(OPAC), desde o fluxo direto de ingestão legado.

Build Status

Funcionamento

Os metadados são armazenados no Kernel e os arquivos (XMLs, ativos digitais e manifestações) no Minio (também compatível com AWS S3). Para que os dados sejam carregados no site OPAC, são lidos os registros de mudança no Kernel.

Responsabilidades de cada DAG

Instalação

Construindo a aplicação com Docker

docker-compose build

Executando a aplicação:

docker-compose up -d

Instalação no servidor

Requisitos

Inicializando o servidor

$ airflow initdb
$ airflow scheduler
$ airflow webserver

Configuração

Airflow

Conexão com OPAC:

Conexão com Kernel:

Conexão com Object Store (Minio):

Variáveis:

Variáveis opcionais:

Variáveis de ambiente:

Testes Automatizados

No Docker: docker-compose -f docker-compose-dev.yml exec opac-airflow python -m unittest -v

No servidor local:

Dentro da pasta opac-airflow, executar:

export AIRFLOW_HOME=$(pwd)/airflow
export AIRFLOW__CORE__DAGS_FOLDER=$(pwd)/airflow/dags
export AIRFLOW__CORE__BASE_LOG_FOLDER=$(pwd)/airflow/logs
export AIRFLOW__CORE__DAG_PROCESSOR_MANAGER_LOG_LOCATION=$(pwd)/airflow/logs/dag_processor_manager/dag_processor_manager.log
export AIRFLOW__CORE__PLUGINS_FOLDER=$(pwd)/airflow/plugins
export AIRFLOW__SCHEDULER__CHILD_PROCESS_LOG_DIRECTORY=$(pwd)/airflow/logs/scheduler
export POSTGRES_USER=username
export POSTGRES_PASSWORD=''
export POSTGRES_HOST=localhost
export POSTGRES_PORT=5432
export POSTGRES_DB=airflow_externo

cd airflow
python -m unittest -v

Sequência de execução das DAGs

sync_isis_to_kernel

pre_sync_documents_to_kernel

sync_documents_to_kernel
   sync_kernel_to_website

sync_external_content_to_website (executado todo 00:00 do sábado)

Licença de uso

Copyright 2018 SciELO scielo-dev@googlegroups.com. Licensed under the terms of the BSD license. Please see LICENSE in the source code for more information.

https://github.com/scieloorg/opac-airflow/blob/master/LICENSE