---
# System prepended metadata

title: EMR Workflows

---

# EMR Workflows

workflow-feature_based
--

- jobs: 
    - job-recommender-feature_based_anuncio
        - input tables:
            - performance (s3)
            - db-pgs-icarro.icarros_public_anuncio (Glue Data Catalog)
        - output tables:
            - recommender-feature_based_anuncio (DynamoDB)
    - job-recommender-feature_based_modelo
        - input tables:
            - performance (s3)
            - db-pgs-icarro.icarros_public_anuncio (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_versao (Glue Data Catalog)
        - output tables:
            - db-recommender.recommenderdb_feature_based_modelo (DynamoDB)
    - job-recommender-feature_based_versao
        - input tables:
            - performance (s3)
            - db-pgs-icarro.icarros_public_anuncio (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_versao (Glue Data Catalog)
        - output tables:
            - db-recommender.recommender_feature_based_versao (DynamoDB)

workflow-content_based
--

- jobs: 
    - content_based_anuncio
        - input tables:
            - icarros.anuncio (postgresql)
            - icarros.versao (postgresql)
            - icarros.cidade (postgresql)
        - output tables:
            - recommender_content_based_anuncio (DynamoDB)
    - content_based_modelo_versao
        - input tables:
            - icarros.versao (postgresql)
            - icarros.anuncio (postgresql)
            - icarros.modelo (postgresql)
            - icarros.marca (postgresql)
            - icarros.reviewusuario (postgresql)
        - output tables:
            - recommender_content_based_modelo (DynamoDB)
    - content_based_versao
        - input tables:
            - icarros.versao (postgresql)
            - icarros.anuncio (postgresql)
        - output tables:
            - recommender_content_based_versao (DynamoDB)

workflow-filtro_colaborativo
--

- jobs: 
    - job-recommender-dataset_score_propensao_anuncio
        - input tables:
            - performance (s3)
            - db-pgs-icarro.icarros_public_anuncio (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_versao (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_anuncioexcluido (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_modelo (Glue Data Catalog)
        - output tables:
            - propensao_anuncio (s3://icarros-sandbox-datalake/apps/recommender/data)
    - job-recommender-dataset_score_propensao_modelo
        - input tables:
            - performance (s3)
            - db-pgs-icarro.icarros_public_anuncio (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_versao (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_anuncioexcluido (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_modelo (Glue Data Catalog)
        - output tables:
            - propensao_modelo (s3://icarros-sandbox-datalake/apps/recommender/data)
    - job-recommender-dataset_score_propensao_versao
        - input tables:
            - performance (s3)
            - db-pgs-icarro.icarros_public_anuncio (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_versao (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_anuncioexcluido (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_modelo (Glue Data Catalog)
        - output tables:
            - propensao_versao (s3://icarros-sandbox-datalake/apps/recommender/data)
    - 
    - job-recommender-filtro-colaborativo **(parece ser apenas um teste)**
        - input tables:
            - performance (s3)
            - db-pgs-icarro.icarros_public_anuncio (Glue Data Catalog)
            - db-pgs-icarro.icarros_public_versao (Glue Data Catalog)
        - output tables:
            - recommenderdb_teste_filtro_colaborativo_modelo
    - job-recommender-template_collaborative_filter_anuncio
        - input tables:
            - db-recommender.recommenderdb_score_propensao_anuncio (Glue Data Catalog, **gerada em job-recommender-dataset_score_propensao_anuncio.py?**)
        - output tables:
            - recomendação para usuário
                - s3://icarros-sandbox-datalake/apps/recommender/data/als_modelo/usuario
                - recommender_usuario_anuncio (DynamoDB)
            - recomendação para internauta
                - s3://icarros-sandbox-datalake/apps/recommender/data/als_modelo/internauta
                - recommender_internauta_anuncio (DynamoDB)
    - job-recommender-template_collaborative_filter_modelo
        - input tables:
            - db-recommender.recommenderdb_score_propensao (Glue Data Catalog, **gerada em job-recommender-dataset_score_propensao_modelo?**)
        - output tables:
            - recomendação para usuário
                - recommender_usuario_modelo (DynamoDB)
            - recomendação para internauta
                - recommender_internauta_modelo (DynamoDB)
    - job-recommender-template_collaborative_filter_versao
        - input tables:
            - db-recommender.recommenderdb_score_propensao_versao (Glue Data Catalog, **gerada em job-recommender-dataset_score_propensao_modelo.py?**)
        - output tables:
            - recomendação para usuário
                - recommender_usuario_versao (DynamoDB)
            - recomendação para internauta
                - recommender_internauta_versao (DynamoDB)

workflow-base_tables
--

- jobs: 
    - bases geradas são utilizadas para a tomada de decisão de qual modelo utilizar, e também em um caso específico do filtro colaborativo (AWS Lambda)
        - job-recommender-interacoes **(parece desnecessária, base gerada em branco no DynamoDB)**
            - input tables:
                - performance (s3)
                - db-pgs-icarro.icarros_public_versao (Glue Data Catalog)
            - output tables:
                - db-recommender.recommenderdb_interacoes (DynamoDB) 
        - job-recommender-interacoes_internauta
            - input tables:
                - performance (s3)
                - db-pgs-icarro.icarros_public_versao (Glue Data Catalog)
            - output tables:
                - recommender_interacoes_internauta (DynamoDB)
        - job-recommender-interacoes_usuario
            - input tables:
                - performance (s3)
                - db-pgs-icarro.icarros_public_versao (Glue Data Catalog)
            - output tables:
                - recommender_interacoes_usuario (DynamoDB)
    - bases geradas são utilizadas no feature based (AWS Lambda)
        - job-recommender-users **(parece desnecessária, base gerada em branco no DynamoDB)**
            - input tables:
                - performance (s3)
            - output tables:
                - db-recommender.recommenderdb_users (DynamoDB) 
        - job-recommender-users_internauta
            - input tables:
                - performance (s3)
            - output tables:
                - recommender_users_internauta (DynamoDB) 
        - job-recommender-users_usuario
            - input tables:
                - performance (s3)
            - output tables:
                - recommender_users_usuario (DynamoDB) 

Comments
--
content_based_modelo_versao.py
- linha 93, filtro (F.col('cont') <= 1): Essa operação parece estar filtrando todos os modelos que possuem mais de uma versão, o que não faz sentido.