dg:Workflow: mudanças entre as edições
m (→Aprovação) |
Sem resumo de edição |
||
Linha 1: | Linha 1: | ||
= | == Ingestão == | ||
* Devido à ''hardcoding'', qualquer base <code>ingest</code> [https://github.com/digital-guard/preserv/blob/main/src/ingest-step1-ini.sql#L21 depende] da <code>dl05s_main</code>. | |||
* Vamos usar apenas a base <code>ingest1</code>, e não adulterar mais nada no servidor. | |||
* É possível trocar <code>ingest1</code> por outra com os devidos cuidados e parametrizações. | |||
=== Preparo do ambiente e da base === | |||
=== Gerar os arquivos | <syntaxhighlight lang="sh">cd /var/gits/_a4a/pg_pubLib-v1 | ||
git pull | |||
cd /var/gits/_dg/preserv/src | |||
git pull | |||
make fix_permissions # vai solicitar sudor | |||
make # vai listar as opções | |||
make ini_ingest pg_db=ingest1 # cria base ingest1</syntaxhighlight> | |||
=== Preparo do processo de ingestão === | |||
<syntaxhighlight lang="sh"> | |||
make fix_permissions # vai solicitar sudor | |||
cd /var/gits/_dg/preserv-BR/src | |||
git pull | |||
make # vai listar as opções | |||
make all # copia makefile inicial em todos pacotes de dados | |||
cd /var/gits/_dg/preserv-BR/data/ | |||
ls # vamos seguir a ordem alfabética | |||
</syntaxhighlight> | |||
=== Exemplo do pk42.01 === | |||
Verificando a situação no filesystem: | |||
<syntaxhighlight lang="sh">make fix_permissions # vai solicitar sudor | |||
cd /var/gits/_dg/preserv-BR/data/ | |||
ls AC/RioBranco/_pk0042.01/ | |||
grep "^42" donor.csv | |||
grep ",42,1" donatedPack.csv | |||
pushd AC/RioBranco/_pk0042.01/ | |||
more sha256sum.txt | |||
grep file make_conf.yaml | |||
# ... até aqui foi só conferir se batem IDs, hashes e títulos | |||
more make_conf.yaml | |||
# detectamos problemas por ser antigo: falta licença, faltam file sizes, etc. | |||
make me # para a ingest indicada em commomFirst.yaml ou make me pg_db=ingestXX para uma ingest diferente. | |||
# Idem para qualquer target em preserv-BR | |||
# .. responder senhas ENTERs etc. | |||
make all_layers | |||
make all_joins # se existir a necessidade.</syntaxhighlight> | |||
=== Exemplo do pk0004.01 (OpenStreetMap) === | |||
<syntaxhighlight lang="sh">make fix_permissions # vai solicitar sudor | |||
pushd /var/gits/_dg/preserv-BR/data/_pk0004.01 | |||
ls _pk0004.01/ | |||
grep "^4," donor.csv | |||
grep ",4,1" donatedPack.csv | |||
pushd _pk0004.01/ | |||
more sha256sum.txt | |||
grep file make_conf.yaml | |||
# ... até aqui foi só conferir se batem IDs, hashes e títulos | |||
more make_conf.yaml | |||
# detectamos problemas por ser antigo: falta licença, faltam file sizes, etc. | |||
make me # para a ingest indicada em commomFirst.yaml ou make me pg_db=ingestXX para uma ingest diferente. | |||
# caso falte file sizes: | |||
make wget_files orig=/tmp/pg_io/tmpfolder | |||
make insert_size orig=/tmp/pg_io/tmpfolder | |||
rm -rf /tmp/pg_io/tmpfolder | |||
make openstreetmap # executar antes da ingestão, apenas uma vez. | |||
# .. responder senhas ENTERs etc. | |||
make all_layers | |||
</syntaxhighlight> | |||
== Publicação == | |||
=== Gerar os arquivos publicáveis === | |||
Para gerar os arquivos que serão publicados no respectivo ''preservCutGeo'' do país: | Para gerar os arquivos que serão publicados no respectivo ''preservCutGeo'' do país: | ||
Linha 26: | Linha 110: | ||
<syntaxhighlight lang="sh">pushd /var/gits/_dg/preserv/src | <syntaxhighlight lang="sh">pushd /var/gits/_dg/preserv/src | ||
make to_donated_packcomponent pg_db=ingestXX pg_datalake=dl05s_main</syntaxhighlight> | make to_donated_packcomponent pg_db=ingestXX pg_datalake=dl05s_main</syntaxhighlight> | ||
=== Aprovação === | === Aprovação === | ||
Linha 37: | Linha 121: | ||
make approved_donated_packcomponent id=ZZ pg_datalake=dl05s_main</syntaxhighlight> | make approved_donated_packcomponent id=ZZ pg_datalake=dl05s_main</syntaxhighlight> | ||
Nesse momento, os novos dados fazem parte das estátisticas disponibilizadas em API. Também, listas disponibilizadas no site addressforall e em documentações podem ser atualizadas. | Nesse momento, os novos dados fazem parte das estátisticas disponibilizadas em API. Também, listas disponibilizadas no site addressforall e em documentações podem ser atualizadas. | ||
== Licenças == | |||
Executar o target <code>make insert_license</code> utiliza os dados de [http://git.digital-guard.org/licenses digital-guard/licenses] para gerar no respectivo ''make_conf.yaml'' o seguinte, por exemplo: | |||
<pre>license_evidences: | |||
definition: [ODbL-1.0, odbl, http://www.opendefinition.org/licenses/odc-odbl]</pre> | |||
onde <code>definition:</code> equivale a <code>[name, family, url]</code> conforme discutido em https://github.com/digital-guard/preserv/issues/32 | |||
Manualmente, inserir <code>file</code> e <code>uri_evidency</code>, conforme discutido em https://github.com/digital-guard/preserv/issues/19: | |||
<pre> file: f0cbf591bda09880dc27cdbfcf4ee45189eb1e2c3742800c066f0b5576d81744.zip | |||
uri_evidency: http://web.archive.org/web/20211012105347/https://www.openstreetmap.org/copyright</pre> | |||
onde <code>file</code> indica o ''sha256'' do arquivo compactado contendo as evidencias e <code>uri_evidency</code> indica o ''sha256.eml'' ou ''archive.org/url'' como discutido aqui https://github.com/digital-guard/preserv/issues/32#issuecomment-998347112. | |||
Resultando em: | |||
<pre>license_evidences: | |||
definition: [ODbL-1.0, odbl, http://www.opendefinition.org/licenses/odc-odbl] | |||
file: f0cbf591bda09880dc27cdbfcf4ee45189eb1e2c3742800c066f0b5576d81744.zip | |||
uri_evidency: http://web.archive.org/web/20211012105347/https://www.openstreetmap.org/copyright</pre> | |||
Exemplo utilizado em https://github.com/digital-guard/preserv-CO/blob/main/data/_pk0004.01/make_conf.yaml | |||
== Gerar README.md == | |||
Template em ptbr: https://github.com/digital-guard/preserv/blob/main/src/maketemplates/readme_ptbr.mustache | |||
Template em es: https://github.com/digital-guard/preserv/blob/main/src/maketemplates/readme_es.mustache | |||
A seguir exemplo fictício de make_conf.yaml para gerar um README.md do pacote. Reparar nas chaves: <code>comments, comment, test_evidence, standardized_fields, other_fields, other_files e to-do</code>. | |||
Informações extras ou que não se encaixam nas referidas chaves devem ser incluídas num arquivo ''attachment.md'', que terá seu conteúdo anexado ao final do README.md numa seção chamada ''anexo''. | |||
<syntaxhighlight lang="yaml">pack_id: 81.1 | |||
pkversion: 001 | |||
schemaId_input: | |||
schemaId_template: | |||
codec:descr_encode: srid=31983 | |||
files: | |||
- | |||
p: 1 | |||
file: d9cddc63f7782d250fc80f0572b9fb884ee7ec1911e19deea4381a4ad5d0a172.zip | |||
name: Bairros | |||
comments: Comentários sobre o arquivo, se houver. | |||
size: 1234 | |||
layers: | |||
geoaddress: | |||
subtype: ext | |||
method: shp2sql | |||
file: 1 | |||
sql_select: ['gid', 'numnovo as hnum', 'cod_log', 'geom'] | |||
orig_filename: pg_renumeracoes | |||
comments: Comentários referente ao layer, se houver. | |||
test_evidence: endereço da imagem de evidencia do layer. | |||
# dados relevantes, padronizados | |||
standardized_fields: | |||
- | |||
name: nome do campo ou combinação de campos | |||
standard: 'nome padronizado, por exemplo: hnum' | |||
comment: comentários sobre o campo, se houver. | |||
# dados relevantes, NÃO padronizados, se houver | |||
other_fields: | |||
- | |||
name: nome do campo ou combinação de campos | |||
comment: comentários sobre o campo, se houver. | |||
comments: Comentários gerais sobre os dados, sobre o pacote, etc, se houver. | |||
test_evidence: endereço da imagem de evidencia de todos os dados. | |||
# outros arquivos que podem ser úteis | |||
other_files: | |||
- | |||
p: 2 | |||
file: pg_div_municipio.zip | |||
name: pg_div_municipio | |||
format: shp | |||
comment: Arquivo com a divisa territorial de guarulhos e vizinhos. | |||
# Lista de tarefas | |||
to-do: | |||
- Tarefa 1.</syntaxhighlight> | |||
=== Como gerar === | |||
Exemplo de geração de README.md: | |||
<pre>pushd /var/gits/_dg/preserv-BR/src | |||
make all | |||
pushd /var/gits/_dg/preserv-BR/data/AC/RioBranco/_pk0042.01 | |||
make readme pg_db=ingest99 | |||
popd | |||
popd</pre> | |||
=== Exemplos: === | |||
* https://github.com/digital-guard/preserv-BR/tree/main/data/SP/SaoPaulo/_pk0033.01 | |||
* https://github.com/digital-guard/preserv-BR/tree/main/data/AC/RioBranco/_pk0042.01 | |||
* https://github.com/digital-guard/preserv-BR/tree/main/data/SP/Atibaia/_pk0021.01 | |||
* https://github.com/digital-guard/preserv-BR/tree/main/data/ES/CachoeiroItapemirim/_pk0091.01 | |||
== Diagrama == | == Diagrama == |
Edição das 15h24min de 9 de junho de 2023
Ingestão
- Devido à hardcoding, qualquer base
ingest
depende dadl05s_main
. - Vamos usar apenas a base
ingest1
, e não adulterar mais nada no servidor. - É possível trocar
ingest1
por outra com os devidos cuidados e parametrizações.
Preparo do ambiente e da base
cd /var/gits/_a4a/pg_pubLib-v1
git pull
cd /var/gits/_dg/preserv/src
git pull
make fix_permissions # vai solicitar sudor
make # vai listar as opções
make ini_ingest pg_db=ingest1 # cria base ingest1
Preparo do processo de ingestão
make fix_permissions # vai solicitar sudor
cd /var/gits/_dg/preserv-BR/src
git pull
make # vai listar as opções
make all # copia makefile inicial em todos pacotes de dados
cd /var/gits/_dg/preserv-BR/data/
ls # vamos seguir a ordem alfabética
Exemplo do pk42.01
Verificando a situação no filesystem:
make fix_permissions # vai solicitar sudor
cd /var/gits/_dg/preserv-BR/data/
ls AC/RioBranco/_pk0042.01/
grep "^42" donor.csv
grep ",42,1" donatedPack.csv
pushd AC/RioBranco/_pk0042.01/
more sha256sum.txt
grep file make_conf.yaml
# ... até aqui foi só conferir se batem IDs, hashes e títulos
more make_conf.yaml
# detectamos problemas por ser antigo: falta licença, faltam file sizes, etc.
make me # para a ingest indicada em commomFirst.yaml ou make me pg_db=ingestXX para uma ingest diferente.
# Idem para qualquer target em preserv-BR
# .. responder senhas ENTERs etc.
make all_layers
make all_joins # se existir a necessidade.
Exemplo do pk0004.01 (OpenStreetMap)
make fix_permissions # vai solicitar sudor
pushd /var/gits/_dg/preserv-BR/data/_pk0004.01
ls _pk0004.01/
grep "^4," donor.csv
grep ",4,1" donatedPack.csv
pushd _pk0004.01/
more sha256sum.txt
grep file make_conf.yaml
# ... até aqui foi só conferir se batem IDs, hashes e títulos
more make_conf.yaml
# detectamos problemas por ser antigo: falta licença, faltam file sizes, etc.
make me # para a ingest indicada em commomFirst.yaml ou make me pg_db=ingestXX para uma ingest diferente.
# caso falte file sizes:
make wget_files orig=/tmp/pg_io/tmpfolder
make insert_size orig=/tmp/pg_io/tmpfolder
rm -rf /tmp/pg_io/tmpfolder
make openstreetmap # executar antes da ingestão, apenas uma vez.
# .. responder senhas ENTERs etc.
make all_layers
Publicação
Gerar os arquivos publicáveis
Para gerar os arquivos que serão publicados no respectivo preservCutGeo do país:
make publicating_geojsons_<nome_do_layer> # exemplo: make publicating_geojsons_via` gera os arquivos em `/var/gits/_dg/preservCutGeo-BR2021/data/AC/RioBranco/_pk0042.01/via/`
make target audit-geojsons_<nome do layer> # exibe informações sobre os arquivos gerados.
Atualmente, apenas em casos excepcionais é necessário recorrer a busca de parametros de distribuição.
Subir para o repositório
Concluída a geração dos arquivos publicavéis, fazer o pull
dos arquivos gerados na branch main do no respectivo preservCutGeo do país, para aguardar aprovação.
Copiar informações para DL05s_main
A execução dos targets de ingestão e publicação geram dados na tabela ingest.donated_packcomponent
da base de dados ingest
que foi utilizada no processo. A base ingest
é transitória. Findo os passos anteriores, os dados gerados devem ser movidos para a base de dados permanente DL05s_main
.
Para copiar o conteúdo da tabela ingest.donated_packcomponent
para optim.donated_PackComponent_not_approved
em DL05s_main
:
pushd /var/gits/_dg/preserv/src
make to_donated_packcomponent pg_db=ingestXX pg_datalake=dl05s_main
Aprovação
A aprovação se dá pela avaliação dos arquivos e movendo os dados de optim.donated_PackComponent_not_approved
para optim.donated_PackComponent
em DL05s_main
:
# obter a variavel id
psql postgres://postgres@localhost/dl05s_main <<< "SELECT * FROM optim.donated_PackComponent_not_approved;"
pushd /var/gits/_dg/preserv/src
make approved_donated_packcomponent id=ZZ pg_datalake=dl05s_main
Nesse momento, os novos dados fazem parte das estátisticas disponibilizadas em API. Também, listas disponibilizadas no site addressforall e em documentações podem ser atualizadas.
Licenças
Executar o target make insert_license
utiliza os dados de digital-guard/licenses para gerar no respectivo make_conf.yaml o seguinte, por exemplo:
license_evidences: definition: [ODbL-1.0, odbl, http://www.opendefinition.org/licenses/odc-odbl]
onde definition:
equivale a [name, family, url]
conforme discutido em https://github.com/digital-guard/preserv/issues/32
Manualmente, inserir file
e uri_evidency
, conforme discutido em https://github.com/digital-guard/preserv/issues/19:
file: f0cbf591bda09880dc27cdbfcf4ee45189eb1e2c3742800c066f0b5576d81744.zip uri_evidency: http://web.archive.org/web/20211012105347/https://www.openstreetmap.org/copyright
onde file
indica o sha256 do arquivo compactado contendo as evidencias e uri_evidency
indica o sha256.eml ou archive.org/url como discutido aqui https://github.com/digital-guard/preserv/issues/32#issuecomment-998347112.
Resultando em:
license_evidences: definition: [ODbL-1.0, odbl, http://www.opendefinition.org/licenses/odc-odbl] file: f0cbf591bda09880dc27cdbfcf4ee45189eb1e2c3742800c066f0b5576d81744.zip uri_evidency: http://web.archive.org/web/20211012105347/https://www.openstreetmap.org/copyright
Exemplo utilizado em https://github.com/digital-guard/preserv-CO/blob/main/data/_pk0004.01/make_conf.yaml
Gerar README.md
Template em ptbr: https://github.com/digital-guard/preserv/blob/main/src/maketemplates/readme_ptbr.mustache
Template em es: https://github.com/digital-guard/preserv/blob/main/src/maketemplates/readme_es.mustache
A seguir exemplo fictício de make_conf.yaml para gerar um README.md do pacote. Reparar nas chaves: comments, comment, test_evidence, standardized_fields, other_fields, other_files e to-do
.
Informações extras ou que não se encaixam nas referidas chaves devem ser incluídas num arquivo attachment.md, que terá seu conteúdo anexado ao final do README.md numa seção chamada anexo.
pack_id: 81.1
pkversion: 001
schemaId_input:
schemaId_template:
codec:descr_encode: srid=31983
files:
-
p: 1
file: d9cddc63f7782d250fc80f0572b9fb884ee7ec1911e19deea4381a4ad5d0a172.zip
name: Bairros
comments: Comentários sobre o arquivo, se houver.
size: 1234
layers:
geoaddress:
subtype: ext
method: shp2sql
file: 1
sql_select: ['gid', 'numnovo as hnum', 'cod_log', 'geom']
orig_filename: pg_renumeracoes
comments: Comentários referente ao layer, se houver.
test_evidence: endereço da imagem de evidencia do layer.
# dados relevantes, padronizados
standardized_fields:
-
name: nome do campo ou combinação de campos
standard: 'nome padronizado, por exemplo: hnum'
comment: comentários sobre o campo, se houver.
# dados relevantes, NÃO padronizados, se houver
other_fields:
-
name: nome do campo ou combinação de campos
comment: comentários sobre o campo, se houver.
comments: Comentários gerais sobre os dados, sobre o pacote, etc, se houver.
test_evidence: endereço da imagem de evidencia de todos os dados.
# outros arquivos que podem ser úteis
other_files:
-
p: 2
file: pg_div_municipio.zip
name: pg_div_municipio
format: shp
comment: Arquivo com a divisa territorial de guarulhos e vizinhos.
# Lista de tarefas
to-do:
- Tarefa 1.
Como gerar
Exemplo de geração de README.md:
pushd /var/gits/_dg/preserv-BR/src make all pushd /var/gits/_dg/preserv-BR/data/AC/RioBranco/_pk0042.01 make readme pg_db=ingest99 popd popd
Exemplos:
- https://github.com/digital-guard/preserv-BR/tree/main/data/SP/SaoPaulo/_pk0033.01
- https://github.com/digital-guard/preserv-BR/tree/main/data/AC/RioBranco/_pk0042.01
- https://github.com/digital-guard/preserv-BR/tree/main/data/SP/Atibaia/_pk0021.01
- https://github.com/digital-guard/preserv-BR/tree/main/data/ES/CachoeiroItapemirim/_pk0091.01