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 16 Current »

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: Caminho_para_dados_de_produção

  • 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: Caminho_para_dados_de_laboratório

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

      • Input: caminho a ser verificado

      • Output: True/False a depender da existência

  • executa(path_origin, path_destination):

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

      • Input: caminho de origem dos dados e destino

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.