From 7c4d707ce5fbfb6994a447519d21fd162ae20b0b Mon Sep 17 00:00:00 2001 From: tricktx Date: Tue, 12 Sep 2023 09:17:35 -0300 Subject: [PATCH 1/8] model dbt incremental iptu bh --- dbt_project.yml | 6 ++ .../br_mg_belohorizonte_smfa_iptu.sql | 46 +++++++++++++++ .../br_mg_belohorizonte_smfa_iptu/schema.yml | 58 +++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu.sql create mode 100644 models/br_mg_belohorizonte_smfa_iptu/schema.yml diff --git a/dbt_project.yml b/dbt_project.yml index 584c2cc3..d927dda0 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -163,6 +163,12 @@ models: +post-hook: - 'REVOKE `roles/bigquery.dataViewer` ON TABLE {{ this }} FROM "specialGroup:allUsers"' - 'GRANT `roles/bigquery.dataViewer` ON TABLE {{ this }} TO "group:bd-pro@basedosdados.org"' + br_mg_belohorizonte_smfa_iptu: + +materialized: table + +schema: br_mg_belohorizonte_smfa_iptu + +post-hook: + - 'REVOKE `roles/bigquery.dataViewer` ON TABLE {{ this }} FROM "specialGroup:allUsers"' + - 'GRANT `roles/bigquery.dataViewer` ON TABLE {{ this }} TO "group:bd-pro@basedosdados.org"' br_mp_pep: +materialized: table +schema: br_mp_pep diff --git a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu.sql b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu.sql new file mode 100644 index 00000000..c9c31a11 --- /dev/null +++ b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu.sql @@ -0,0 +1,46 @@ +{{ config( + alias='iptu', + schema='br_mg_belohorizonte_smfa_iptu', + materialized='incremental', + partition_by={ + "field": "ano", + "data_type": "int64", + "range": { + "start": 2022, + "end": 2023, + "interval": 1} + }, + cluster_by=['tipo_construtivo', 'tipo_ocupacao', 'tipologia'], + labels = {'project_id' : 'basedosdados'} +)}} +SELECT +SAFE_CAST(ano AS INT64) ano, +SAFE_CAST(mes AS INT64) mes, +SAFE_CAST(indice_cadastral AS STRING) indice_cadastral, +SAFE_CAST(lote AS STRING) lote, +SAFE_CAST(zoneamento AS STRING) zoneamento, +SAFE_CAST(zona_homogenea AS STRING) zona_homogenea, +SAFE_CAST(cep AS STRING) cep, +INITCAP(endereco) endereco, +INITCAP(tipo_construtivo) tipo_construtivo, +INITCAP(tipo_ocupacao) tipo_ocupacao, +SAFE_CAST(padrao_acabamento AS STRING) padrao_acabamento, +INITCAP(tipologia) tipologia, +SAFE_CAST(codigo_quantidade_economia AS STRING) codigo_quantidade_economia, +INITCAP(frequencia_coleta) frequencia_coleta, +SAFE_CAST(indicador_rede_telefonica AS BOOL) indicador_rede_telefonica, +SAFE_CAST(indicador_meio_fio AS BOOL) indicador_meio_fio, +SAFE_CAST(indicador_pavimentacao AS BOOL) indicador_pavimentacao, +SAFE_CAST(indicador_arborizacao AS BOOL) indicador_arborizacao, +SAFE_CAST(indicador_galeria_pluvial AS BOOL) indicador_galeria_pluvial, +SAFE_CAST(indicador_iluminacao_publica AS BOOL) indicador_iluminacao_publica, +SAFE_CAST(indicador_rede_esgoto AS BOOL) indicador_rede_esgoto, +SAFE_CAST(indicador_agua AS BOOL) indicador_agua, +SAFE.ST_GEOGFROMTEXT(poligono) poligono, +SAFE_CAST(fracao_ideal AS FLOAT64) fracao_ideal, +SAFE_CAST(area_terreno AS FLOAT64) area_terreno, +SAFE_CAST(area_construida AS FLOAT64) area_construida +FROM basedosdados-staging.br_mg_belohorizonte_smfa_iptu_staging.iptu AS t +{% if is_incremental() %} +WHERE CONCAT(ano,mes) > (SELECT MAX(CONCAT(ano,mes)) FROM {{ this }} ) +{% endif %} \ No newline at end of file diff --git a/models/br_mg_belohorizonte_smfa_iptu/schema.yml b/models/br_mg_belohorizonte_smfa_iptu/schema.yml new file mode 100644 index 00000000..40209f5f --- /dev/null +++ b/models/br_mg_belohorizonte_smfa_iptu/schema.yml @@ -0,0 +1,58 @@ +version: 2 + +models: + - name: br_mg_belohorizonte_smfa_iptu__iptu + description: Dados referente ao cadastro do IPTU na cidade de Belo Horizonte + columns: + - name: ano + description: Ano + - name: mes + description: Mês + - name: indice_cadastral + description: Os imóveis, para inscrição no Cadastro Imobiliário, foram codificados através de sua associação a um código alfanumérico denominado índice cadastral, composto de 15 dígitos. + - name: lote + description: Código de identificação do lote + - name: zoneamento + description: Zoneamento vigente no ano de aprovação da planta de valores do IPTU + - name: zona_homogenea + description: Código da zona homogênea + - name: cep + description: Número do CEP + - name: endereco + description: Endereço referente ao IPTU + - name: tipo_construtivo + description: Unidade construtiva de acordo com o tipo construtivo, como casa, barracão, apartamento e entre outros + - name: tipo_ocupacao + description: Especifica o tipo de ocupação. + - name: padrao_acabamento + description: Nível de padrão de acabamento construtivo para caracterização do valor do IPTU + - name: tipologia + description: Descrição da tipologia associada ao tipo de construção e ao tipo de ocupação. + - name: codigo_quantidade_economia + description: Unidade de núcleo familiar, atividade econômica ou institucional, distintas em um mesmo índice cadastral. + - name: frequencia_coleta + description: Indica qual é a frequencia de coleta de lixo + - name: indicador_rede_telefonica + description: Indica a existência de rede telefônica em pelo ao menos um dos logradouros relacionado à frente do imóvel + - name: indicador_meio_fio + description: Indica a existência de meio-fio para pelo ao menos um dos logradouros relacionado à frente do imóvel. + - name: indicador_pavimentacao + description: Indica a existência de pavimentação para pelo ao menos um dos logradouros relacionado à frente do imóvel. + - name: indicador_arborizacao + description: Indica a existência de arborização para pelo ao menos um dos logradouros relacionado à frente do imóvel. + - name: indicador_galeria_pluvial + description: Indica a existência de galeria pluvial em pelo ao menos um dos logradouros relacionado à frente do imóvel + - name: indicador_iluminacao_publica + description: Indica a existência de iluminação pública em pelo ao menos um dos logradouros relacionado à frente do imóvel. + - name: indicador_rede_esgoto + description: Indica a existência de rede de esgoto em pelo ao menos um dos logradouros relacionado à frente do imóvel. + - name: indicador_agua + description: Indica a existência de rede de água em pelo ao menos um dos logradouros relacionado à frente do imóvel. + - name: poligono + description: Polígono da feição do imóvel + - name: fracao_ideal + description: Fração ideal + - name: area_terreno + description: Área do terreno + - name: area_construida + description: Área construida \ No newline at end of file From ffca5fdad6e8a3e2db0f362f038d41c672dd01de Mon Sep 17 00:00:00 2001 From: tricktx Date: Tue, 12 Sep 2023 09:59:35 -0300 Subject: [PATCH 2/8] model dbt incremental and dicionario --- ...br_mg_belohorizonte_smfa_iptu__dicionario.sql | 10 ++++++++++ models/br_mg_belohorizonte_smfa_iptu/schema.yml | 16 +++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__dicionario.sql diff --git a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__dicionario.sql b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__dicionario.sql new file mode 100644 index 00000000..1d0cfadc --- /dev/null +++ b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__dicionario.sql @@ -0,0 +1,10 @@ +{{ config(alias='dicionario', schema='br_mg_belohorizonte_smfa_iptu') }} + + +SELECT +SAFE_CAST(id_tabela AS STRING) id_tabela, +SAFE_CAST(nome_coluna AS STRING) nome_coluna, +SAFE_CAST(chave AS STRING) chave, +SAFE_CAST(cobertura_temporal AS STRING) cobertura_temporal, +SAFE_CAST(valor AS STRING) valor +FROM basedosdados-staging.br_mg_belohorizonte_smfa_iptu_staging.dicionario AS t \ No newline at end of file diff --git a/models/br_mg_belohorizonte_smfa_iptu/schema.yml b/models/br_mg_belohorizonte_smfa_iptu/schema.yml index 40209f5f..ac79e009 100644 --- a/models/br_mg_belohorizonte_smfa_iptu/schema.yml +++ b/models/br_mg_belohorizonte_smfa_iptu/schema.yml @@ -55,4 +55,18 @@ models: - name: area_terreno description: Área do terreno - name: area_construida - description: Área construida \ No newline at end of file + description: Área construida + + - name: br_mg_belohorizonte_smfa_iptu__iptu_dicionario + description: "Dicionário de dados da tabela de IPTU da cidade de Belo Horizonte" + columns: + - name: id_coluna + description: ID da coluna + - name: nome_coluna + description: Nome da coluna + - name: chave + description: Chave + - name: cobertura_temporal + description: Cobertura temporal + - name: valor + description: Valor \ No newline at end of file From c5b3f226dca7742f9427c566e82d4a093474d52b Mon Sep 17 00:00:00 2001 From: tricktx Date: Tue, 12 Sep 2023 10:03:22 -0300 Subject: [PATCH 3/8] schema --- models/br_mg_belohorizonte_smfa_iptu/schema.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/br_mg_belohorizonte_smfa_iptu/schema.yml b/models/br_mg_belohorizonte_smfa_iptu/schema.yml index ac79e009..b4fd8044 100644 --- a/models/br_mg_belohorizonte_smfa_iptu/schema.yml +++ b/models/br_mg_belohorizonte_smfa_iptu/schema.yml @@ -57,7 +57,7 @@ models: - name: area_construida description: Área construida - - name: br_mg_belohorizonte_smfa_iptu__iptu_dicionario + - name: br_mg_belohorizonte_smfa_iptu__dicionario description: "Dicionário de dados da tabela de IPTU da cidade de Belo Horizonte" columns: - name: id_coluna From a849101a606a58456612f5c81bca7f30d7b1690a Mon Sep 17 00:00:00 2001 From: tricktx Date: Tue, 12 Sep 2023 15:31:29 -0300 Subject: [PATCH 4/8] replace dicionario --- .../br_mg_belohorizonte_smfa_iptu__dicionario.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__dicionario.sql b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__dicionario.sql index 1d0cfadc..2b4a0ad8 100644 --- a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__dicionario.sql +++ b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__dicionario.sql @@ -6,5 +6,5 @@ SAFE_CAST(id_tabela AS STRING) id_tabela, SAFE_CAST(nome_coluna AS STRING) nome_coluna, SAFE_CAST(chave AS STRING) chave, SAFE_CAST(cobertura_temporal AS STRING) cobertura_temporal, -SAFE_CAST(valor AS STRING) valor +REPLACE(REPLACE(valor, '(Zona de Especial Interesse Social - 2', 'Zona de Especial Interesse Social - 2'), '(Zona de Preservação Ambiental', 'Zona de Preservação Ambiental') AS valor FROM basedosdados-staging.br_mg_belohorizonte_smfa_iptu_staging.dicionario AS t \ No newline at end of file From 8031045dcad7968c269984e5b501b699d9df4592 Mon Sep 17 00:00:00 2001 From: tricktx Date: Tue, 12 Sep 2023 18:39:49 -0300 Subject: [PATCH 5/8] model dbt definitive --- .../br_mg_belohorizonte_smfa_iptu.sql | 2 +- models/br_mg_belohorizonte_smfa_iptu/schema.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu.sql b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu.sql index c9c31a11..8b975138 100644 --- a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu.sql +++ b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu.sql @@ -26,7 +26,7 @@ INITCAP(tipo_construtivo) tipo_construtivo, INITCAP(tipo_ocupacao) tipo_ocupacao, SAFE_CAST(padrao_acabamento AS STRING) padrao_acabamento, INITCAP(tipologia) tipologia, -SAFE_CAST(codigo_quantidade_economia AS STRING) codigo_quantidade_economia, +SAFE_CAST(codigo_quantidade_economia AS INT64) quantidade_economias, INITCAP(frequencia_coleta) frequencia_coleta, SAFE_CAST(indicador_rede_telefonica AS BOOL) indicador_rede_telefonica, SAFE_CAST(indicador_meio_fio AS BOOL) indicador_meio_fio, diff --git a/models/br_mg_belohorizonte_smfa_iptu/schema.yml b/models/br_mg_belohorizonte_smfa_iptu/schema.yml index b4fd8044..8741f2c0 100644 --- a/models/br_mg_belohorizonte_smfa_iptu/schema.yml +++ b/models/br_mg_belohorizonte_smfa_iptu/schema.yml @@ -28,7 +28,7 @@ models: description: Nível de padrão de acabamento construtivo para caracterização do valor do IPTU - name: tipologia description: Descrição da tipologia associada ao tipo de construção e ao tipo de ocupação. - - name: codigo_quantidade_economia + - name: quantidade_economias description: Unidade de núcleo familiar, atividade econômica ou institucional, distintas em um mesmo índice cadastral. - name: frequencia_coleta description: Indica qual é a frequencia de coleta de lixo @@ -60,7 +60,7 @@ models: - name: br_mg_belohorizonte_smfa_iptu__dicionario description: "Dicionário de dados da tabela de IPTU da cidade de Belo Horizonte" columns: - - name: id_coluna + - name: id_tabela description: ID da coluna - name: nome_coluna description: Nome da coluna From a4879e0d3433aa9e66790f19394ba953785ca8e3 Mon Sep 17 00:00:00 2001 From: tricktx Date: Tue, 12 Sep 2023 18:48:09 -0300 Subject: [PATCH 6/8] rename iptu --- ...onte_smfa_iptu.sql => br_mg_belohorizonte_smfa_iptu__iptu.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename models/br_mg_belohorizonte_smfa_iptu/{br_mg_belohorizonte_smfa_iptu.sql => br_mg_belohorizonte_smfa_iptu__iptu.sql} (100%) diff --git a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu.sql b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__iptu.sql similarity index 100% rename from models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu.sql rename to models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__iptu.sql From 7ed8400382a016a8c6cc67b37a264d5f03162e47 Mon Sep 17 00:00:00 2001 From: tricktx Date: Wed, 13 Sep 2023 09:13:48 -0300 Subject: [PATCH 7/8] =?UTF-8?q?ajustando=20coment=C3=A1rios=20do=20PR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../br_mg_belohorizonte_smfa_iptu__iptu.sql | 4 ++-- models/br_mg_belohorizonte_smfa_iptu/schema.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__iptu.sql b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__iptu.sql index 8b975138..37cd2805 100644 --- a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__iptu.sql +++ b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__iptu.sql @@ -10,7 +10,7 @@ "end": 2023, "interval": 1} }, - cluster_by=['tipo_construtivo', 'tipo_ocupacao', 'tipologia'], + cluster_by=['mes'], labels = {'project_id' : 'basedosdados'} )}} SELECT @@ -42,5 +42,5 @@ SAFE_CAST(area_terreno AS FLOAT64) area_terreno, SAFE_CAST(area_construida AS FLOAT64) area_construida FROM basedosdados-staging.br_mg_belohorizonte_smfa_iptu_staging.iptu AS t {% if is_incremental() %} -WHERE CONCAT(ano,mes) > (SELECT MAX(CONCAT(ano,mes)) FROM {{ this }} ) +WHERE (CONCAT(ano,'-', mes)) > (SELECT MAX(CONCAT(ano, '-', mes)) FROM {{ this }} ) {% endif %} \ No newline at end of file diff --git a/models/br_mg_belohorizonte_smfa_iptu/schema.yml b/models/br_mg_belohorizonte_smfa_iptu/schema.yml index 8741f2c0..bde4cdc8 100644 --- a/models/br_mg_belohorizonte_smfa_iptu/schema.yml +++ b/models/br_mg_belohorizonte_smfa_iptu/schema.yml @@ -61,7 +61,7 @@ models: description: "Dicionário de dados da tabela de IPTU da cidade de Belo Horizonte" columns: - name: id_tabela - description: ID da coluna + description: ID da tabela - name: nome_coluna description: Nome da coluna - name: chave From c71276d736579ef59d2dcf56a7188be896798cc0 Mon Sep 17 00:00:00 2001 From: tricktx Date: Wed, 13 Sep 2023 12:45:28 -0300 Subject: [PATCH 8/8] date model incremental --- .../br_mg_belohorizonte_smfa_iptu__iptu.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__iptu.sql b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__iptu.sql index 37cd2805..2ba5cd49 100644 --- a/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__iptu.sql +++ b/models/br_mg_belohorizonte_smfa_iptu/br_mg_belohorizonte_smfa_iptu__iptu.sql @@ -42,5 +42,5 @@ SAFE_CAST(area_terreno AS FLOAT64) area_terreno, SAFE_CAST(area_construida AS FLOAT64) area_construida FROM basedosdados-staging.br_mg_belohorizonte_smfa_iptu_staging.iptu AS t {% if is_incremental() %} -WHERE (CONCAT(ano,'-', mes)) > (SELECT MAX(CONCAT(ano, '-', mes)) FROM {{ this }} ) +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 }} ) {% endif %} \ No newline at end of file