/
Coletor Sharepoint - Bases Modelos Projeção

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 :


1{ 2... 3"tasks": [ 4 { 5 "task_key": "coletor_market_consensus", 6 "notebook_task": { 7 "notebook_path": "/Repos/paulo.werneck-ext@dex.co/analytics-databricks-inteligencia-mercado/Workspace/bronze/inteligencia-mercado/coletor-excel-sharepoint", 8 "base_parameters": { 9 "database": "indicadores_mercado", 10 "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", 11 "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'}", 12 "remove_columns": "[]", 13 "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Market Consensus/Market Consensus.xlsx", 14 "sheet_name": "Consensus", 15 "remove_lines": "[0, 1]", 16 "table": "market_consensus" 17 }, 18 "source": "WORKSPACE" 19 }, 20 "existing_cluster_id": "0523-180911-cnxb45ry", 21 "timeout_seconds": 0, 22 "email_notifications": {} 23 } 24 ], 25... 26}

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


Databricks:

Relação de Jobs x Notebooks que compõem o processo:

  • Databricks job: coletor_excel_sharepoint_bases_modelos_projecao

Task
Parâmetros
Periodicidade
Notebook
Repositório

coletor_demanda_deca

1{ 2 "database": "bases_modelos_projecoes", 3 "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", 4 "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'}", 5 "remove_columns": "[]", 6 "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Onda 3/Demanda Deca.xlsx", 7 "sheet_name": "Onda3", 8 "remove_lines": "[0]", 9 "table": "demanda_deca" 10 }

Diário

(13 0 1 ? * *)

/analytics-databricks-inteligencia-mercado/Workspace/bronze/inteligencia-mercado/coletor-excel-sharepoint

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

coletor_demanda_rc

1{ 2 "database": "bases_modelos_projecoes", 3 "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", 4 "schema": "{'Data':'date','Porcelanato':'int'}", 5 "remove_columns": "[]", 6 "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Onda 3/Demanda RC.xlsx", 7 "sheet_name": "Onda3", 8 "remove_lines": "[0]", 9 "table": "demanda_rc" 10 }

Diário

(13 0 1 ? * *)

/analytics-databricks-inteligencia-mercado/Workspace/bronze/inteligencia-mercado/coletor-excel-sharepoint

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

coletor_demanda_deca_anual

1{ 2 "database": "bases_modelos_projecoes", 3 "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", 4 "schema": "{'data': 'string', 'Metais_MI_Total': 'float', 'Loucas_MI_Total': 'float'}", 5 "remove_columns": "['Unnamed: 3']", 6 "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Onda 3/Demanda Deca_Anual.xlsx", 7 "sheet_name": "Sheet1", 8 "remove_lines": "[0]", 9 "table": "demanda_deca_anual" 10 }

Diário

(13 0 1 ? * *)

/analytics-databricks-inteligencia-mercado/Workspace/bronze/inteligencia-mercado/coletor-excel-sharepoint

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

coletor_projecoes_longo_prazo

1{ 2 "database": "bases_modelos_projecoes", 3 "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", 4 "schema": "{'indices': 'string', '2009': 'double', '2010': 'double', '2011': 'double', '2012': 'double', '2013': 'double', '2014': 'double', '2015': 'double', '2016': 'double', '2017': 'double', '2018': 'double', '2019': 'double', '2020': 'double', '2021': 'double', '2022': 'double', '2023': 'double', '2024': 'double', '2025': 'double', '2026': 'double', '2027': 'double'}", 5 "remove_columns": "[]", 6 "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Onda 3/Projeções-Longo-Prazo.xlsx", 7 "sheet_name": "Plan1", 8 "remove_lines": "[]", 9 "table": "projecoes_longo_prazo" 10 }

Diário

(13 0 1 ? * *)

/analytics-databricks-inteligencia-mercado/Workspace/bronze/inteligencia-mercado/coletor-excel-sharepoint

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


  • Tabelas referentes ao job: coletor_excel_sharepoint_bases_modelos_projecao

bases_modelos_projecoes.demanda_deca

Field
Key
Not Null
Partition
Element
Type
Size
Decimal
Description

Data

Não

Não

Não

 

date

 

 


Metais_Basicos

Não

Não

Não

 

int

 

 


Metais_Competitivos

Não

Não

Não

 

int

 

 


Metais_Medio_Luxo

Não

Não

Não

 

int

 

 


Metais_Exportacao

Não

Não

Não

 

int

 

 


Loucas_Bacias_Competitivas

Não

Não

Não

 

int




Loucas_Bacias_Izy

Não

Não

Não

 

int




Loucas_Bacias_Medio_Luxo

Não

Não

Não

 

int




Loucas_Cubas

Não

Não

Não

 

int




Loucas_Outros

Não

Não

Não

 

int




Loucas_Exportacao

Não

Não

Não

 

int




Chuveiros_Duchas

Não

Não

Não

 

int




Chuveiros_Torneiras_Eletricas

Não

Não

Não

 

int




Chuveiros_Torneiras_Plasticas

Não

Não

Não

 

int




Chuveiros_Outros

Não

Não

Não

 

int




Chuveiros_Exportacao

Não

Não

Não

 

int




 

 

bases_modelos_projecoes.demanda_rc

Field
Key
Not Null
Partition
Element
Type
Size
Decimal
Description

Data

Não

Não

Não

 

date

 

 


Porcelanato

Não

Não

Não

 

int

 

 


 


bases_modelos_projecoes.coletor_demanda_deca_anual

Field
Key
Not Null
Partition
Element
Type
Size
Decimal
Description

data

Não

Não

Não

 

string

 

 


Metais_MI_Total

Não

Não

Não

 

float

 

 


Loucas_MI_Total

Não

Não

Não

 

float

 

 


 


bases_modelos_projecoes.projecoes_longo_prazo

Field
Key
Not Null
Partition
Element
Type
Size
Decimal
Description

indice

Não

Não

Não

 

string

 

 


2009

Não

Não

Não

 

double




2010

Não

Não

Não

 

double




2011

Não

Não

Não

 

double




2012

Não

Não

Não

 

double




2013

Não

Não

Não

 

double




2014

Não

Não

Não

 

double




2015

Não

Não

Não

 

double

 

 


2016

Não

Não

Não

 

double

 

 


2017

Não

Não

Não

 

double

 

 


2018

Não

Não

Não

 

double

 

 


2019

Não

Não

Não

 

double




2020

Não

Não

Não

 

double




2021

Não

Não

Não

 

double




2022

Não

Não

Não

 

double




2023

Não

Não

Não

 

double




2024

Não

Não

Não

 

double




2025

Não

Não

Não

 

double




2026

Não

Não

Não

 

double




2027

Não

Não

Não

 

double