我正在创建一个股票分析网络应用程序。我想存储多只股票的财务数据。然后我想用一个股票筛选器在他们身上。此筛选器涉及从后端检索多只股票,并对其进行技术指标测试。通过指标测试的股票将返回给用户。假设我想为exampleStock存储一个exampleStock:
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
....我一直在使用DataStore。我为每个股票创建实体,将键设置为股票符号。我用的是这样的模型:
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很好的话,这是理想的方法吗?
提前谢谢。
发布于 2018-09-07 22:49:11
披露:我是云大表的产品经理。
如果你计划拥有大量的金融数据,覆盖整个股票市场,云大表是一个很好的选择:它可以扩展到兆字节和千兆字节,你可以得到低延迟的响应,你的请求,它已经使用在金融,风险和反欺诈应用程序,并在本机支持时间序列通过其第三维空间。参见这篇博客文章和视频关于FIS如何使用Cloud来竞标SEC CAT项目。
也就是说,Cloud在单个集群中具有很强的一致性,但是如果您使用复制,则最终是一致的,所以您必须记住这一点。如果您的用户期望具有较强的一致性,则您的选项如下:
Firestore将为您的应用程序提供一个具有很强一致性的无服务器文档数据库,因此如果这对您的用例很重要,那么您应该考虑Firestore。
如果希望能够对数据运行SQL查询,请考虑:
希望这能有所帮助!
发布于 2018-09-07 13:27:32
如您所知,Datastore是使用Bigtable的实施。因此,您可以期望它们执行类似的操作。在用例适用性方面,数据存储( Datastore )将很快成为被Firestore所取代,它更适合存储用户或用户会话相关数据。更重要的是。此外,Bigtable明确推荐用于与财务相关的工作负载。
有一个页面专门用于选择您可以使用的最多的此页作为指南。
https://stackoverflow.com/questions/52217149
复制相似问题