Создание REST API для панели инструментов с диаграммами - PullRequest
0 голосов
/ 11 марта 2020

Я приеду сегодня за вашей помощью, потому что я работаю над проектом, который требует реализации REST API, который запрашивает около 80 миллионов индикаторов (документов) в коллекции MongoDB. Каждый индикатор следует этой «схеме»:

{
  indicator_type: string,
  indicator_name: string,
  entityId:       string,
  date:           date,
  stringDate:     string,
  value:          double,
}

На самом деле есть встроенный API JAVA, но он потребляет много ресурсов ЦП, памяти, а иногда возникают тайм-ауты или ответы занимают много времени, это причина необходимости переделать его. Итак, у меня следующие вопросы:

  1. Насколько плохо сохранение таких индикаторов, и есть ли какие-то шаблоны для сохранения такого рода данных?
  2. Какой язык программирования вы можете порекомендовать разработать такого рода конечные точки?
  3. Мы думаем, что большая часть нашей проблемы связана с базой данных, поэтому мы думаем перейти на Google BigQuery. Может ли BigQuery помочь получить быстрые ответы?
  4. Если 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"]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...