/
Carga e Origem dos Dados

Carga e Origem dos Dados

Para a automatização do algorítmo Golden Batch utilizamos as bases de dados salvos em parquet no Amazon S3 Storage. As bases utilizadas foram as tabelas de produção e de laboratório.

  • Dados de Produção:

Dados mensurados nas linhas de produção sobre os parametros utilizados em diferentes etapas, maquinas e processos para a produção de MDF.

Path: 'dbfs:/mnt/dexco-dev-da-databricks-storage-in-pae/Golden Batch Produção - Agudos FA2/'

  • Dados de Laboratório:

Medição feita em laboratório sobre características que descrevem a qualidade do MDF como densidade, tração média e tração perpendicular média.

Path: 'dbfs:/mnt/dexco-dev-da-databricks-storage-in-pae/Golden Batch Laboratório - Agudos FA2/'

 

Camadas de Carregamento

O carregamento e tratamento dos dados é feito em camadas estruturadas, onde as tabelas são registradas em cada camada e o código de tratamento acessa apenas as tabelas desta mesma camada, criando blocos fechados de forma que os códigos podem ser desenvolvidos de forma indepedente.

  • Camada Bronze:

Onde ocorre o carregamento de dados de outras origens e salvo dentro do hive_metastorage sem a realização de tratamentos mais complexos.

  • Camada Silver:

Ocorre o tratamento das bases, ajustando os nomes de colunas e verificando a presença de nulos, os tipos registrados nas tabelas (string, inteiro, decimal e etc) e os valores presentes em cada uma das variáveis, além das mudanças de formato e junção de tabelas entre outros possiveis tratamentos.

  • Camada Gold:

O Algoritimo processa os dados da Camada Silver como Input e os resultados são registrado nesta camada. Essa camada é onde está o Output final gerado pelo modelo, sendo a camada de maior valor.

 

Camada Bronze

Para ambos os dados de produção e laboratório utilizamos funções padrões que dependem do pacote unidecode

  • path_exists(path):

    • Verifica se o caminho que foi passado existe

 

  • executa(path_origin, path_destination):

    • Importa dados do S3 Storage, corrrige nome das colunas removendo caracteres especiais e salva a tabela na camada bronze.

    • O Processo ocorre em cargas incrementais, são analisados os parquets mais recentes publicados em S3 comparando com a data do ultimo parquet processado ns camada bronze, além disso ocorre a exclusão de registros salvos na camada bronze posteriores a data minima da carga incremental.

 

Dados de Produção

O notebook utilizado para este processamento se encontra no seguinte caminho dentro do repositório:

Path: jobs/dev/03__layers/01__bronze/processo/2023-02-03__bronze__variaveis_de_producao

 

Após a execução os dados são enviados para a Camada Bronze no hive_metastorage dentro do DataBricks. A tabela é salva no banco de dados golden_batch__bronze com o nome golden_batch__bronze.database__production_line.

Dados de Laboratório

O notebook utilizado para este processamento se encontra no seguinte caminho dentro do repositório:

Path: jobs/dev/03__layers/01__bronze/laboratorio/2023-03-20__bronze__variaveis_de_laboratorio

 

Após a execução os dados são enviados para a Camada Bronze no hive_metastorage dentro do DataBricks. A tabela é salva no banco de dados golden_batch__bronze com o nome golden_batch__bronze.database__laboratory_variables.

Camada Silver

Dados de Produção

O notebook utilizado para este processamento se encontra no seguinte caminho dentro do repositório:

Path: jobs/dev/03__layers/02__silver/processo/2023_03_09__silver__production_line

É necessário a instalação do pacote slugify para a padronização dos caracteres em letras minúsculas para os nomes das colunas e utilização de underline como separador.

Foram importadas as bibliotecas necessárias

 

Para facilitar a carga de dados são gerados intervalos de tempo para que os dados sejam processados em lotes, salvando na base de dados e posteriormente descartados para a consulta para o próximo intervalo.

A função gera_timestamps cria a partir de uma data maxima e minima uma lista de timestamps dado uma janela de tempo de um dia.

As consultas são feitas a partir do SQL na tabela golden_batch__bronze.databse__production_line com as datas coletadas pela lista de timestamp

 

Outras funções tambem são utilizadas para a carga dos dados, bem como a função de mudar nome das colunas

É necessário excluir as colunas que não representam parametros de produção mensuráveis

Mudamos a tabela do formato wide para o formato long afim de facilitar a carga de novas variáveis, tambem excluimos os valores nulos

Criamos uma função que faz todos os processamentos para um mesmo lote

Salvamos o processamento em lote no modo append para acrescentar esses novos dados a carga histórica

 

Rodamos todo o processo e salvamos o lote por meio das funções que foram criadas, usando datas máximas e mínimas da tabela golden_batch__bronze.database__production_line.

 

E os dados foram transformado no objeto Spark Dataframe e registrados na Camada Silver . A tabela é salva no banco de dados golden_batch__silver com o nome golden_batch__silver.database__production_line.

Dados de Laboratóro

O notebook utilizado para este processamento se encontra no seguinte caminho dentro do repositório:

Path: jobs/dev/03__layers/02__silver/laboratorio/2023_03_21__silver__laboratory_variables

É necessário a instalação do pacote slugify para a padronização dos caracteres em letras minúsculas para os nomes das colunas e utilização de underline como separador.

Foram importadas as bibliotecas necessárias

A tabela foi salva como Pandas Dataframe e os nomes das colunas foram selecionadas e padronizadas

O formato da tabela foi transformado do formato wide para o formato long e foram excluidos os valores nulos

 

E os dados foram transformado no objeto Spark Dataframe e registrados na Camada Silver . A tabela é salva no banco de dados golden_batch__silver com o nome golden_batch__silver.database__laboratory_variables.

 

Add label

Related content

Análise dos Parâmetros de Produção
Análise dos Parâmetros de Produção
Read with this
Golden Batch Fase 2
Read with this
Base Colômbia
Base Colômbia
More like this