From 00f328c5dc295b882f9ce2d73bf8ab1e42366c09 Mon Sep 17 00:00:00 2001 From: folhesgabriel Date: Mon, 4 Sep 2023 10:31:05 -0300 Subject: [PATCH] =?UTF-8?q?Exclui=20modelos=20=5Fatualizado,=20setta=20mat?= =?UTF-8?q?erializa=C3=A7=C3=A3o=20incremental=20e=20permissionamento=20po?= =?UTF-8?q?r=20linha?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../br_bcb_agencia__agencia.sql | 33 ++++++-- .../br_bcb_agencia__agencia_atualizado.sql | 30 ------- models/br_bcb_agencia/schema.yml | 82 +++++-------------- .../br_bcb_estban/br_bcb_estban__agencia.sql | 20 ++++- .../br_bcb_estban__agencia_atualizado.sql | 31 ------- .../br_bcb_estban__municipio.sql | 19 ++++- .../br_bcb_estban__municipio_atualizado.sql | 30 ------- models/br_bcb_estban/schema.yml | 45 ---------- 8 files changed, 81 insertions(+), 209 deletions(-) delete mode 100644 models/br_bcb_agencia/br_bcb_agencia__agencia_atualizado.sql delete mode 100644 models/br_bcb_estban/br_bcb_estban__agencia_atualizado.sql delete mode 100644 models/br_bcb_estban/br_bcb_estban__municipio_atualizado.sql diff --git a/models/br_bcb_agencia/br_bcb_agencia__agencia.sql b/models/br_bcb_agencia/br_bcb_agencia__agencia.sql index 4e6324c4..ff097e58 100644 --- a/models/br_bcb_agencia/br_bcb_agencia__agencia.sql +++ b/models/br_bcb_agencia/br_bcb_agencia__agencia.sql @@ -1,7 +1,28 @@ -{{ config( - alias = 'agencia', - schema = 'br_bcb_agencia') -}} +{{ + config( + schema='br_bcb_agencia', + materialized='incremental', + partition_by={ + "field": "ano", + "data_type": "int64", + "range": { + "start": 2007, + "end": 2024, + "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)' + ] + ) + }} SELECT SAFE_CAST(ano AS INT64) ano, @@ -23,4 +44,6 @@ SAFE_CAST(ddd AS STRING) ddd, SAFE_CAST(fone AS STRING) fone, SAFE_CAST(id_instalacao AS STRING) id_instalacao FROM basedosdados-staging.br_bcb_agencia_staging.agencia AS t -WHERE DATE(CAST(ano AS INT64),CAST(mes AS INT64),1)<= DATE(2023,2,1) \ No newline at end of file +{% 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 }} ) +{% endif %} \ No newline at end of file diff --git a/models/br_bcb_agencia/br_bcb_agencia__agencia_atualizado.sql b/models/br_bcb_agencia/br_bcb_agencia__agencia_atualizado.sql deleted file mode 100644 index 8ceff9c5..00000000 --- a/models/br_bcb_agencia/br_bcb_agencia__agencia_atualizado.sql +++ /dev/null @@ -1,30 +0,0 @@ -{{ config( - alias = 'agencia_atualizado', - schema = 'br_bcb_agencia', - 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"']) - }} - - - -SELECT -SAFE_CAST(ano AS INT64) ano, -SAFE_CAST(mes AS INT64) mes, -SAFE_CAST(sigla_uf AS STRING) sigla_uf, -SAFE_CAST(id_municipio AS STRING) id_municipio, -SAFE_CAST(data_inicio AS DATE) data_inicio, -SAFE_CAST(cnpj AS STRING) cnpj, -SAFE_CAST(nome_agencia AS STRING) nome_agencia, -SAFE_CAST(instituicao AS STRING) instituicao, -SAFE_CAST(segmento AS STRING) segmento, -SAFE_CAST(id_compe_bcb_agencia AS STRING) id_compe_bcb_agencia, -SAFE_CAST(id_compe_bcb_instituicao AS STRING) id_compe_bcb_instituicao, -SAFE_CAST(cep AS STRING) cep, -SAFE_CAST(endereco AS STRING) endereco, -SAFE_CAST(complemento AS STRING) complemento, -SAFE_CAST(bairro AS STRING) bairro, -SAFE_CAST(ddd AS STRING) ddd, -SAFE_CAST(fone AS STRING) fone, -SAFE_CAST(id_instalacao AS STRING) id_instalacao -FROM basedosdados-staging.br_bcb_agencia_staging.agencia AS t diff --git a/models/br_bcb_agencia/schema.yml b/models/br_bcb_agencia/schema.yml index e3109756..0cad7497 100644 --- a/models/br_bcb_agencia/schema.yml +++ b/models/br_bcb_agencia/schema.yml @@ -2,85 +2,43 @@ version: 2 models: - name: br_bcb_agencia__agencia - description: "dbt model for agencia month table" + description: Esta tabela apresenta o cadastro de agências bancárias do Banco Central do Brasil (BCB) columns: - name: ano - description: "Ano" + description: Ano - name: mes - description: "Mês" + description: Mês - name: sigla_uf - description: "Sigla da Unidade da Federação" + description: Sigla da Unidade da Federação - name: id_municipio - description: "ID Município - IBGE 7 Dígitos" + description: ID Município - IBGE 7 Dígitos - name: data_inicio - description: "Data de criação da agência" + description: Data de criação da agência - name: cnpj - description: "Cadastro Nacional de Pessoa Júridica (CNPJ)" + description: Cadastro Nacional de Pessoa Júridica (CNPJ) - name: nome_agencia - description: "Nome da Agência" + description: Nome da Agência - name: instituicao - description: "Nome da Instituição Financeira (IF)" + description: Nome da Instituição Financeira (IF) - name: segmento - description: "Segemento de atuação da IF" + description: Segemento de atuação da IF - name: id_compe_bcb_agencia - description: "Identificador do Sistema de Operações Monetárias e Compensações de Outros Papéis (COMPE) do Banco Central da agência" + description: Identificador do Sistema de Operações Monetárias e Compensações de Outros Papéis (COMPE) do Banco Central da agência - name: id_compe_bcb_instituicao - description: "Identificador do Sistema de Operações Monetárias e Compensações de Outros Papéis (COMPE) do Banco Central da instituição" + description: Identificador do Sistema de Operações Monetárias e Compensações de Outros Papéis (COMPE) do Banco Central da instituição - name: nome_agencia - description: "Nome da Agência" + description: Nome da Agência - name: cep - description: "CEP" + description: CEP - name: endereco - description: "endereço da agência" + description: endereço da agência - name: complemento - description: "Complemento do endereço" + description: Complemento do endereço - name: bairro - description: "Bairro" + description: Bairro - name: ddd - description: "ddd" + description: ddd - name: fone - description: "Fone" + description: Fone - name: id_instalacao - description: "identificador de instalação da agência" - - - name: br_bcb_agencia__agencia_atualizado - description: "dbt model for agencia month table" - columns: - - name: ano - description: "Ano" - - name: mes - description: "Mês" - - name: sigla_uf - description: "Sigla da Unidade da Federação" - - name: id_municipio - description: "ID Município - IBGE 7 Dígitos" - - name: data_inicio - description: "Data de criação da agência" - - name: cnpj - description: "Cadastro Nacional de Pessoa Júridica (CNPJ)" - - name: nome_agencia - description: "Nome da Agência" - - name: instituicao - description: "Nome da Instituição Financeira (IF)" - - name: segmento - description: "Segemento de atuação da IF" - - name: id_compe_bcb_agencia - description: "Identificador do Sistema de Operações Monetárias e Compensações de Outros Papéis (COMPE) do Banco Central da agência" - - name: id_compe_bcb_instituicao - description: "Identificador do Sistema de Operações Monetárias e Compensações de Outros Papéis (COMPE) do Banco Central da instituição" - - name: nome_agencia - description: "Nome da Agência" - - name: cep - description: "CEP" - - name: endereco - description: "endereço da agência" - - name: complemento - description: "Complemento do endereço" - - name: bairro - description: "Bairro" - - name: ddd - description: "ddd" - - name: fone - description: "Fone" - - name: id_instalacao - description: "identificador de instalação da agência" + description: identificador de instalação da agência \ No newline at end of file diff --git a/models/br_bcb_estban/br_bcb_estban__agencia.sql b/models/br_bcb_estban/br_bcb_estban__agencia.sql index 65c4c27c..03faa179 100644 --- a/models/br_bcb_estban/br_bcb_estban__agencia.sql +++ b/models/br_bcb_estban/br_bcb_estban__agencia.sql @@ -2,7 +2,7 @@ config( alias = 'agencia', schema='br_bcb_estban', - materialized='table', + materialized='incremental', partition_by={ "field": "ano", "data_type": "int64", @@ -12,7 +12,19 @@ "interval": 1} }, cluster_by = ["mes", "sigla_uf"], - labels = {'project_id': 'basedosdados', 'tema': 'economia'}) + labels = {'project_id': 'basedosdados-dev', 'tema': 'economia'}, + 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)' + ] + ) }} SELECT SAFE_CAST(ano AS INT64) ano, @@ -25,5 +37,7 @@ SELECT SAFE_CAST(id_verbete AS STRING) id_verbete, SAFE_CAST(valor AS FLOAT64) valor FROM basedosdados-staging.br_bcb_estban_staging.agencia AS t -WHERE DATE(CAST(ano AS INT64),CAST(mes AS INT64),1)<= DATE(2023,3,1) +{% 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 }} ) +{% endif %} diff --git a/models/br_bcb_estban/br_bcb_estban__agencia_atualizado.sql b/models/br_bcb_estban/br_bcb_estban__agencia_atualizado.sql deleted file mode 100644 index fbdd880d..00000000 --- a/models/br_bcb_estban/br_bcb_estban__agencia_atualizado.sql +++ /dev/null @@ -1,31 +0,0 @@ -{{ - config( - alias = 'agencia_atualizado', - schema='br_bcb_estban', - materialized='table', - partition_by={ - "field": "ano", - "data_type": "int64", - "range": { - "start": 1987, - "end": 2023, - "interval": 1} - }, - cluster_by = ["mes", "sigla_uf"], - labels = {'project_id': 'basedosdados', 'tema': 'economia'}, - 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"']) - }} -SELECT - SAFE_CAST(ano AS INT64) ano, - SAFE_CAST(mes AS INT64) mes, - SAFE_CAST(sigla_uf AS STRING) sigla_uf, - SAFE_CAST(id_municipio AS STRING) id_municipio, - SAFE_CAST(cnpj_basico AS STRING) cnpj_basico, - SAFE_CAST(instituicao AS STRING) instituicao, - SAFE_CAST(cnpj_agencia AS STRING) cnpj_agencia, - SAFE_CAST(id_verbete AS STRING) id_verbete, - SAFE_CAST(valor AS FLOAT64) valor -FROM basedosdados-staging.br_bcb_estban_staging.agencia AS t - - diff --git a/models/br_bcb_estban/br_bcb_estban__municipio.sql b/models/br_bcb_estban/br_bcb_estban__municipio.sql index bee15006..e8392c4e 100644 --- a/models/br_bcb_estban/br_bcb_estban__municipio.sql +++ b/models/br_bcb_estban/br_bcb_estban__municipio.sql @@ -2,7 +2,7 @@ config( alias = 'municipio', schema='br_bcb_estban', - materialized='table', + materialized='incremental', partition_by={ "field": "ano", "data_type": "int64", @@ -12,7 +12,18 @@ "interval": 1} }, cluster_by = ["mes", "sigla_uf"], - labels = {'project_id': 'basedosdados', 'tema': 'economia'}) + labels = {'project_id': 'basedosdados-dev', 'tema': 'economia'}, + 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)' + ]) }} SELECT SAFE_CAST(ano AS INT64) ano, @@ -26,4 +37,6 @@ SELECT SAFE_CAST(id_verbete AS STRING) id_verbete, SAFE_CAST(valor AS FLOAT64) valor FROM basedosdados-staging.br_bcb_estban_staging.municipio AS t -WHERE DATE(CAST(ano AS INT64),CAST(mes AS INT64),1)<= DATE(2023,3,1) \ No newline at end of file +{% 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 }} ) +{% endif %} \ No newline at end of file diff --git a/models/br_bcb_estban/br_bcb_estban__municipio_atualizado.sql b/models/br_bcb_estban/br_bcb_estban__municipio_atualizado.sql deleted file mode 100644 index 220fc323..00000000 --- a/models/br_bcb_estban/br_bcb_estban__municipio_atualizado.sql +++ /dev/null @@ -1,30 +0,0 @@ -{{ - config( - alias = 'municipio_atualizado', - schema='br_bcb_estban', - materialized='table', - partition_by={ - "field": "ano", - "data_type": "int64", - "range": { - "start": 1987, - "end": 2023, - "interval": 1} - }, - cluster_by = ["mes", "sigla_uf"], - labels = {'project_id': 'basedosdados', 'tema': 'economia'}, - 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"']) - }} -SELECT - SAFE_CAST(ano AS INT64) ano, - SAFE_CAST(mes AS INT64) mes, - SAFE_CAST(sigla_uf AS STRING) sigla_uf, - SAFE_CAST(id_municipio AS STRING) id_municipio, - SAFE_CAST(cnpj_basico AS STRING) cnpj_basico, - SAFE_CAST(instituicao AS STRING) instituicao, - SAFE_CAST(agencias_esperadas AS INT64) agencias_esperadas, - SAFE_CAST(agencias_processadas AS INT64) agencias_processadas, - SAFE_CAST(id_verbete AS STRING) id_verbete, - SAFE_CAST(valor AS FLOAT64) valor -FROM basedosdados-staging.br_bcb_estban_staging.municipio AS t \ No newline at end of file diff --git a/models/br_bcb_estban/schema.yml b/models/br_bcb_estban/schema.yml index b107e79a..8e7f8378 100644 --- a/models/br_bcb_estban/schema.yml +++ b/models/br_bcb_estban/schema.yml @@ -25,51 +25,6 @@ models: - name: valor description: Valores - name: br_bcb_estban__agencia - description: "dbt model for agencia month table" - columns: - - name: ano - description: Ano - - name: mes - description: Mês - - name: sigla_uf - description: Sigla da Unidade da Federação - - name: id_municipio - description: ID Município - IBGE 7 Dígitos - - name: cnpj_basico - description: Cadastro Nacional de Pessoa Jurídica (CNPJ) básico (8 primeiros dígitos) - - name: instituicao - description: Nome da Instituição Financeira (IF) - - name: cnpj_agencia - description: CNPJ da agência bancária - - name: id_verbete - description: Código do verbete - - name: valor - description: Valores - - - name: br_bcb_estban__municipio_atualizado - description: "dbt model for municipio month table" - columns: - - name: ano - description: Ano - - name: mes - description: Mês - - name: sigla_uf - description: Sigla da Unidade da Federação - - name: id_municipio - description: ID Município - IBGE 7 Dígitos - - name: cnpj_basico - description: Cadastro Nacional de Pessoa Jurídica (CNPJ) básico (8 primeiros dígitos) - - name: instituicao - description: Nome da Instituição Financeira (IF) - - name: agencias_esperadas - description: Quantidade de agências esperadas da IF no município - - name: agencias_processadas - description: Quantidade de agências processadas da IF no município - - name: id_verbete - description: Código do verbete - - name: valor - description: Valores - - name: br_bcb_estban__agencia_atualizado description: "dbt model for agencia month table" columns: - name: ano