Skip to content

Navigation Menu

Sign in
Sign up

Metadados

lucascr91 edited this page Jul 22, 2022 · 2 revisions

Metadados

Criação de novo campo para metadados

Neste tutorial vamos mostrar como criar um novo campo de metadado no Ckan. Para o exemplo, criaremos um novo campo chamado n_rows onde teremos o número total de linhas da tabela. A criação de um novo campo de metadado consiste nos seguintes passos:

  1. Edição dos metadados
  2. Migração

Edição dos metadados

Antes de iniciar a edição dos metadados para incluir o campo desejado é preciso buildar o site localmente. Para instruções de como buildar o site localmente, veja o README do repositório principal.

Com o site rodando localmente, podemos iniciar a edição dos metadados. Como vamos adicionar um campo que se relaciona com as tabelas, precisamos editar o items do campo resources em bdm_table. Para isso, abra o arquivo ckanext-basedosdados/ckanext/basedosdados/validator/resources/bdm/table/__init__.py e adicione o campo desejado:

.
.
.
class BdmTable(_CkanDefaultResource):
 # fmt: off
 resource_type: Literal["bdm_table"]
 dataset_id : Str = DATASET_ID_FIELD
 table_id : Str = TABLE_ID_FIELD
 .
 .
 .
 title : Optional[Str] = TITLE_FIELD
 n_rows : Optional[int] = N_ROWS_FIELD

Note que explicitamos que o campo que estamos criando é do tipo int.

Após a edição do arquivo __init__.py, devemos agora editar o arquivo fields_definitions.py que encontra-se na mesma pasta. Neste arquivo precisamos apenas criar um novo Field, a exemplo do que já foi feito para os demais campos. Para nosso caso, temos:

N_ROWS_FIELD = Field(
 title="Número de Linhas da Tabela",
 yaml_order={
 "id_before": "columns",
 "id_after": "metadata_modified",
 },
)

Migração

Após a edição dos metadados, precisamos realizar a migração do novo campo para que todas as tabelas tenha essa informação em seus metadados. É possível realizar migração usando python ou SQL. Para este exemplo, vamos mostrar como realizar essa migração usado python.

A forma mais prática de implementar a migração usando python é usar como template um notebook usado em outra migração. Estes notebooks podem ser encontrados na pasta utils/migration

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /