Я приеду сегодня за вашей помощью, потому что я работаю над проектом, который требует реализации REST API, который запрашивает около 80 миллионов индикаторов (документов) в коллекции MongoDB. Каждый индикатор следует этой «схеме»:
{
indicator_type: string,
indicator_name: string,
entityId: string,
date: date,
stringDate: string,
value: double,
}
На самом деле есть встроенный API JAVA, но он потребляет много ресурсов ЦП, памяти, а иногда возникают тайм-ауты или ответы занимают много времени, это причина необходимости переделать его. Итак, у меня следующие вопросы:
- Насколько плохо сохранение таких индикаторов, и есть ли какие-то шаблоны для сохранения такого рода данных?
- Какой язык программирования вы можете порекомендовать разработать такого рода конечные точки?
- Мы думаем, что большая часть нашей проблемы связана с базой данных, поэтому мы думаем перейти на Google BigQuery. Может ли BigQuery помочь получить быстрые ответы?
- Если BigQuery не является хорошим ответом, какие другие инструменты вы можете порекомендовать для этого варианта использования?
Что мы пытаемся достичь, это ответы типа этот.
{
"totalConversions": {
"visitorPedestrianAverageConversion":5.847142857142858,
"ticketVisitorAverageConversion":0
},
"series":[
{
"data":[126,124,100,111,74,99,141],
"id":"indicator_type",
"type":"spline"
},
{
"data": [1925,2377,1873,1769,1067,2460,2139],
"id":"indicator_type",
"type":"spline"
},
{
"data":[0,0,0,0,0,0,0],
"id":"indicator_type",
"type":"spline"
},
{
"yAxis":1,
"data":[0,0,0,0,0,0,0],
"id":"indicator_type",
"type":"column"
},
{
"data":[0,0,0,0,0,0,0],
"id":"indicator_type",
"type":"spline"
},
{
"yAxis":2,
"data":[0,0,0,0,0,0,0],
"id":"indicator_type",
"type":"scatter"
},
{
"yAxis":2,
"data":[6.55,5.22,5.34,6.27,6.94,4.02,6.59],
"id":"indicator_type",
"type":"scatter"
},
{
"yAxis":2,
"data":[100,100,100,100,100,100,100],
"id":"indicator_type",
"type":"spline"
}
],
"categories":["Lun 02/03/2020","Mar 03/03/2020","Mié 04/03/2020","Jue 05/03/2020","Vie 06/03/2020","Sáb 07/03/2020","Dom 08/03/2020"]
}