open-contracting / bi.dream.gov.ua

DREAM Analytics
https://bi.dream.gov.ua
Apache License 2.0
1 stars 0 forks source link

Data / Infrastructure: Оновлення даних з ISB #252

Open ndrhzn opened 2 weeks ago

ndrhzn commented 2 weeks ago

Задокументую тут проблему, повʼязану з використанням даних ISB

Уявімо, що на момент запиту в даних ISB ще не було жодної інформації щодо ПД, тому ми собі не підтягнули в базу даних нічого. Або ж там була інформація за кодом завдання на проєктування, ми бачимо, що вже є ПД, однак ще нема затвердження чи експертизи.

Наступного дня чи тижня ця інформація в даних ISB може зʼявитись, однак ми не дізнаємось про це допоки проактивно не звернемось з кодом завдання на проєктування до до ISB повторно

Які в нас можуть бути опції:

andrzejbeletsky commented 1 week ago

FYI.

Наразі завантаження даних з різних поінтів таке:

сутність тип завантаження звідки
budgetsubmissions incremental https://public-api.dream.gov.ua/marketplace/public/dream/budgetsubmissions
companies incremental https://public-api.dream.gov.ua/marketplace/public/companies
ifiprojects incremental https://public-api.dream.gov.ua/marketplace/public/dream/ifiprojects
investmentprojects incremental https://public-api.dream.gov.ua/marketplace/public/dream/investmentprojects
objects incremental https://public-api.dream.gov.ua/marketplace/public/dream/objects
prequalifications incremental https://public-api.dream.gov.ua/marketplace/public/dream/prequalifications
projects incremental https://public-api.dream.gov.ua/marketplace/public/dream/ideas
submissions incremental https://public-api.dream.gov.ua/marketplace/public/dream/submissions
budgetProgramKVK full https://public-isb.dream.gov.ua/isb/openbudget/classifiers/KVK?code=
related_invest full https://public-api.dream.gov.ua/marketplace/public/dream/investmentprojects/project_id/projects
classifications not exist https://standards.dream.gov.ua/classifications/schema:id
contracts not exist https://public-isb.dream.gov.ua/isb/contracts
design_documentation not exist https://public-isb.dream.gov.ua/isb/e-construction/design-documentation?design-task-code=
tenders not exist https://public-api.prozorro.gov.ua/api/2.5/tenders

incremental - поінт має властивість updated, тому маємо змогу робити інкрементальне завантаження

full - поінт не має властивості updated, тому повне завантаження необхідних даних

not exist - поінт не має властивості updated, тому завантаження необхідних даних , якщо раніше вони не завантажувались. цей варіант може бути хибним, якщо наповнення даних змінилось.

ndrhzn commented 1 week ago

Дякую, @andrzejbeletsky, це дуже корисно!

Чи правильно я розумію, що коли ми робимо full reload, тоді це заторкає і ті ендпойнти, для котрих тип завантаження = not exist? Тобто, скрипт повторно звернеться за всіма посиланнями?

ndrhzn commented 1 week ago

І також чи можна налаштовувати окремо оновлення для цих ендопйнтів? Умовно, чи може бути варіант, за якого скрипт звертається до design_documentation кожні N днів?

andrzejbeletsky commented 1 week ago

Наразі усі ендпоінти завантажуються кожен день, але для кожного при необхідності можна окремий розклад. Різниця між full і not exist тільки в тому, що для full це безумовне завантаження, тобто навіть якщо є файли від попереднього завантаження, вони ігноруються і перетираються. not exist - маємо перелік елементів для завантаження, але реально з апі запрошуємо тільки такі, які не мають файлів від попереднього завантаження.