From da4dea2034984988d7fd4efd86bef0e6c21472a8 Mon Sep 17 00:00:00 2001 From: tricktx Date: Wed, 27 Sep 2023 08:38:12 -0300 Subject: [PATCH 1/3] add model dbt prod --- dbt_project.yml | 6 ++ .../br_stf_corte_aberta__decisoes.sql | 36 ++++++++++++ .../br_stf_corte_aberta__dicionario.sql | 9 +++ models/br_stf_corte_aberta/schema.yml | 55 +++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 models/br_stf_corte_aberta/br_stf_corte_aberta__decisoes.sql create mode 100644 models/br_stf_corte_aberta/br_stf_corte_aberta__dicionario.sql create mode 100644 models/br_stf_corte_aberta/schema.yml diff --git a/dbt_project.yml b/dbt_project.yml index 2a346020..0ad0c38a 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -208,6 +208,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_stf_corte_aberta: + +materialized: table + +schema: br_stf_corte_aberta + +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_tse_eleicoes: +materialized: table +schema: br_tse_eleicoes diff --git a/models/br_stf_corte_aberta/br_stf_corte_aberta__decisoes.sql b/models/br_stf_corte_aberta/br_stf_corte_aberta__decisoes.sql new file mode 100644 index 00000000..4a0196af --- /dev/null +++ b/models/br_stf_corte_aberta/br_stf_corte_aberta__decisoes.sql @@ -0,0 +1,36 @@ +{{ +config( + schema='br_stf_corte_aberta', + alias='decisoes', + materialized='table', + partition_by={ + "field": "ano", + "data_type": "int64", + "range": { + "start": 2000, + "end": 2023, + "interval": 1} + }, + labels = {'tema': 'direito'}, + ) +}} + +SELECT +SAFE_CAST(ano AS INT64) ano, +SAFE_CAST(classe AS STRING) classe, +SAFE_CAST(numero AS STRING) numero, +INITCAP(relator) relator, +SAFE_CAST(link AS STRING) link, +INITCAP(subgrupo_andamento) subgrupo_andamento, +INITCAP(andamento) andamento, +INITCAP(observacao_andamento_decisao) observacao_andamento_decisao, +INITCAP(modalidade_julgamento) modalidade_julgamento, +INITCAP(tipo_julgamento) tipo_julgamento, +INITCAP(meio_tramitacao) meio_tramitacao, +SAFE_CAST(indicador_tramitacao AS BOOL) indicador_tramitacao, +INITCAP(assunto_processo) assunto_processo, +INITCAP(ramo_direito) ramo_direito, +SAFE_CAST(data_autuacao AS DATE) data_autuacao, +SAFE_CAST(data_decisao AS DATE) data_decisao, +SAFE_CAST(data_baixa_processo AS DATE) data_baixa_processo +FROM basedosdados-staging.br_stf_corte_aberta_staging.decisoes AS t \ No newline at end of file diff --git a/models/br_stf_corte_aberta/br_stf_corte_aberta__dicionario.sql b/models/br_stf_corte_aberta/br_stf_corte_aberta__dicionario.sql new file mode 100644 index 00000000..f4b32690 --- /dev/null +++ b/models/br_stf_corte_aberta/br_stf_corte_aberta__dicionario.sql @@ -0,0 +1,9 @@ +{{ config(alias='dicionario', schema='br_stf_corte_aberta') }} + +SELECT +SAFE_CAST(id_tabela AS STRING) id_tabela, +SAFE_CAST(nome_coluna AS STRING) nome_coluna, +INITCAP(chave) chave, +SAFE_CAST(cobertura_temporal AS STRING) cobertura_temporal, +INITCAP(valor) valor +FROM basedosdados-staging.br_stf_corte_aberta_staging.dicionario AS t \ No newline at end of file diff --git a/models/br_stf_corte_aberta/schema.yml b/models/br_stf_corte_aberta/schema.yml new file mode 100644 index 00000000..fe96bcf4 --- /dev/null +++ b/models/br_stf_corte_aberta/schema.yml @@ -0,0 +1,55 @@ +version: 2 + +models: + - name: br_stf_corte_aberta__decisoes + description: "Decisões de corte aberta do STF" + columns: + - name: ano + description: Ano da decisão + - name: classe + description: Tipo da classe + - name: numero + description: Número de identificação do processo judicial + - name: relator + description: Relator do processo + - name: link + description: Link do processo + - name: subgrupo_andamento + description: Subgrupo do andamento + - name: andamento + description: Andamento da decisão + - name: observacao_andamento_decisao + description: Observação sobre o andamento da decisão + - name: modalidade_julgamento + description: Modalidade do julgamento (eg. virtual, presencial, monocrática) + - name: tipo_julgamento + description: Tipo do julgamento (eg. colegiada, monocrático) + - name: meio_tramitacao + description: Meio da tramitação (eg. eletrônico, físico) + - name: indicador_tramitacao + description: Indica se o processo está em tramitação + - name: assunto_processo + description: Assunto do processo + - name: ramo_direito + description: Ramo de atuação do direito + - name: data_autuacao + description: Data de autuação + - name: data_decisao + description: Data da decisão + - name: data_baixa_processo + description: Data de baixa do processo + + + - name: br_stf_corte_aberta__dicionario + description: "Dicionário de dados referente a tabela de decisões de corte aberta do STF" + columns: + - name: id_tabela + description: ID da tabela + - name: nome_coluna + description: Nome da coluna + - name: chave + description: Chave + - name: cobertura_temporal + description: Cobertura temporal + - name: valor + description: Valor From 91fc0d0139a7703466901229a2ba2649fd5fe037 Mon Sep 17 00:00:00 2001 From: tricktx Date: Thu, 28 Sep 2023 16:26:11 -0300 Subject: [PATCH 2/3] restrition per line --- .../br_stf_corte_aberta/br_stf_corte_aberta__decisoes.sql | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/models/br_stf_corte_aberta/br_stf_corte_aberta__decisoes.sql b/models/br_stf_corte_aberta/br_stf_corte_aberta__decisoes.sql index 4a0196af..fd905a75 100644 --- a/models/br_stf_corte_aberta/br_stf_corte_aberta__decisoes.sql +++ b/models/br_stf_corte_aberta/br_stf_corte_aberta__decisoes.sql @@ -12,6 +12,14 @@ config( "interval": 1} }, labels = {'tema': 'direito'}, + post_hook = ['CREATE OR REPLACE ROW ACCESS POLICY allusers_filter + ON {{this}} + GRANT TO ("allUsers") + FILTER USING (DATE_DIFF(DATE("{{ run_started_at.strftime("%Y-%m-%d") }}"), DATE(data_decisao), week) > 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(DATE("{{ run_started_at.strftime("%Y-%m-%d") }}"), DATE(data_decisao), week) <= 6)' ] ) }} From da32a11e4915031854fe17010efed92af2aff611 Mon Sep 17 00:00:00 2001 From: Patrick Teixeira <105399231+tricktx@users.noreply.github.com> Date: Thu, 28 Sep 2023 16:46:56 -0300 Subject: [PATCH 3/3] remove post hook dbt project --- dbt_project.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/dbt_project.yml b/dbt_project.yml index d13be584..f720192e 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -220,9 +220,6 @@ models: br_stf_corte_aberta: +materialized: table +schema: br_stf_corte_aberta - +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_tse_eleicoes: +materialized: table +schema: br_tse_eleicoes