From f3dbf14b291d4ff2c994c031af8f30214ca26213 Mon Sep 17 00:00:00 2001 From: folhesgabriel Date: Wed, 25 Oct 2023 17:16:00 -0300 Subject: [PATCH] adiciona modelos e schemas finais --- ...racao__energia_armazenada_reservatorio.sql | 5 ++- ...cao_operacao__energia_natural_afluente.sql | 3 +- ...racao__geracao_termica_motivo_despacho.sql | 5 ++- ..._ons_avaliacao_operacao__geracao_usina.sql | 4 +- ...r_ons_avaliacao_operacao__reservatorio.sql | 4 +- ...cao__restricao_operacao_usinas_eolicas.sql | 8 ++-- models/br_ons_avaliacao_operacao/schema.yml | 37 ++++++++++++++++++- ...os__balanco_energia_subsistemas_dessem.sql | 4 +- ...usto_variavel_unitario_usinas_termicas.sql | 5 ++- models/br_ons_estimativa_custos/schema.yml | 29 +++++++++++++++ 10 files changed, 87 insertions(+), 17 deletions(-) diff --git a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__energia_armazenada_reservatorio.sql b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__energia_armazenada_reservatorio.sql index 8b18de80..e50d88b1 100644 --- a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__energia_armazenada_reservatorio.sql +++ b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__energia_armazenada_reservatorio.sql @@ -8,7 +8,8 @@ "start": 2000, "end": 2024, "interval": 1} - }) + }, + cluster_by=['ano', 'mes']) }} SELECT @@ -17,7 +18,7 @@ SAFE_CAST(ano AS INT64) ano, SAFE_CAST(mes AS INT64) mes, SAFE_CAST(reservatorio AS STRING) reservatorio, SAFE_CAST(tipo_reservatorio AS STRING) tipo_reservatorio, -SAFE_CAST(id_reservatorio_planejamento AS STRING) id_reservatorio_planejamento, +SAFE_CAST(REPLACE(id_reservatorio_planejamento, '.0', '') AS STRING) id_reservatorio_planejamento, SAFE_CAST(reservatorio_equivalente_energia AS STRING) reservatorio_equivalente_energia, SAFE_CAST(id_subsistema AS STRING) id_subsistema, SAFE_CAST(subsistema AS STRING) subsistema, diff --git a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__energia_natural_afluente.sql b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__energia_natural_afluente.sql index 6dc27c2b..e5112487 100644 --- a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__energia_natural_afluente.sql +++ b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__energia_natural_afluente.sql @@ -8,7 +8,8 @@ "start": 2000, "end": 2024, "interval": 1} - }) + }, + cluster_by=['ano', 'mes']) }} SELECT SAFE_CAST(data AS DATE) data, diff --git a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__geracao_termica_motivo_despacho.sql b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__geracao_termica_motivo_despacho.sql index 20c03698..ef25c7bc 100644 --- a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__geracao_termica_motivo_despacho.sql +++ b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__geracao_termica_motivo_despacho.sql @@ -9,7 +9,8 @@ "start": 2013, "end": 2024, "interval": 1} - }) + }, + cluster_by=['ano', 'mes']) }} WITH ons as ( @@ -20,7 +21,7 @@ SAFE_CAST(ano AS INT64) ano, SAFE_CAST(mes AS INT64) mes, SAFE_CAST(id_subsistema AS STRING) id_subsistema, SAFE_CAST(subsistema AS STRING) subsistema, -SAFE_CAST(id_usina_planejamento AS STRING) id_usina_planejamento, +SAFE_CAST(REPLACE(id_usina_planejamento, '.0', '') AS STRING) id_usina_planejamento, SAFE_CAST(usina AS STRING) usina, SAFE_CAST(tipo_patamar AS STRING) tipo_patamar, SAFE_CAST(atendimento_satisfatorio AS INT64) atendimento_satisfatorio, diff --git a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__geracao_usina.sql b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__geracao_usina.sql index 57faf14d..bc272cfa 100644 --- a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__geracao_usina.sql +++ b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__geracao_usina.sql @@ -20,7 +20,7 @@ SAFE_CAST(mes AS INT64) mes, SAFE_CAST(sigla_uf AS STRING) sigla_uf, SAFE_CAST(id_subsistema AS STRING) id_subsistema, SAFE_CAST(subsistema AS STRING) subsistema, -SAFE_CAST(id_empreendimento_aneel AS STRING) id_empreendimento_aneel, +SAFE_CAST(REPLACE(id_empreendimento_aneel, '-', '') AS STRING) id_empreendimento_aneel, SAFE_CAST(usina AS STRING) usina, SAFE_CAST(tipo_usina AS STRING) tipo_usina, SAFE_CAST(tipo_modalidade_operacao AS STRING) tipo_modalidade_operacao, @@ -28,7 +28,7 @@ SAFE_CAST(tipo_combustivel AS STRING) tipo_combustivel, SAFE_CAST(geracao AS FLOAT64) geracao FROM basedosdados-staging.br_ons_avaliacao_operacao_staging.geracao_usina AS t ) -SELECT * +SELECT DISTINCT * FROM ons {% if is_incremental() %} WHERE data > (SELECT max(data) FROM {{ this }} ) diff --git a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__reservatorio.sql b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__reservatorio.sql index 39a33ec1..f051d57c 100644 --- a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__reservatorio.sql +++ b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__reservatorio.sql @@ -8,8 +8,8 @@ SAFE_CAST(data AS DATE) data, SAFE_CAST(id_subsistema AS STRING) id_subsistema, SAFE_CAST(subsistema AS STRING) subsistema, SAFE_CAST(id_empreendimento_aneel AS STRING) id_empreendimento_aneel, -SAFE_CAST(id_reservatorio_planejamento AS STRING) id_reservatorio_planejamento, -SAFE_CAST(id_posto_vazao AS STRING) id_posto_vazao, +SAFE_CAST(REPLACE(id_reservatorio_planejamento, 'nan', '') AS STRING) id_reservatorio_planejamento, +SAFE_CAST(REPLACE(id_posto_vazao, 'nan', '') AS STRING) id_posto_vazao, SAFE_CAST(reservatorio_equivalente AS STRING) reservatorio_equivalente, SAFE_CAST(reservatorio AS STRING) reservatorio, SAFE_CAST(tipo_reservatorio AS STRING) tipo_reservatorio, diff --git a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__restricao_operacao_usinas_eolicas.sql b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__restricao_operacao_usinas_eolicas.sql index baf4e86a..1ff85b12 100644 --- a/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__restricao_operacao_usinas_eolicas.sql +++ b/models/br_ons_avaliacao_operacao/br_ons_avaliacao_operacao__restricao_operacao_usinas_eolicas.sql @@ -21,10 +21,10 @@ SAFE_CAST(sigla_uf AS STRING) sigla_uf, SAFE_CAST(id_subsistema AS STRING) id_subsistema, SAFE_CAST(subsistema AS STRING) subsistema, SAFE_CAST(id_ons AS STRING) id_ons, -SAFE_CAST(id_empreendimento_aneel AS STRING) id_empreendimento_aneel, +SAFE_CAST(REPLACE(id_empreendimento_aneel, '-', '') AS STRING) id_empreendimento_aneel, SAFE_CAST(usina AS STRING) usina, -SAFE_CAST(tipo_razao_restricao AS STRING) tipo_razao_restricao, -SAFE_CAST(tipo_origem_restricao AS STRING) tipo_origem_restricao, +SAFE_CAST(REPLACE(tipo_razao_restricao, 'nan', '') AS STRING) tipo_razao_restricao, +SAFE_CAST(REPLACE(tipo_origem_restricao, 'nan', '') AS STRING) tipo_origem_restricao, SAFE_CAST(geracao AS FLOAT64) geracao, SAFE_CAST(geracao_limitada AS FLOAT64) geracao_limitada, SAFE_CAST(disponibilidade AS FLOAT64) disponibilidade, @@ -32,7 +32,7 @@ SAFE_CAST(geracao_referencia AS FLOAT64) geracao_referencia, SAFE_CAST(geracao_referencia_final AS FLOAT64) geracao_referencia_final FROM basedosdados-staging.br_ons_avaliacao_operacao_staging.restricao_operacao_usinas_eolicas AS t ) -SELECT * +SELECT DISTINCT * FROM ons {% if is_incremental() %} WHERE data > (SELECT max(data) FROM {{ this }} ) diff --git a/models/br_ons_avaliacao_operacao/schema.yml b/models/br_ons_avaliacao_operacao/schema.yml index bdbe19d2..c2e46e80 100644 --- a/models/br_ons_avaliacao_operacao/schema.yml +++ b/models/br_ons_avaliacao_operacao/schema.yml @@ -3,6 +3,11 @@ version: 2 models: - name: br_ons_avaliacao_operacao__reservatorio description: Dados cadastrais dos reservatórios. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data + - id_reservatorio_planejamento columns: - name: data description: Data de entrada em operação do reservatório @@ -59,6 +64,13 @@ models: description: Longitude do reservatório - name: br_ons_avaliacao_operacao__geracao_usina description: Geração verificada de usinas, conjuntos de usinas e grupos de pequenas usinas em base horária. Os Conjuntos são formados por usinas classificadas na modalidade Tipo II-C, conforme Submódulo 7.2 dos Procedimentos de Rede e são estabelecidos em Ajustamentos Operativos, disponíveis no MPO. Os grupos de pequenas usinas são formados por usinas Tipo III, que não possuem relacionamento com o ONS, e os dados são referentes a previsões de geração. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data + - hora + - usina + - id_empreendimento_aneel columns: - name: data description: Data de referência da medição @@ -89,6 +101,12 @@ models: description: Geração de Energia - name: br_ons_avaliacao_operacao__geracao_termica_motivo_despacho description: Dados programados e verificados de geração de usinas térmicas despachadas pelo ONS por motivo de despacho em base horária. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data + - hora + - usina columns: - name: data description: Data de referência da medição @@ -190,9 +208,14 @@ models: de mérito. - name: br_ons_avaliacao_operacao__energia_natural_afluente description: Dados das grandezas de energia natural afluente (ENA) com periodicidade diária por Reservatório. A Energia Natural Afluente (ENA) Bruta representa a energia produzível pela usina e é calculada pelo produto das vazões naturais aos reservatórios com as produtividades a 65% dos volumes úteis. A ENA Armazenável considera as vazões naturais descontadas das vazões vertidas nos reservatórios. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data + - reservatorio columns: - name: data - description: Data + description: Data - name: ano description: Ano - name: mes @@ -227,6 +250,11 @@ models: média de longo termo (MLT) - name: br_ons_avaliacao_operacao__energia_armazenada_reservatorio description: Dados das grandezas de energia armazenada (EAR) em periodicidade diária por Reservatórios. A Energia Armazenada (EAR) representa a energia associada ao volume de água disponível nos reservatórios que pode ser convertido em geração na própria usina e em todas as usinas à jusante na cascata. A grandeza de EAR leva em conta nível verificado nos reservatórios na data de referência. A grandeza de EAR máxima representa a capacidade de armazenamento caso todos os reservatórios do sistema estivessem cheios. A grandeza de EAR para o subsistema à jusante considera a utilização da água do reservatório para produzir energia em uma usina à jusante que está em um subsistema diferente. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data + - id_reservatorio_planejamento columns: - name: data description: Data @@ -294,6 +322,13 @@ models: (EAR) máxima do Sistema Interligado Nacional (SIN) - name: br_ons_avaliacao_operacao__restricao_operacao_usinas_eolicas description: Informações associadas à apuração das restrições de operação por Constrained-off nas usinas eólicas classificadas nas modalidades Tipo I, Tipo II-B e Tipo II-C + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data + - hora + - usina + - id_ons columns: - name: data description: Data de referência da medição diff --git a/models/br_ons_estimativa_custos/br_ons_estimativa_custos__balanco_energia_subsistemas_dessem.sql b/models/br_ons_estimativa_custos/br_ons_estimativa_custos__balanco_energia_subsistemas_dessem.sql index b5a626d0..6d096b0e 100644 --- a/models/br_ons_estimativa_custos/br_ons_estimativa_custos__balanco_energia_subsistemas_dessem.sql +++ b/models/br_ons_estimativa_custos/br_ons_estimativa_custos__balanco_energia_subsistemas_dessem.sql @@ -1,6 +1,8 @@ {{ config( alias='balanco_energia_subsistemas_dessem', - schema='br_ons_estimativa_custos') + schema='br_ons_estimativa_custos', + cluster_by=['ano', 'mes'] + ) }} SELECT diff --git a/models/br_ons_estimativa_custos/br_ons_estimativa_custos__custo_variavel_unitario_usinas_termicas.sql b/models/br_ons_estimativa_custos/br_ons_estimativa_custos__custo_variavel_unitario_usinas_termicas.sql index 29fd2740..c47137ae 100644 --- a/models/br_ons_estimativa_custos/br_ons_estimativa_custos__custo_variavel_unitario_usinas_termicas.sql +++ b/models/br_ons_estimativa_custos/br_ons_estimativa_custos__custo_variavel_unitario_usinas_termicas.sql @@ -8,8 +8,9 @@ "range": { "start": 2019, "end": 2024, - "interval": 1} - }) + "interval": 1}}, + cluster_by=['ano', 'mes']) + }} WITH ons as ( SELECT diff --git a/models/br_ons_estimativa_custos/schema.yml b/models/br_ons_estimativa_custos/schema.yml index 09d623f2..cbb6a016 100644 --- a/models/br_ons_estimativa_custos/schema.yml +++ b/models/br_ons_estimativa_custos/schema.yml @@ -2,6 +2,12 @@ version: 2 models: - name: br_ons_estimativa_custos__custo_marginal_operacao_semi_horario + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data + - hora + - id_subsistema description: Valores do custo, por unidade de energia produzida, para atender ao incremento de uma unidade de carga no SIN, chamado de Custo Marginal de Operação – CMO. Este CMO é estimado pelo modelo DESSEM para cada barra do sistema em base semi-horária. O CMO do subsistema é obtido pelo média dos CMOs nas barras de cada subsistema, ponderados pelas respectivas cargas, considerando que um aumento de carga no subsistema se dá de maneira uniforme nas barras que a ele pertencem. columns: - name: data @@ -19,6 +25,11 @@ models: - name: custo_marginal_operacao description: Valor do Custo Marginal de Operação (CMO) - name: br_ons_estimativa_custos__custo_marginal_operacao_semanal + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data + - id_subsistema description: Valores do custo, por unidade de energia produzida, para atender ao incremento de uma unidade de carga no SIN, chamado de Custo Marginal de Operação – CMO. Valores para cada semana operativa por subsistema, e por patamar de carga, além da média semanal, estimados pelo modelo Decomp. columns: - name: data @@ -40,6 +51,12 @@ models: - name: custo_marginal_operacao_semanal_carga_pesada description: Valor do Custo Marginal Operacional (CMO) no patamar de carga pesada - name: br_ons_estimativa_custos__balanco_energia_subsistemas + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data + - hora + - id_subsistema description: Informações da carga e oferta de energia verificados em periodicidade horária por subsistema. A oferta é representada pelos valores de geração das usinas hidráulicas, térmicas, eólicas e fotovoltaicas. columns: - name: data @@ -67,6 +84,12 @@ models: - name: intercambio_verificado description: Valor verificado do intercâmbio líquido - name: br_ons_estimativa_custos__balanco_energia_subsistemas_dessem + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data + - hora + - id_subsistema description: Informação da programação eletro energética, resultante do modelo DESSEM, da demanda de energia e geração por fontes previstas para um dia de referência em periodicidade semi-horária no subsistema. columns: - name: data @@ -96,6 +119,12 @@ models: - name: geracao_fotovoltaica_verificada description: Valor verificado de geração fotovoltaica - name: br_ons_estimativa_custos__custo_variavel_unitario_usinas_termicas + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - data_inicio + - data_fim + - id_modelo_usina description: Custo Variável Unitário (CVU) de usinas térmicas considerado no Programa Mensal da Operação, conforme utilizado na execução do modelo DECOMP columns: - name: data_inicio