/
Coletor Sharepoint

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:

  • Databrics job: coletor_excel_sharepoint

Task
Parâmetros
Periodicidade
Notebook
Repositório

coletor_energia_eletrica

1{ 2 "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", 3 "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Energia Elétrica/Energia Elétrica.xlsx", 4 "sheet_name": "Sheet1", 5 "remove_lines": "[0,1,2,3]", 6 "remove_columns": "['ID:']", 7 "database": "indicadores_mercado", 8 "table": "tb_energia_eletrica", 9 "schema": "{'mes':'date','energia_eletrica_brasil':'double','energia_eletrica_brasil_projecao':'double'}" 10 }

Diário

(13 0 0 ? * *)

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

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

coletor_economia_vs_poa

1{ 2 "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", 3 "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Economia vs POA (Suprimentos)/Economia vs POA.xlsx", 4 "sheet_name": "Economia", 5 "remove_lines": "[0]", 6 "remove_columns": "['Unnamed: 6','Dados para Gráfico','Unnamed: 8','Unnamed: 9','Unnamed: 10']", 7 "database": "indicadores_mercado", 8 "table": "tb_economia_vs_poa", 9 "schema": "{'mes_ytd':'date','inflacao_acumulada_reais_madeira':'double','inflacao_acumulada_reais_deca':'double','inflacao_acumulada_reais_rc':'double','inflacao_acumulada_reais_total':'double', 'perc_spend_total':'double'}" 10 }

Diário

(13 0 0 ? * *)

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

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

coletor_market_consensus

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

Diário

(13 0 0 ? * *)

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

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

coletor_hoff_solucoes

1{ 2 "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", 3 "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Hoff Soluções/Hoff Soluções.xlsx", 4 "sheet_name": "Projetos Arquitetônicos", 5 "remove_lines": "[0]", 6 "remove_columns": "[]", 7 "database": "hoff_solucoes", 8 "table": "hoff_solucoes", 9 "schema": "{'data': 'date', 'ano': 'smallint', 'proj_arquit': 'int', 'proj_arquit_reformas': 'int', 'proj_arquit_empreendimentos': 'int', 'proj_arquit_reformas_pf': 'int', 'proj_arquit_reformas_pj': 'int', 'proj_arquit_reformas_2019_10': 'int', 'proj_arquit_empreendimentos_2019_100': 'int', 'proj_arquit_empreendimentos_n': 'int', 'proj_arquit_empreendimentos_ne': 'int', 'proj_arquit_empreendimentos_co': 'int', 'proj_arquit_empreendimentos_se': 'int', 'proj_arquit_empreendimentos_s': 'int', 'ano2': 'int', 'proj_arquit_reformas_ano': 'string', 'proj_arquit_empreendimentos_ano': 'string'}" 10 }

Diário

(13 0 0 ? * *)

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

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

coletor_sell_out_deca

1{ 2 "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", 3 "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Sell-out Deca/Sell-out Deca.xlsx", 4 "sheet_name": "Sheet1", 5 "remove_lines": "[0]", 6 "remove_columns": "[]", 7 "database": "indicadores_mercado", 8 "table": "tb_sell_out_deca", 9 "schema": "{'ano': 'int', 'mes': 'int', 'ano_mes': 'string', 'Sellout_Metais': 'float', 'Sellout_Loucas': 'float', 'Sellout_Hydra': 'float', 'Sellout_RC': 'float'}" 10 }

Diário

(13 0 0 ? * *)

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

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

coletor_investing_taxa_de_longo_prazo

1{ 2 "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", 3 "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Taxa de Longo Prazo/Taxa de Longo Prazo.xlsx", 4 "sheet_name": "Onda1", 5 "remove_lines": "[]", 6 "remove_columns": "[]", 7 "database": "investing", 8 "table": "tb_brazil_10_year_bond_yield_sharepoint_silver", 9 "schema": "{'Data': 'date','10y_Brazilian_Bond': 'double'}" 10 }

Diário

(13 0 0 ? * *)

/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

indicadores_mercado.tb_energia_eletrica

Field
Key
Not Null
Partition
Element
Type
Size
Decimal
Description

mes

Não

Não

Não

 

date

 

 


energia_eletrica_brasil

Não

Não

Não

 

double

 

 


energia_eletrica_brasil_projecao

Não

Não

Não

 

double

 

 



indicadores_mercado.tb_economia_vs_poa

Field
Key
Not Null
Partition
Element
Type
Size
Decimal
Description

mes_ytd

Não

Não

Não

 

date

 

 


inflacao_acumulada_reais_madeira

Não

Não

Não

 

double

 

 


inflacao_acumulada_reais_deca

Não

Não

Não

 

double

 

 


inflacao_acumulada_reais_rc

Não

Não

Não

 

double

 

 


inflacao_acumulada_reais_total

Não

Não

Não

 

double

 

 


perc_spend_total

Não

Não

Não


double




 

indicadores_mercado.tb_market_consensus

Field
Key
Not Null
Partition
Element
Type
Size
Decimal
Description

data

Não

Não

Não

 

date

 

 


ebitda_2022

Não

Não

Não

 

smallint

 

 


ebitda_2023

Não

Não

Não

 

smallint

 

 


ebitda_2024

Não

Não

Não

 

smallint

 

 


ebitda_2025

Não

Não

Não

 

smallint

 

 


ebitda_2026

Não

Não

Não

 

smallint




ev_ebitda

Não

Não

Não

 

float




media_5y

Não

Não

Não

 

float




maior_1dp

Não

Não

Não

 

float




menor_1dp

Não

Não

Não

 

float





hoff_solucoes.hoff_solucoes

Field
Key
Not Null
Partition
Element
Type
Size
Decimal
Description

data

Não

Não

Não

 

date

 

 


ano

Não

Não

Não

 

smallint

 

 


proj_arquit

Não

Não

Não

 

int

 

 


proj_arquit_reformas

Não

Não

Não

 

int

 

 


proj_arquit_empreendimentos

Não

Não

Não

 

int

 

 


proj_arquit_reformas_pf

Não

Não

Não

 

int




proj_arquit_reformas_pj

Não

Não

Não

 

int




proj_arquit_reformas_2019_10

Não

Não

Não

 

int




proj_arquit_empreendimentos_2019_100

Não

Não

Não

 

int




proj_arquit_empreendimentos_n

Não

Não

Não

 

int




proj_arquit_empreendimentos_ne

Não

Não

Não

 

int




proj_arquit_empreendimentos_co

Não

Não

Não

 

int




proj_arquit_empreendimentos_se

Não

Não

Não

 

int




proj_arquit_empreendimentos_s

Não

Não

Não

 

int




ano2

Não

Não

Não

 

int




proj_arquit_reformas_ano

Não

Não

Não

 

string




proj_arquit_empreendimentos_ano

Não

Não

Não

 

string





indicadores_mercado.tb_sell_out_deca

Field
Key
Not Null
Partition
Element
Type
Size
Decimal
Description

ano

Não

Não

Não

 

int

 

 


mes

Não

Não

Não

 

int

 

 


ano_mes

Não

Não

Não

 

string

 

 


Sellout_Metais

Não

Não

Não

 

float

 

 


Sellout_Loucas

Não

Não

Não

 

float

 

 


Sellout_Hydra

Não

Não

Não

 

float




Sellout_RC

Não

Não

Não

 

float





investing.tb_brazil_10_year_bond_yield_sharepoint_silver

Field
Key
Not Null
Partition
Element
Type
Size
Decimal
Description

Data

Não

Não

Não

 

date

 

 


10y_Brazilian_Bond

Não

Não

Não

 

double