Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current Restore this Version View Version History

« Previous Version 2 Next »

Esta página tem como finalidade documentar o processo de coleta dos dados de planilhas presentes no Sharepoint.

A extração dos dados foi realizada utilizando linguagem de programação Python, com framework Spark em um Cluster Databrics da Dexco.

Este processo consome as APIs oficiais do Sharepoint via biblioteca escrita em Python.

Resumo do Processo

Baseado em configurações informadas ao job no momento de configuração, o coletor realiza as seguintes etapas:

  • Recupera secrets de chave USER e PASSWORD do escopo USER_DIEGO

  • Autentica no Sharepoint

  • Realiza o download da planilha em ambiente local do cluster

  • Transforma os dados da planilha e aba especificada durante a etapa de configuração do job em tabela Spark

Configuração do Job

Embaixo da chave tasks do arquivo .json de configuração de um agendamento de job do Databricks, utilize a seguinte estrutura, conforme utilizada na orquestração da extração da planilha Market Consensus.xlsx :

{
...
"tasks": [
    {
        "task_key": "coletor_market_consensus",
        "notebook_task": {
            "notebook_path": "/Repos/paulo.werneck-ext@dex.co/analytics-databricks-inteligencia-mercado/Workspace/bronze/inteligencia-mercado/coletor-excel-sharepoint",
            "base_parameters": {
                "database": "indicadores_mercado",
                "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento",
                "schema": "{'data': 'date', 'ebitda_2022': 'smallint', 'ebitda_2023': 'smallint', 'ebitda_2024': 'smallint', 'ebitda_2025': 'smallint', 'ebitda_2026': 'smallint', 'ev_ebitda': 'float', 'media_5y': 'float', 'maior_1dp': 'float', 'menor_1dp': 'float'}",
                "remove_columns": "[]",
                "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Market Consensus/Market Consensus.xlsx",
                "sheet_name": "Consensus",
                "remove_lines": "[0, 1]",
                "table": "market_consensus"
            },
            "source": "WORKSPACE"
        },
        "existing_cluster_id": "0523-180911-cnxb45ry",
        "timeout_seconds": 0,
        "email_notifications": {}
    }
  ],
...
}

OBS: É possível adicionar mais de uma task, de acordo com a necessidade.

Para cada Task de um job, os seguintes parâmetros serão necessários serem informados:

  • “base_url“ (String) : URL do Diretório base onde os arquivos Excel estão armazenados dentro do Sharepoint

  • “file“ (String) : Caminho dentro da pasta do Sharepoint onde o arquivo Excel que será coletado

  • “sheet_name“ (String) : Nome da Aba do Excel no Sharepoint que será aberto para realizar a extração

  • “remove_lines“ ( Lista de Inteiros -> [0,1] ) : Números das linhas que serão puladas/removidas da extração dos dados (inicia sempre em zero e incremental em 1 para várias linhas sendo separado por vírgula), informe [] para não remover nenhuma linha.

  • “remove_columns” ( Lista de String -> ['Col1', 'Col2'] ) : Nome das colunas que serão puladas/removidas da extração dos dados, , informe [] para não remover nenhuma coluna.

  • “schema“ (Dict de Key (String) e Value (String) -> { 'Col1' : 'date', 'Col2' : 'smallint' }) :

  • “database” (String) : Nome do Banco de dados a ser criado a tabela

  • “table” (String): Nome da Tabela no Banco de dados do parâmetro “database“ que será criado a tabela

Tabelas que serão ingeridas pelo Coletor Sharepoint:

Repositório: https://bitbucket.org/duratex/analytics-databricks-inteligencia-mercado/src/master/

Job: coletor_excel_sharepoint_bases_modelos_projecao

  • Task: coletor_demanda_deca

Nome do Parâmetro

Valor

base_url

https://duratexsa.sharepoint.com/sites/JornadaCrescimento

file

/sites/JornadaCrescimento/Documentos Partilhados/Processar/Onda 3/Demanda Deca.xlsx

sheet_name

Onda3

remove_lines

[0]

remove_columns

[]

schema

{'Data':'date','Metais_Basicos':'int','Metais_Competitivos':'int','Metais_Medio_Luxo':'int','Metais_Exportacao':'int','Loucas_Bacias_Competitivas':'int','Loucas_Bacias_Izy':'int','Loucas_Bacias_Medio_Luxo':'int','Loucas_Cubas':'int','Loucas_Outros':'int','Loucas_Exportacao':'int','Chuveiros_Duchas':'int','Chuveiros_Torneiras_Eletricas':'int','Chuveiros_Torneiras_Plasticas':'int','Chuveiros_Outros':'int','Chuveiros_Exportacao':'int'}

database

bases_modelos_projecoes

table

demanda_deca

Metadados da Tabela de Destino em CSV:

  • Task: coletor_demanda_madeira

Nome do Parâmetro

Valor

base_url

https://duratexsa.sharepoint.com/sites/JornadaCrescimento

file

/sites/JornadaCrescimento/Documentos Partilhados/Processar/Onda 3/Demanda Madeira.xlsx

sheet_name

Onda3

remove_lines

[0]

remove_columns

[]

schema

{'Data':'date','MDP_Revestido':'int','MDP_Cru':'int','MDF_Revestido':'int','MDF_Cru':'int'}

database

bases_modelos_projecoes

table

demanda_madeira

Metadados da Tabela de Destino em CSV:

  • Task: coletor_demanda_rc

Nome do Parâmetro

Valor

base_url

https://duratexsa.sharepoint.com/sites/JornadaCrescimento

file

/sites/JornadaCrescimento/Documentos Partilhados/Processar/Onda 3/Demanda RC.xlsx

sheet_name

Onda3

remove_lines

[0]

remove_columns

[]

schema

{'Data':'date','Porcelanato':'int'}

database

bases_modelos_projecoes

table

demanda_rc

Metadados da Tabela de Destino em CSV:

  • Task: coletor_dias_de_estoque_deca

Nome do Parâmetro

Valor

base_url

https://duratexsa.sharepoint.com/sites/JornadaCrescimento

file

/sites/JornadaCrescimento/Documentos Partilhados/Processar/Onda 3/Dias de Estoque Deca.xlsx

sheet_name

Onda3

remove_lines

[0]

remove_columns

[]

schema

{'Data':'date','Hydra':'int','Loucas':'int','Metais':'int','RC':'int'}

database

bases_modelos_projecoes

table

dias_de_estoque_deca

Metadados da Tabela de Destino em CSV:

  • Task: coletor_dias_de_estoque_madeira

Nome do Parâmetro

Valor

base_url

https://duratexsa.sharepoint.com/sites/JornadaCrescimento

file

/sites/JornadaCrescimento/Documentos Partilhados/Processar/Onda 3/Dias de Estoque Madeira.xlsx

sheet_name

Onda3

remove_lines

[0]

remove_columns

[]

schema

{'Data':'date','Industria_PA':'int','Industria_Chapas':'int','Varejo_Madeirado':'int','Varejo_Brancos':'int'}

database

bases_modelos_projecoes

table

dias_de_estoque_madeira

Metadados da Tabela de Destino em CSV:

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.