Bigtable или Datastore больше подходят для хранения и использования финансовых данных для онлайн-приложений? - PullRequest
0 голосов
/ 07 сентября 2018

Я создаю веб-приложение для анализа запасов. Я хочу хранить финансовые данные для нескольких акций. Тогда я хочу использовать скрининг на них. Этот скрининг включает в себя извлечение нескольких акций из бэкэнда и тестирование технического индикатора на них. Запасы, прошедшие тестирование индикатора, будут возвращены пользователю. Допустим, я хочу сохранить 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 в порядке, это идеальный способ сделать это?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Раскрытие информации: я менеджер по продукту в Cloud Bigtable.

Если вы планируете располагать большим объемом финансовых данных, охватывающих весь фондовый рынок, Cloud Bigtable является хорошим выбором: он масштабируется до терабайтов и петабайт, и вы можете получать ответы на запросы с низкой задержкой, он уже используется в приложениях, связанных с финансами, рисками и мошенничеством, а также поддерживает временные ряды посредством третьего измерения. См. в этом блоге и video о том, как FIS использовала Cloud Bigtable для своей заявки на проект SEC CAT.

Тем не менее, Cloud Bigtable строго согласован в одном кластере, но в конечном итоге согласован, если вы используете репликацию, поэтому вы должны помнить об этом. Если ваши пользователи ожидают строгой согласованности, вы можете выбрать следующие варианты:

  • использовать один экземпляр кластера (репликация только в пределах одной зоны)
  • если вы используете межзональную репликацию, перенаправляйте запросы в один кластер через профили приложений
  • рассмотрите возможность использования другой системы, обеспечивающей строгую согласованность

Firestore предоставит бездисерную базу данных документов с высокой согласованностью для ваших приложений, поэтому вы должны рассмотреть Firestore, если это важно для вашего варианта использования.

Если вы хотите иметь возможность выполнять SQL-запросы к вашим данным, подумайте:

Надеюсь, это поможет!

0 голосов
/ 07 сентября 2018

Как вы знаете, Datastore реализован с использованием Bigtable. Таким образом, вы можете ожидать, что они будут работать аналогично. С точки зрения пригодности варианта использования Datastore, который вскоре будет заменен на Firestore , больше подходит для хранения данных, относящихся к пользовательскому или пользовательскому сеансу. Более того. Кроме того, Bigtable явно рекомендуется для рабочих нагрузок, связанных с финансами.

Существует страница, специально предназначенная для выбора наиболее часто используемых этой страницы в качестве руководства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...