From 15fafa7637bf6b973adb01650d70288010114258 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Mon, 15 Apr 2024 18:23:59 -0300 Subject: [PATCH 1/2] fix: fix join operation --- .../br_cgu_beneficios_cidadao__bpc.sql | 56 +++++++++---------- ...cgu_beneficios_cidadao__garantia_safra.sql | 41 +++++++------- ...beneficios_cidadao__novo_bolsa_familia.sql | 47 ++++++++-------- 3 files changed, 72 insertions(+), 72 deletions(-) diff --git a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bpc.sql b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bpc.sql index ecf18040..d157e402 100644 --- a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bpc.sql +++ b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bpc.sql @@ -16,31 +16,31 @@ ], ) }} -with - bpc as ( - select - safe_cast(substr(mes_competencia, 1, 4) as int64) ano_competencia, - safe_cast(substr(mes_competencia, 5, 2) as int64) mes_competencia, - safe_cast(substr(mes_referencia, 1, 4) as int64) ano_referencia, - safe_cast(substr(mes_referencia, 5, 2) as int64) mes_referencia, - safe_cast(parse_date('%Y%m', mes_referencia) as date) data, - t2.id_municipio, - safe_cast(t1.sigla_uf as string) sigla_uf, - safe_cast(nis as string) nis_favorecido, - safe_cast(cpf as string) cpf_favorecido, - safe_cast(t1.nome as string) nome_favorecido, - safe_cast(nis_representante as string) nis_representante, - safe_cast(cpf_representante as string) cpf_representante, - safe_cast(t1.nome_representante as string) nome_representante, - safe_cast(numero as string) numero_beneficio, - safe_cast(concedido_judicialmente as string) concedido_judicialmente, - safe_cast(valor as float64) valor_parcela, - from `basedosdados-staging.br_cgu_beneficios_cidadao_staging.bpc` t1 - left join - `basedosdados.br_bd_diretorios_brasil.municipio` t2 - on safe_cast(t1.id_municipio_siafi as int64) - = safe_cast(t2.id_municipio_rf as int64) - ) -select * except (data) -from bpc -{% if is_incremental() %} where data > (select max(data) from {{ this }}) {% endif %} +select + safe_cast(substr(mes_competencia, 1, 4) as int64) ano_competencia, + safe_cast(substr(mes_competencia, 5, 2) as int64) mes_competencia, + safe_cast(substr(mes_referencia, 1, 4) as int64) ano_referencia, + safe_cast(substr(mes_referencia, 5, 2) as int64) mes_referencia, + t2.id_municipio, + safe_cast(t1.sigla_uf as string) sigla_uf, + safe_cast(nis as string) nis_favorecido, + safe_cast(cpf as string) cpf_favorecido, + safe_cast(t1.nome as string) nome_favorecido, + safe_cast(nis_representante as string) nis_representante, + safe_cast(cpf_representante as string) cpf_representante, + safe_cast(nome_representante as string) nome_representante, + safe_cast(numero as string) numero_beneficio, + safe_cast(concedido_judicialmente as string) concedido_judicialmente, + safe_cast(valor as float64) valor_parcela, +from `basedosdados-staging.br_cgu_beneficios_cidadao_staging.bpc` t1 +left join + `basedosdados.br_bd_diretorios_brasil.municipio` t2 + on safe_cast(t1.id_municipio_siafi as int64) + = safe_cast(t2.id_municipio_rf as int64) +{% if is_incremental() %} + where + safe_cast(parse_date('%Y%m', mes_referencia) as date) > ( + select max(safe_cast(parse_date('%Y%m', mes_referencia) as date)) + from {{ this }} + ) +{% endif %} diff --git a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__garantia_safra.sql b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__garantia_safra.sql index 132b2b48..133d35c8 100644 --- a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__garantia_safra.sql +++ b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__garantia_safra.sql @@ -20,23 +20,24 @@ ], ) }} -with - garantia_safra as ( - select - safe_cast(substr(mes_referencia, 1, 4) as int64) ano_referencia, - safe_cast(substr(mes_referencia, 5, 2) as int64) mes_referencia, - safe_cast(parse_date('%Y%m', mes_referencia) as date) data, - t2.id_municipio, - safe_cast(t1.sigla_uf as string) sigla_uf, - safe_cast(nis as string) nis_favorecido, - safe_cast(t1.nome as string) nome_favorecido, - safe_cast(valor as float64) valor_parcela, - from `basedosdados-staging.br_cgu_beneficios_cidadao_staging.garantia_safra` t1 - left join - `basedosdados.br_bd_diretorios_brasil.municipio` t2 - on safe_cast(t1.id_municipio_siafi as int64) - = safe_cast(t2.id_municipio_rf as int64) - ) -select * except (data) -from garantia_safra -{% if is_incremental() %} where data > (select max(data) from {{ this }}) {% endif %} + +select + safe_cast(substr(mes_referencia, 1, 4) as int64) ano_referencia, + safe_cast(substr(mes_referencia, 5, 2) as int64) mes_referencia, + t2.id_municipio, + safe_cast(t1.sigla_uf as string) sigla_uf, + safe_cast(nis as string) nis_favorecido, + safe_cast(t1.nome as string) nome_favorecido, + safe_cast(valor as float64) valor_parcela, +from `basedosdados-staging.br_cgu_beneficios_cidadao_staging.garantia_safra` t1 +left join + `basedosdados.br_bd_diretorios_brasil.municipio` t2 + on safe_cast(t1.id_municipio_siafi as int64) + = safe_cast(t2.id_municipio_rf as int64) +{% if is_incremental() %} + where + safe_cast(parse_date('%Y%m', mes_referencia) as date) > ( + select max(safe_cast(parse_date('%Y%m', mes_referencia) as date)) + from {{ this }} + ) +{% endif %} diff --git a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__novo_bolsa_familia.sql b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__novo_bolsa_familia.sql index 7ff7a74a..a52574a6 100644 --- a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__novo_bolsa_familia.sql +++ b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__novo_bolsa_familia.sql @@ -16,27 +16,26 @@ ], ) }} -with - novo_bolsa_familia as ( - select - safe_cast(substr(mes_competencia, 1, 4) as int64) ano_competencia, - safe_cast(substr(mes_competencia, 5, 2) as int64) mes_competencia, - safe_cast(substr(mes_referencia, 1, 4) as int64) ano_referencia, - safe_cast(substr(mes_referencia, 5, 2) as int64) mes_referencia, - safe_cast(parse_date('%Y%m', mes_referencia) as date) data, - t2.id_municipio, - safe_cast(t1.sigla_uf as string) sigla_uf, - safe_cast(cpf as string) cpf_favorecido, - safe_cast(nis as string) nis_favorecido, - safe_cast(t1.nome as string) nome_favorecido, - safe_cast(valor as float64) valor_parcela, - from - `basedosdados-staging.br_cgu_beneficios_cidadao_staging.novo_bolsa_familia` t1 - left join - `basedosdados.br_bd_diretorios_brasil.municipio` t2 - on safe_cast(t1.id_municipio_siafi as int64) - = safe_cast(t2.id_municipio_rf as int64) - ) -select * except (data) -from novo_bolsa_familia -{% if is_incremental() %} where data > (select max(data) from {{ this }}) {% endif %} +select + safe_cast(substr(mes_competencia, 1, 4) as int64) ano_competencia, + safe_cast(substr(mes_competencia, 5, 2) as int64) mes_competencia, + safe_cast(substr(mes_referencia, 1, 4) as int64) ano_referencia, + safe_cast(substr(mes_referencia, 5, 2) as int64) mes_referencia, + t2.id_municipio, + safe_cast(t1.sigla_uf as string) sigla_uf, + safe_cast(cpf as string) cpf_favorecido, + safe_cast(nis as string) nis_favorecido, + safe_cast(t1.nome as string) nome_favorecido, + safe_cast(valor as float64) valor_parcela, +from `basedosdados-dev.br_cgu_beneficios_cidadao_staging.novo_bolsa_familia` t1 +left join + `basedosdados.br_bd_diretorios_brasil.municipio` t2 + on safe_cast(t1.id_municipio_siafi as int64) + = safe_cast(t2.id_municipio_rf as int64) +{% if is_incremental() %} + where + safe_cast(parse_date('%Y%m', mes_referencia) as date) > ( + select max(safe_cast(parse_date('%Y%m', mes_referencia) as date)) + from {{ this }} + ) +{% endif %} From 7d979901062859b6c51fe07f5651ff844b93e154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Gusm=C3=A3o?= Date: Tue, 16 Apr 2024 19:15:10 -0300 Subject: [PATCH 2/2] feat: change incremental logic --- .../br_cgu_beneficios_cidadao__bpc.sql | 13 ++++++++++++- .../br_cgu_beneficios_cidadao__garantia_safra.sql | 13 ++++++++++++- ...r_cgu_beneficios_cidadao__novo_bolsa_familia.sql | 13 ++++++++++++- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bpc.sql b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bpc.sql index d157e402..360c20ee 100644 --- a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bpc.sql +++ b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__bpc.sql @@ -40,7 +40,18 @@ left join {% if is_incremental() %} where safe_cast(parse_date('%Y%m', mes_referencia) as date) > ( - select max(safe_cast(parse_date('%Y%m', mes_referencia) as date)) + select + max( + safe_cast( + parse_date( + '%Y%m', + concat( + cast(ano_referencia as string), + lpad(cast(mes_referencia as string), 2, '0') + ) + ) as date + ) + ) from {{ this }} ) {% endif %} diff --git a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__garantia_safra.sql b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__garantia_safra.sql index 133d35c8..b331f639 100644 --- a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__garantia_safra.sql +++ b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__garantia_safra.sql @@ -37,7 +37,18 @@ left join {% if is_incremental() %} where safe_cast(parse_date('%Y%m', mes_referencia) as date) > ( - select max(safe_cast(parse_date('%Y%m', mes_referencia) as date)) + select + max( + safe_cast( + parse_date( + '%Y%m', + concat( + cast(ano_referencia as string), + lpad(cast(mes_referencia as string), 2, '0') + ) + ) as date + ) + ) from {{ this }} ) {% endif %} diff --git a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__novo_bolsa_familia.sql b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__novo_bolsa_familia.sql index a52574a6..f95796b4 100644 --- a/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__novo_bolsa_familia.sql +++ b/models/br_cgu_beneficios_cidadao/br_cgu_beneficios_cidadao__novo_bolsa_familia.sql @@ -35,7 +35,18 @@ left join {% if is_incremental() %} where safe_cast(parse_date('%Y%m', mes_referencia) as date) > ( - select max(safe_cast(parse_date('%Y%m', mes_referencia) as date)) + select + max( + safe_cast( + parse_date( + '%Y%m', + concat( + cast(ano_referencia as string), + lpad(cast(mes_referencia as string), 2, '0') + ) + ) as date + ) + ) from {{ this }} ) {% endif %}