/
DGA-709 | Projeto Inflor

DGA-709 | Projeto Inflor

O módulo INFLOR Analytics é um Data Warehouse específico para a solução INFLOR FOREST. Ele contém tabelas Fatos e Dimensões para fornecer aos clientes da INFLOR uma base consistente para construção de relatórios e dashboards através de ferramentas de self-service BI como Microsoft Power BI, Tableau, Qlik Sense, QuickSight, Domo,...

 

A INFLOR padronizou os nomes dos atributos-chave das tabelas de dimensões. Eles possuem o nome da tabela que termina com a terminação "_id". Por exemplo: A tabela de dimensões dim_material possui o atributo-chave dim_material_id. E é através desse atributo que deverá ser feito o relacionamento entra a tabela fato e a tabela dimensão dim_material.

As tabela fato contém atributos que são medidas de negócios e atributos que são os campos chaves das tabelas de dimensões.

 

Objetivo.

Nesta FASE 1 do projeto vamos disponibilizar os dados dos schemas Cadastro Florestal e Terras. Os dados serem carregados para o desenvolvimento de datalake para Florestal no databricks, consiste na extração de 16 tabelas, para que as áreas de negocio possam montar seus relatórios. (here)

Recursos Necessários .

Os recursos utilizados devem ser mencionados para apoio no entendimento e desenvolvimento. Abaixo segue a lista de todos os insumos utilizados para o estabelecimento deste projeto:

 

  • Notebook do Databricks para extração dos dados do DB MsSQL Server.

  • Jira: este sistema pode ser usado para a consulta do Card DGA - 709 a qual apresenta todas as informações do projeto e o commit dos notebooks do Databricks.

Desenvolvimento da carga de arquivos

Lista de tabelas para ingestão.

dbTableCadastroFlorestalMsSql = ["FACT_CONSOLIDATED_STAND","FACT_STAND","FACT_STAND_TIMBER_CERTIFICATION","FACT_STAND_WOOD_CHARACTERISTIC"] dbTableTerrasMsSql = ["FACT_FARM","FACT_FARM_PERSON","FACT_LAND_CONTRACT","FACT_LAND_CONTRACT_FARM","FACT_LAND_CONTRACT_LAND_DOCUMENTATION","FACT_LAND_CONTRACT_PAYMENT","FACT_LAND_DOCUMENTATION","FACT_LAND_DOCUMENTATION_CONDITIONS","FACT_LAND_DOCUMENTATION_LAND_USE","FACT_LAND_DOCUMENTATION_PERSON","FACT_LAND_DOCUMENTATION_REGISTRATION","FACT_LICENSE"]

 

Parâmetros de conexão.

host = dbutils.secrets.get(scope = "DATABASE-INFLOR-PRD", key = "HOST") port = dbutils.secrets.get(scope = "DATABASE-INFLOR-PRD", key = "PORT") dbDatabase = dbutils.secrets.get(scope = "DATABASE-INFLOR-PRD", key = "DATABASE") user = dbutils.secrets.get(scope = "DATABASE-INFLOR-PRD", key = "USER") password = dbutils.secrets.get(scope = "DATABASE-INFLOR-PRD", key = "PASSWORD") driver = "com.microsoft.sqlserver.jdbc.spark" server_name = f"jdbc:sqlserver://{host}:{port}" url = server_name + ";" + "databaseName=" + dbDatabase + ";" dbDatabaseTarget = "INFLOR_ANL_DEXCO"

 

Leitura e escrita dos dados.

def read_dbTableList(schema, dbTableList): for table in dbTableList: df = spark.read.format("jdbc")\ .option("url", url)\ .option("dbtable", table)\ .option("user", user)\ .option("password", password)\ .option("ssl", True)\ .option("sslmode", "require")\ .load() df.write.format("delta")\ .mode("overwrite")\ .option("overwriteSchema", "true")\ .saveAsTable(dbDatabaseTarget+"."+schema+"_"+table) print(schema+"_"+table + " was created successfully.") for schema in schemaList: if schema == "cadastro_florestal": read_dbTableList(schema, dbTableCadastroFlorestalMsSql) else: read_dbTableList(schema, dbTableTerrasMsSql)

 

Tabelas inseridas no databricks.

Schema : cadastro_florestal e terra

 

 

 

 

 

 

 

 

Add label

Related content

Recursos humanos - Carga de arquivos na zitrhr145
Recursos humanos - Carga de arquivos na zitrhr145
Read with this
Inflor Analytics
More like this
Declaração de Vinculos | Sumário Executivo
Declaração de Vinculos | Sumário Executivo
More like this
Processo DATA_PREP (large.tb_diario_de_vendas)
Processo DATA_PREP (large.tb_diario_de_vendas)
More like this
CARGA_API_PRECIFICA_DASH
CARGA_API_PRECIFICA_DASH
More like this