/
Coletor Sharepoint

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 :

 

{ ... "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

 

Databricks:

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

  • Databrics job: coletor_excel_sharepoint

Task
Parâmetros
Periodicidade
Notebook
Repositório
Task
Parâmetros
Periodicidade
Notebook
Repositório

coletor_energia_eletrica

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

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

{ "base_url": "https://duratexsa.sharepoint.com/sites/JornadaCrescimento", "file": "/sites/JornadaCrescimento/Documentos Partilhados/Processar/Economia vs POA (Suprimentos)/Economia vs POA.xlsx", "sheet_name": "Economia", "remove_lines": "[0]", "remove_columns": "['Unnamed: 6','Dados para Gráfico','Unnamed: 8','Unnamed: 9','Unnamed: 10']", "database": "indicadores_mercado", "table": "tb_economia_vs_poa", "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'}" }

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

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

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

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

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

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

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

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

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

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

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

 

 

 

 

Add label

Related content

Coletor Sharepoint - Bases Modelos Projeção
Coletor Sharepoint - Bases Modelos Projeção
More like this
Coletor Itaú Projeções
Coletor Itaú Projeções
More like this
Coletor API Tendências
Coletor API Tendências
More like this
Coletor - Neoway
More like this
Agrupador RQ
More like this