dg:Convenções/Armazenamento de dados: mudanças entre as edições
(Cria página.) |
|||
(13 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
==Modelo de dados== | |||
[[Arquivo:DG-UMLclass-v1.png|580px|thumb|Modelo original de 2019.]] | |||
== Link eterno == | Ver (trazer para cá) https://github.com/AddressForAll/WS/blob/master/docs/preserv-endpoints.md | ||
Situação atual das tabelas de doação, schema optim: | |||
* Descritores de dados filtrados e ''make_conf'': | |||
** ''optim.codec_type''. Sem descritores. Fornece ''extension'' e ''variant'' dos arquivos, com tradução precisa para MIME type e encode. PK=... | |||
** ''optim.donated_packcomponent''. Sem descritores. Fornece linhagem do pacote. PK=... | |||
** ''optim.donated_packcomponent_cloudcontrol''. Sem desc. Fornece "de-para" do SHA256 do arquivo original (hashedfname) para sua atual URL de preseração digital (hashedfnameuri). Também fornece o MD5 do arquivo explodido, usado na linhagem (tabela donated_packcomponent). PK=packvers_id. | |||
** donated_packcomponent_not_approved. Pacotes não aprovados. | |||
** ''optim.donated_packfilevers''. Controle de IDs e de versões do pacote, com relacionamento do SHA256, seus itens e seu versionamento (por item). Traz a ''pack_item_accepted_date'' e a ''info'' básica. | |||
** ''optim.donated_packtpl''. Traz toda info e ''make_conf_tpl''. PK: id. | |||
** ''optim.donor'', descreve o doador. | |||
* Dados consolodados: | |||
** ''optim.consolidated_data'' (resgate de donor apenas via afa_id do ponto) | |||
** ''optim.consolidated_data2'' mais completa, tem coluna ''packvers_id'' (no futuro será array). | |||
** ''optim.consolidated_data_dups'' fornece duplicados, não-publicados. <br/> ''optim.consolidated_data_pre'' a investigar, talvez dados brutos. | |||
* ... | |||
Lembretes:<pre> | |||
select count(*) from optim.donated_packtpl where make_conf_tpl?'license_evidences'; | |||
</pre> | |||
==Link eterno== | |||
O projeto [[Digital-guard]] disponibiliza os dados preservados por meio de links eternos no formato default: | O projeto [[Digital-guard]] disponibiliza os dados preservados por meio de links eternos no formato default: | ||
https://dl.digital-guard.org/<sha256>.<extensão> | <pre>https://dl.digital-guard.org/<sha256>.<extensão></pre> | ||
Por exemplo, os dados [https:// | Por exemplo, os dados [https://git.digital-guard.org/preserv-BR/tree/main/data/SP/SaoPaulo/_pk0033.01#-parcel sobre lotes doados pela prefeitura de São Paulo] possuem o link eterno: | ||
https://dl.digital-guard.org/bae2054448855305db0fc855d2852cd5a7b369481cc03aeb809a0c3c162a2c04.zip | https://dl.digital-guard.org/bae2054448855305db0fc855d2852cd5a7b369481cc03aeb809a0c3c162a2c04.zip | ||
Linha 15: | Linha 40: | ||
https://dl.digital-guard.org/bae205 | https://dl.digital-guard.org/bae205 | ||
==Nuvem e redirecionamento == | |||
O projeto utiliza serviços de armazenamento em nuvem para hospedar arquivos. | |||
== | === Tabela de-para=== | ||
A tabela '''[https://docs.google.com/spreadsheets/d/1CL6f0I9DSpqKxKC7QNJGCfyabq7mDOVab5QBGV5VLOk/edit#gid=0 de-para]''' continua válida. É uma alternativa para não lidar com [https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv fromDL_toFileServer.csv] diretamente no git. | |||
https:// | No entanto: | ||
*O conteúdo da tabela '''de-para''' deve-se copiado para [https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv fromDL_toFileServer.csv]. '''Solicite ajuda técnica se necessário'''; | |||
*O conteúdo que está em '''de-para''' não é oficial, vale o conteúdo de [https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv fromDL_toFileServer.csv]; | |||
*O processo de disponibilizar o link eterno consome o conteúdo de [https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv fromDL_toFileServer.csv]. Enquanto não constar nele, o link eterno do arquivo não estará funcional; | |||
*'''de-para''' e [https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv fromDL_toFileServer.csv] possuem os mesmos campos. | |||
e que novas entradas no arquivo sejam sempre adicionadas ao final do arquivo. | ===fromDL_toFileServer.csv=== | ||
Foi convencionado que a correspondência entre sha256 e link do arquivo no armazenamento seja feita oficialmente em | |||
https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv | |||
e que novas entradas no arquivo sejam sempre adicionadas ao final do arquivo ('''não adicione linha em branco''' ao final do arquivo). | |||
Linha 27: | Linha 64: | ||
{| class="wikitable" | {| class="wikitable" | ||
! campo !! descrição !! exemplo | ! campo!!descrição!!exemplo | ||
|- | |- | ||
| donor_id || Id do doador, formado por [ | |donor_id||Id do doador, formado por [[wikipedia:ISO_3166-1_numeric|ISO 3166 numérico]] * 1000000 + ''local_id'' de donor.csv||76000026 (local_id em [https://git.digital-guard.org/preserv-BR/blob/main/data/donor.csv#L27 donor.csv]) | ||
|- | |- | ||
| filename_original || Nome original do arquivo. || address_for_all.zip | | filename_original||Nome original do arquivo.||address_for_all.zip | ||
|- | |- | ||
| package_path || Caminho do pacote na estrutura do repositório. || BR/data/SP/Limeira/_pk0026.01 | |package_path || Caminho do pacote na estrutura do repositório.||BR/data/SP/Limeira/_pk0026.01 | ||
|- | |- | ||
| de_sha256 || Arquivo renomeado com o sha256 e extensão. || 529f86b71a936bfdbca3d633b80912f496b9c94a2505ef816e406e2362b631c4.zip | | de_sha256 ||Arquivo renomeado com o sha256 e extensão.||529f86b71a936bfdbca3d633b80912f496b9c94a2505ef816e406e2362b631c4.zip | ||
|- | |- | ||
| para_url || Url do arquivo no serviço de armazenamento. || https://addressforall-my.sharepoint.com/personal/operacao_addressforall_org/_layouts/15/download.aspx?share=EYWIOsxWFpJFsa0X4zKalS8BbEaKtHVuyezvIbN2CdJljw | |para_url ||Url do arquivo no serviço de armazenamento.||https://addressforall-my.sharepoint.com/personal/operacao_addressforall_org/_layouts/15/download.aspx?share=EYWIOsxWFpJFsa0X4zKalS8BbEaKtHVuyezvIbN2CdJljw | ||
|} | |} | ||
O exemplo citado na tabela se encontra na [https:// | O exemplo citado na tabela se encontra na [https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv#L601 linha 601] [https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv fromDL_toFileServer.csv]. | ||
Para entender como gerar ''sha256'' de um arquivo e como enviá-lo para a armazenagem em nuvem, ver [[dg:Guia_do_sha256]]. | |||
==O que fazer após atualizar fromDL_toFileServer.csv== | |||
'''Importante''': o target ''redirects_update'' consome o conteúdo de [https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv fromDL_toFileServer.csv]. Ele '''não consome''' o conteúdo da tabela '''de-para'''. | |||
Atualizar [https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv fromDL_toFileServer.csv] '''não atualiza automaticamente''' o ''datalake'' em produção. Para atualizá-lo, executar os comandos: | |||
Atualizar [https:// | |||
<pre> | <pre> | ||
cd /var/gits/_dg | cd /var/gits/_dg/preserv | ||
git pull | git pull | ||
cd /var/gits/_dg/preserv/src | cd /var/gits/_dg/preserv/src | ||
make redirects_update pg_datalake=dl05s_main | make redirects_update pg_datalake=dl05s_main | ||
</pre> | </pre> | ||
[[Categoria:Digital-guard]] |
Edição atual tal como às 07h42min de 1 de fevereiro de 2024
Modelo de dados
Ver (trazer para cá) https://github.com/AddressForAll/WS/blob/master/docs/preserv-endpoints.md
Situação atual das tabelas de doação, schema optim:
- Descritores de dados filtrados e make_conf:
- optim.codec_type. Sem descritores. Fornece extension e variant dos arquivos, com tradução precisa para MIME type e encode. PK=...
- optim.donated_packcomponent. Sem descritores. Fornece linhagem do pacote. PK=...
- optim.donated_packcomponent_cloudcontrol. Sem desc. Fornece "de-para" do SHA256 do arquivo original (hashedfname) para sua atual URL de preseração digital (hashedfnameuri). Também fornece o MD5 do arquivo explodido, usado na linhagem (tabela donated_packcomponent). PK=packvers_id.
- donated_packcomponent_not_approved. Pacotes não aprovados.
- optim.donated_packfilevers. Controle de IDs e de versões do pacote, com relacionamento do SHA256, seus itens e seu versionamento (por item). Traz a pack_item_accepted_date e a info básica.
- optim.donated_packtpl. Traz toda info e make_conf_tpl. PK: id.
- optim.donor, descreve o doador.
- Dados consolodados:
- optim.consolidated_data (resgate de donor apenas via afa_id do ponto)
- optim.consolidated_data2 mais completa, tem coluna packvers_id (no futuro será array).
- optim.consolidated_data_dups fornece duplicados, não-publicados.
optim.consolidated_data_pre a investigar, talvez dados brutos.
- ...
Lembretes:
select count(*) from optim.donated_packtpl where make_conf_tpl?'license_evidences';
Link eterno
O projeto Digital-guard disponibiliza os dados preservados por meio de links eternos no formato default:
https://dl.digital-guard.org/<sha256>.<extensão>
Por exemplo, os dados sobre lotes doados pela prefeitura de São Paulo possuem o link eterno:
https://dl.digital-guard.org/bae2054448855305db0fc855d2852cd5a7b369481cc03aeb809a0c3c162a2c04.zip
Sem perda de unicidade, o mesmo arquivo pode ser obtido usando pelo menos os 6 primeiros caracteres do sha256:
https://dl.digital-guard.org/bae205
Nuvem e redirecionamento
O projeto utiliza serviços de armazenamento em nuvem para hospedar arquivos.
Tabela de-para
A tabela de-para continua válida. É uma alternativa para não lidar com fromDL_toFileServer.csv diretamente no git.
No entanto:
- O conteúdo da tabela de-para deve-se copiado para fromDL_toFileServer.csv. Solicite ajuda técnica se necessário;
- O conteúdo que está em de-para não é oficial, vale o conteúdo de fromDL_toFileServer.csv;
- O processo de disponibilizar o link eterno consome o conteúdo de fromDL_toFileServer.csv. Enquanto não constar nele, o link eterno do arquivo não estará funcional;
- de-para e fromDL_toFileServer.csv possuem os mesmos campos.
fromDL_toFileServer.csv
Foi convencionado que a correspondência entre sha256 e link do arquivo no armazenamento seja feita oficialmente em
https://git.digital-guard.org/preserv/blob/main/data/redirs/fromDL_toFileServer.csv
e que novas entradas no arquivo sejam sempre adicionadas ao final do arquivo (não adicione linha em branco ao final do arquivo).
Tal arquivo possui os seguintes campos:
campo | descrição | exemplo |
---|---|---|
donor_id | Id do doador, formado por ISO 3166 numérico * 1000000 + local_id de donor.csv | 76000026 (local_id em donor.csv) |
filename_original | Nome original do arquivo. | address_for_all.zip |
package_path | Caminho do pacote na estrutura do repositório. | BR/data/SP/Limeira/_pk0026.01 |
de_sha256 | Arquivo renomeado com o sha256 e extensão. | 529f86b71a936bfdbca3d633b80912f496b9c94a2505ef816e406e2362b631c4.zip |
para_url | Url do arquivo no serviço de armazenamento. | https://addressforall-my.sharepoint.com/personal/operacao_addressforall_org/_layouts/15/download.aspx?share=EYWIOsxWFpJFsa0X4zKalS8BbEaKtHVuyezvIbN2CdJljw |
O exemplo citado na tabela se encontra na linha 601 fromDL_toFileServer.csv.
Para entender como gerar sha256 de um arquivo e como enviá-lo para a armazenagem em nuvem, ver dg:Guia_do_sha256.
O que fazer após atualizar fromDL_toFileServer.csv
Importante: o target redirects_update consome o conteúdo de fromDL_toFileServer.csv. Ele não consome o conteúdo da tabela de-para.
Atualizar fromDL_toFileServer.csv não atualiza automaticamente o datalake em produção. Para atualizá-lo, executar os comandos:
cd /var/gits/_dg/preserv git pull cd /var/gits/_dg/preserv/src make redirects_update pg_datalake=dl05s_main