Open rdahis opened 2 years ago
@rdahis a unica mudanca aqui de. FE é mostrar mes/dia/etc adicional ao ano nao? nao sei se entendi o que voce colocou
@rdahis a unica mudanca aqui de. FE é mostrar mes/dia/etc adicional ao ano nao? nao sei se entendi o que voce colocou
Tem uma parte de FE sim, numas funções lá de getTemporalCoverage
. Mas relaxa, estou amadurecendo essa ideia e eu mesmo implemento quando chegar a hora.
Ver discussão no #414 sobre a necessidade ou não de criar o campo is_periodically_updated
ou não.
@rdahis UpdateFrequency
ja vai supri isso correto?
@rdahis
UpdateFrequency
ja vai supri isso correto?
Não... Mas bem lembrado, vou tentar já incluir esse issue no novo modelo de dados.
Discussão continua pós https://github.com/basedosdados/backend/pull/67.
Requirements:
latest_available
if empty: table -> column -> keyValidations to include:
last
: datetime
raw_data_source
/information_request
: manual or automatictable
: automatic (from data PR approval)year
> semester
> quarter
> month
> day
> hour
> minute
> second
def datetime_entity(datetime_range):
if (datetime_range.start_second or datetime_range.end_second):
return second
if (datetime_range.start_minute or datetime_range.end_minute):
return minute
if (datetime_range.start_hour or datetime_range.end_hour):
return hour
if (datetime_range.start_day or datetime_range.end_day):
return day
if (datetime_range.start_month or datetime_range.end_month):
return month
if (datetime_range.start_quarter or datetime_range.end_quarter):
return quarter
if (datetime_range.start_semester or datetime_range.end_semester):
return semester
if (datetime_range.start_year or datetime_range.end_year):
return year
def latest_datetime_available():
if end_*:
return end_*
else:
if datetime_entity(datetime_range) == update_frequency.entity):
return <entity>(current_datetime) - update_frequency.lag/coverage.interval
else:
if updating.last:
<entity>(last_updated)
return <entity>(current_datetime) - update_frequency.lag/coverage.interval
case 1:
current: 2023-03 latest: 2022-05 inferred_next_update: 2023-06
case 2:
current: 2023-03 inferred_latest_lower_bound: 2021-02 inferred_latest_upper_bound: 2022-02 inferred_next_update_lower_bound: 2023-06 inferred_next_update_upper_bound: 2023-06
if not last and diff entity, not sure between 0-12 months (or calculated total number of
Contexto
Hoje temos um problema: quando vira o ano temos que atualizar na mão o limite superior do campo
temporal_coverage
para todos os recursos atualizados periodicamente (ex:bdm_table
,external_link
). Exemplo: atualizar2004(1)2020
para2004(1)2021
. Isso já é inviável hoje, e fica cada vez mais conforme o número de conjuntos no banco cresce.Proposta
Back-end
update_frequency
poris_periodically_updated
(ou algo assim) tomando valoresyes
eno
.lag
como número de unidades temporais de atraso da atualização. Ex: 10 dias, 1 mês, 1 ano.2004(1)
.Front-end
temporal_coverage
a partir do intervalo médio/mediano/modal entre anos da cobertura. ExibirUB - lag
.Exemplos para data atual
2022-01-31
:lag=1
,2008(1)
==> 2008 - 2021lag=2
,2008-08(2)
==> 2008-08 - 2021-08is_periodically_updated='no'
,1980, 1991, 2000, 2010
==> 1980 - 2010