Я создаю веб-приложение для анализа запасов. Я хочу хранить финансовые данные для нескольких акций. Тогда я хочу использовать скрининг на них. Этот скрининг включает в себя извлечение нескольких акций из бэкэнда и тестирование технического индикатора на них. Запасы, прошедшие тестирование индикатора, будут возвращены пользователю. Допустим, я хочу сохранить pandas.dataframe, например, Stock:
open high low close volume
date
2017-08-01 247.46 247.50 246.716 247.32 55050401
2017-08-02 247.47 247.60 246.370 247.44 47211216
2017-08-03 247.31 247.34 246.640 246.96 40855997
2017-08-04 247.52 247.79 246.970 247.41 60191838
2017-08-07 247.49 247.87 247.370 247.87 31995021
....
Я использую хранилище данных. Я создаю сущности для каждой акции, устанавливая ключ в качестве символа акции. Я использую такую модель:
from google.appengine.ext import ndb
class Stocks(ndb.Model):
dates = ndb.StringProperty(repeated=True)
open = ndb.FloatProperty(repeated=True)
high = ndb.FloatProperty(repeated=True)
low = ndb.FloatProperty(repeated=True)
close = ndb.FloatProperty(repeated=True)
volume = ndb.FloatProperty(repeated=True)
Затем я извлекаю несколько объектов для циклической проверки с помощью технического индикатора:
import numpy
listOfStocks = ndb.get_multi(list_of_keys)
for stock in listOfStocks:
doIndicatorCheck(numpy.array(stock.close))
Я хочу сделать запрос на акции, выполнить проверку индикатора, а затем вернуть результаты пользователю как можно быстрее. Должен ли я использовать Bigtable для этого или Datastore нормально? Если Datastore в порядке, это идеальный способ сделать это?
Заранее спасибо.