Qual é um bom design de banco de dados relacional para dados do mercado de ações?

StackOverflow https://stackoverflow.com/questions/6071888

  •  07-09-2020
  •  | 
  •  

Pergunta

Suponha que existam dois tipos de mensagens, QUOTE e TRADE.Ambos têm campos diferentes.Por exemplo, TRADE tem apenas um preço único.QUOTE tem um preço de compra e de venda.Quero processar mensagens em tempo hábil para fazer algo como o seguinte:

if (QUOTE) {
...
}
if (TRADE) {
...
}

Meu problema é que as duas mensagens estão em formatos diferentes, então não consigo colocá-las na mesma tabela do banco de dados.Se não conseguir colocá-los na mesma tabela do banco de dados, como posso processar sequencialmente?Alguma idéia para um design adequado?

Foi útil?

Solução

A resposta depende inteiramente do que você está fazendo e de onde seu aplicativo se conecta aos fluxos de dados.

Em um extremo, você pode apenas responder a cotações de clientes extraídas de uma API e basicamente implementar um cache.Neste caso, duas tabelas estão bem.

No outro extremo, você pode estar monitorando cotações em tempo real para uma plataforma de negociação de alta frequência, caso em que o rendimento provavelmente excluirá o uso de um banco de dados (coisas construídas em torno do lisp, como o alegrógrafo, podem ser mais apropriadas). exceto para coletar periodicamente estatísticas agregadas.

Outras dicas

A resposta curta é: 'na verdade não'. Para o mercado de ações e outros dados de séries temporais, um armazenamento de valor-chave como Berkley DB ou Mongo é muito bom.Além disso, um formato de dados como NetCDF (http://en.wikipedia.org/wiki/NetCDF) provavelmente servirá melhor a longo prazo.Também depende do tipo de acesso que você deseja e de quanto tempo deseja armazenar.

Você não indicou o que estava fazendo com os dados, o que deveria informar suas escolhas de armazenamento mais do que qualquer coisa.Por exemplo, um aplicativo de negociação de alta velocidade terá compensações de armazenamento diferentes de um sistema histórico de processamento em lote (onde Hadoop + NetCDF seriam ótimos).YMMV

Kdb+/q

É uma opção muito boa para dados de ticks.Usado pelos principais bancos.

aqui é a informação sobre isso.

Você pode instalar uma versão de trilha e brincar com ela.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top