Проектирование системы для транзакций блокчейн ETL

Я пытаюсь придумать масштабируемый дизайн системы для одного из проектов, над которым я работаю, в котором я использую один из публичных наборов данных блокчейна Google bigquery-public-data.bitcoin_blockchain.transactions

Я хочу получить адрес входа/выхода с наибольшим количеством транзакций по притоку и оттоку и предоставить эту информацию через веб-приложение, поэтому каждый раз, когда посылается GET-запрос, например, GET /address, мое веб-приложение должно получить N лучших адресов входа и выхода для данного адреса и вернуть ответ в следующем формате запрос Get принимает адрес в качестве обязательного параметра и начальную дату, конечную дату, тип потока (приток, отток, оба) в качестве необязательных параметров

•   { 
•       "data": [
•           {
•               "address": "",
•               "inflow_val": "",
•               "outflow_Val": "",
•               "total_val": ""
•           }
•       ],
•       "success": true
•   }

Я думал об экспорте данных транзакций из bigquery и сбросе их в облачное хранилище google и задаче airflow, которая будет копировать экстракт bigquery из облачного хранилища в Postgresql, затем я установлю django с postgresql в качестве бэкенда, позабочусь о маршрутах GET-запросов в urls.py и логике расчета притока и оттока в файле views.py. Затем каждый раз, когда будет отправлен GET запрос, я буду делать агрегацию внутри views.py и возвращать ответ в вышеуказанном формате

но я не уверен, будет ли это масштабируемо или есть лучший способ сделать это

Ценю любые дополнительные предложения или материалы

Вернуться на верх