From 4c9aa9208cfa11a2f7bbfb199cde7c461220bd7e Mon Sep 17 00:00:00 2001 From: uiro-bi Date: Thu, 13 Jun 2024 10:21:26 -0300 Subject: [PATCH 1/6] feat: add where config, modify incremental logic --- .../br_bcb_agencia__agencia.sql | 19 +++++----- models/br_bcb_agencia/schema.yml | 38 ++++++++++++++++--- 2 files changed, 42 insertions(+), 15 deletions(-) diff --git a/models/br_bcb_agencia/br_bcb_agencia__agencia.sql b/models/br_bcb_agencia/br_bcb_agencia__agencia.sql index 25fc5333..ad702fab 100644 --- a/models/br_bcb_agencia/br_bcb_agencia__agencia.sql +++ b/models/br_bcb_agencia/br_bcb_agencia__agencia.sql @@ -6,13 +6,8 @@ partition_by={ "field": "ano", "data_type": "int64", - "range": {"start": 2007, "end": 2024, "interval": 1}, + "range": {"start": 2007, "end": 2025, "interval": 1}, }, - pre_hook="DROP ALL ROW ACCESS POLICIES ON {{ this }}", - post_hook=[ - 'CREATE OR REPLACE ROW ACCESS POLICY allusers_filter ON {{this}} GRANT TO ("allUsers") FILTER USING (DATE_DIFF(CURRENT_DATE(),DATE(CAST(ano AS INT64),CAST(mes AS INT64),1), MONTH) > 6)', - 'CREATE OR REPLACE ROW ACCESS POLICY bdpro_filter ON {{this}} GRANT TO ("group:bd-pro@basedosdados.org", "group:sudo@basedosdados.org") FILTER USING (DATE_DIFF(CURRENT_DATE(),DATE(CAST(ano AS INT64),CAST(mes AS INT64),1), MONTH) <= 6)', - ], ) }} @@ -152,7 +147,7 @@ with when sigla_uf = 'MT' and nome = 'poxoreu' then '5107008' when sigla_uf = 'GO' and nome = 'portolandia' - then '5218102' + then '5218102 ' when sigla_uf = 'TO' and nome = 'alianca do norte' then '1700350' when sigla_uf = 'MA' and nome = 'sao luiz gonzaga maranhao' @@ -201,6 +196,10 @@ with ano, mes from `basedosdados-staging.br_bcb_agencia_staging.agencia` as t + -- os arquivos mensais possuem cabeçalhos e rodapés que variam de posição; + -- Este filtro remove linhas com valores intereiramente + -- nulos + where fone = '00000nan' ) select @@ -225,6 +224,8 @@ select from wrang_data {% if is_incremental() %} where - date(cast(ano as int64), cast(mes as int64), 1) - > (select max(date(cast(ano as int64), cast(mes as int64), 1)) from {{ this }}) + date(cast(ano as int64), cast(mes as int64), 1) not in ( + select distinct (date(cast(ano as int64), cast(mes as int64), 1)) + from {{ this }} + ) {% endif %} diff --git a/models/br_bcb_agencia/schema.yml b/models/br_bcb_agencia/schema.yml index 75ff46b1..3d3c36ea 100644 --- a/models/br_bcb_agencia/schema.yml +++ b/models/br_bcb_agencia/schema.yml @@ -7,29 +7,49 @@ models: tests: - dbt_utils.unique_combination_of_columns: combination_of_columns: [ano, mes, cnpj] - - not_null_proportion_multiple_columns: - at_least: 0.05 + config: + where: __most_recent_year_month__ columns: - name: ano description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: ano + config: + where: __most_recent_year_month__ - name: mes description: Mês + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: mes - name: sigla_uf description: Sigla da Unidade da Federação + tests: + - dbt_utils.not_null_proportion: + at_least: 0.05 + config: + where: __most_recent_year_month__ - name: id_municipio description: ID Município - IBGE 7 Dígitos tests: - relationships: to: ref('br_bd_diretorios_brasil__municipio') field: id_municipio + - dbt_utils.not_null_proportion: + at_least: 0.05 + config: + where: __most_recent_year_month__ - name: data_inicio description: Data de criação da agência - name: cnpj description: Cadastro Nacional de Pessoa Júridica (CNPJ) tests: - - relationships: - to: ref('br_bd_diretorios_brasil__empresa') - field: cnpj + - dbt_utils.not_null_proportion: + at_least: 0.05 + config: + where: __most_recent_year_month__ - name: nome_agencia description: Nome da Agência - name: instituicao @@ -47,7 +67,13 @@ models: tests: - relationships: to: ref('br_bd_diretorios_brasil__cep') - field: cep.cep + field: cep + config: + where: __most_recent_year_month__ + - dbt_utils.not_null_proportion: + at_least: 0.05 + config: + where: __most_recent_year_month__ - name: endereco description: endereço da agência - name: complemento From f55180ddde3f3cfb2b7e2e8fddb51ca9f2de5fcd Mon Sep 17 00:00:00 2001 From: uiro-bi Date: Thu, 13 Jun 2024 10:30:33 -0300 Subject: [PATCH 2/6] feat: reinsert pre hook --- models/br_bcb_agencia/br_bcb_agencia__agencia.sql | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/models/br_bcb_agencia/br_bcb_agencia__agencia.sql b/models/br_bcb_agencia/br_bcb_agencia__agencia.sql index ad702fab..65977f0d 100644 --- a/models/br_bcb_agencia/br_bcb_agencia__agencia.sql +++ b/models/br_bcb_agencia/br_bcb_agencia__agencia.sql @@ -8,6 +8,11 @@ "data_type": "int64", "range": {"start": 2007, "end": 2025, "interval": 1}, }, + pre_hook="DROP ALL ROW ACCESS POLICIES ON {{ this }}", + post_hook=[ + 'CREATE OR REPLACE ROW ACCESS POLICY allusers_filter ON {{this}} GRANT TO ("allUsers") FILTER USING (DATE_DIFF(CURRENT_DATE(),DATE(CAST(ano AS INT64),CAST(mes AS INT64),1), MONTH) > 6)', + 'CREATE OR REPLACE ROW ACCESS POLICY bdpro_filter ON {{this}} GRANT TO ("group:bd-pro@basedosdados.org", "group:sudo@basedosdados.org") FILTER USING (DATE_DIFF(CURRENT_DATE(),DATE(CAST(ano AS INT64),CAST(mes AS INT64),1), MONTH) <= 6)', + ], ) }} From 768cea6fe3eae0332810f0b0ff0af7be3afa98ab Mon Sep 17 00:00:00 2001 From: uiro-bi Date: Thu, 13 Jun 2024 14:26:53 -0300 Subject: [PATCH 3/6] make requested changes --- models/br_bcb_agencia/br_bcb_agencia__agencia.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/br_bcb_agencia/br_bcb_agencia__agencia.sql b/models/br_bcb_agencia/br_bcb_agencia__agencia.sql index 65977f0d..5479ca4b 100644 --- a/models/br_bcb_agencia/br_bcb_agencia__agencia.sql +++ b/models/br_bcb_agencia/br_bcb_agencia__agencia.sql @@ -152,7 +152,7 @@ with when sigla_uf = 'MT' and nome = 'poxoreu' then '5107008' when sigla_uf = 'GO' and nome = 'portolandia' - then '5218102 ' + then '5218102' when sigla_uf = 'TO' and nome = 'alianca do norte' then '1700350' when sigla_uf = 'MA' and nome = 'sao luiz gonzaga maranhao' From 06cf16f20480fef778441376ef95a8cf7a65a8c9 Mon Sep 17 00:00:00 2001 From: uiro-bi Date: Thu, 13 Jun 2024 15:22:19 -0300 Subject: [PATCH 4/6] update not null test --- models/br_bcb_agencia/schema.yml | 8 +++--- models/br_ibge_censo_2022/schema.yml | 38 +++++++++++++++------------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/models/br_bcb_agencia/schema.yml b/models/br_bcb_agencia/schema.yml index 3d3c36ea..3b83d6eb 100644 --- a/models/br_bcb_agencia/schema.yml +++ b/models/br_bcb_agencia/schema.yml @@ -28,7 +28,7 @@ models: description: Sigla da Unidade da Federação tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.95 config: where: __most_recent_year_month__ - name: id_municipio @@ -38,7 +38,7 @@ models: to: ref('br_bd_diretorios_brasil__municipio') field: id_municipio - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.95 config: where: __most_recent_year_month__ - name: data_inicio @@ -47,7 +47,7 @@ models: description: Cadastro Nacional de Pessoa Júridica (CNPJ) tests: - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.95 config: where: __most_recent_year_month__ - name: nome_agencia @@ -71,7 +71,7 @@ models: config: where: __most_recent_year_month__ - dbt_utils.not_null_proportion: - at_least: 0.05 + at_least: 0.95 config: where: __most_recent_year_month__ - name: endereco diff --git a/models/br_ibge_censo_2022/schema.yml b/models/br_ibge_censo_2022/schema.yml index 106eb723..b1ceb526 100644 --- a/models/br_ibge_censo_2022/schema.yml +++ b/models/br_ibge_censo_2022/schema.yml @@ -1216,17 +1216,18 @@ models: - name: razao_sexo_populacao_indigena description: Razão de sexo da população indígena residente em terras indígenas - name: br_ibge_censo_2022__indigenas_populacao_alfabetizada_grupo_idade_municipio - description: Tabela 8180 - Pessoas indígenas de 15 anos ou mais de idade, total e as alfabetizadas, por sexo e grupos de idade + description: Tabela 8180 - Pessoas indígenas de 15 anos ou mais de idade, total + e as alfabetizadas, por sexo e grupos de idade tests: - not_null_proportion_multiple_columns: - at_least: 0.95 + at_least: 0.95 columns: - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio - name: sexo description: Sexo - name: grupo_idade @@ -1236,17 +1237,18 @@ models: - name: populacao_indigena description: Pessoas indígenas de 15 anos ou mais de idade - name: br_ibge_censo_2022__populacao_alfabetizada_cor_raca_grupo_idade_municipio - description: Tabela 9542 - Pessoas de 15 anos ou mais de idade, total e as alfabetizadas, por sexo, cor ou raça e grupos de idade + description: Tabela 9542 - Pessoas de 15 anos ou mais de idade, total e as alfabetizadas, + por sexo, cor ou raça e grupos de idade tests: - not_null_proportion_multiple_columns: - at_least: 0.95 + at_least: 0.95 columns: - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio - name: cor_raca description: Cor ou raça - name: sexo @@ -1258,17 +1260,18 @@ models: - name: populacao description: 'Pessoas de 15 anos ou mais de idade ' - name: br_ibge_censo_2022__taxa_alfabetizacao_cor_raca_grupo_idade_municipio - description: Tabela 9543 - Taxa de alfabetização das pessoas de 15 anos ou mais de idade por sexo, cor ou raça e grupos de idade + description: Tabela 9543 - Taxa de alfabetização das pessoas de 15 anos ou mais + de idade por sexo, cor ou raça e grupos de idade tests: - not_null_proportion_multiple_columns: - at_least: 0.95 + at_least: 0.95 columns: - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio - name: cor_raca description: Cor ou raça - name: sexo @@ -1278,21 +1281,22 @@ models: - name: taxa_alfabetizacao description: Taxa de alfabetização das pessoas de 15 anos ou mais de idade - name: br_ibge_censo_2022__indigenas_taxa_alfabetizacao_grupo_idade_municipio - description: Tabela 8181 - Taxa de alfabetização das pessoas indígenas de 15 anos ou mais de idade por sexo e grupos de idade + description: Tabela 8181 - Taxa de alfabetização das pessoas indígenas de 15 anos + ou mais de idade por sexo e grupos de idade tests: - not_null_proportion_multiple_columns: - at_least: 0.95 + at_least: 0.95 columns: - name: id_municipio description: ID Município IBGE 7 dígitos tests: - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio - name: sexo description: Sexo - name: grupo_idade description: Grupo de Idade - name: taxa_alfabetizacao description: Taxa de alfabetização das pessoas indígenas de 15 anos ou mais - de idade + de idade From b1b9fb911461f59d669b0f26c74987fff0e77e98 Mon Sep 17 00:00:00 2001 From: uiro-bi Date: Thu, 13 Jun 2024 16:05:40 -0300 Subject: [PATCH 5/6] update cep test --- models/br_bcb_agencia/schema.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/models/br_bcb_agencia/schema.yml b/models/br_bcb_agencia/schema.yml index 3b83d6eb..76cf2b38 100644 --- a/models/br_bcb_agencia/schema.yml +++ b/models/br_bcb_agencia/schema.yml @@ -24,6 +24,8 @@ models: - relationships: to: ref('br_bd_diretorios_data_tempo__data') field: mes + config: + where: __most_recent_year_month__ - name: sigla_uf description: Sigla da Unidade da Federação tests: @@ -37,6 +39,8 @@ models: - relationships: to: ref('br_bd_diretorios_brasil__municipio') field: id_municipio + config: + where: __most_recent_year_month__ - dbt_utils.not_null_proportion: at_least: 0.95 config: @@ -65,9 +69,10 @@ models: - name: cep description: CEP tests: - - relationships: + - custom_relationships: to: ref('br_bd_diretorios_brasil__cep') - field: cep + field: cep.cep + proportion_allowed_failures: 20 config: where: __most_recent_year_month__ - dbt_utils.not_null_proportion: From 34262eba0a2652785f67ed98ae3d53dd974deed2 Mon Sep 17 00:00:00 2001 From: uiro-bi Date: Thu, 13 Jun 2024 16:06:40 -0300 Subject: [PATCH 6/6] adjust where filter in agencia.sql --- models/br_bcb_agencia/br_bcb_agencia__agencia.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/br_bcb_agencia/br_bcb_agencia__agencia.sql b/models/br_bcb_agencia/br_bcb_agencia__agencia.sql index 5479ca4b..56811497 100644 --- a/models/br_bcb_agencia/br_bcb_agencia__agencia.sql +++ b/models/br_bcb_agencia/br_bcb_agencia__agencia.sql @@ -202,9 +202,9 @@ with mes from `basedosdados-staging.br_bcb_agencia_staging.agencia` as t -- os arquivos mensais possuem cabeçalhos e rodapés que variam de posição; - -- Este filtro remove linhas com valores intereiramente + -- Este filtro remove linhas com valores inteiramente -- nulos - where fone = '00000nan' + where fone != '00000nan' ) select