El almacenamiento de datos históricos consiste en conservar eventos pasados del mercado y de trading en un formato que permita consultarlos o reproducirlos.
Esta definición oculta la cuestión operativa: puede ser barato conservar archivos comprimidos durante un año, pero caro o demasiado lento convertirlos en una prueba válida. La respuesta depende de lo que registre cada evento, de cómo gestione la reproducción los tiempos y el estado, y de la rapidez con la que los equipos necesiten obtener resultados.
Defina la reproducción antes de calcular el coste del archivo
Empiece por decidir qué significa «reproducción» para la carga de trabajo. Un backtest de investigación podría necesitar operaciones y cotizaciones de primer nivel del libro de órdenes. Para reproducir un incidente de ejecución pueden hacer falta actualizaciones de profundidad completa, acuses de recibo de órdenes, ejecuciones, rechazos, cambios de configuración y las marcas de tiempo exactas que utilizaba el sistema en vivo.
Se trata de conjuntos de datos diferentes, con distintas necesidades de almacenamiento y procesamiento. Un flujo de cotizaciones puede servir para simular precios, pero no permite demostrar cómo respondió una decisión de cruce o enrutamiento a los cambios en la profundidad del libro de órdenes. Del mismo modo, los registros de la aplicación por sí solos pueden mostrar que se envió una orden, pero no conservar el estado del mercado ni los datos de entrada de las decisiones internas que expliquen por qué.
Anote las fuentes de eventos y el nivel de fidelidad necesario antes de estimar la capacidad. Incluya los feeds de los centros de negociación, los eventos internos de órdenes y ejecuciones, los datos de referencia, la información de reloj y secuencia, y la versión de las reglas de normalización.
Conserve los mensajes originales del proveedor cuando lo permita la licencia. Los registros normalizados son más fáciles de consultar, pero los mensajes originales ayudan a diagnosticar cambios en los analizadores y reproducir defectos de datos.
Especifique claramente la semántica temporal. Almacene la hora del evento en el centro de negociación y la hora de recepción local, y conserve los números de secuencia cuando estén disponibles.
Una reproducción que ordene todo según una sola marca de tiempo puede ocultar interrupciones del feed, desviaciones del reloj o mensajes retrasados. En las investigaciones, esos detalles pueden importar más que el número de decimales de un campo de precio.
Convierta las tasas de eventos en capacidad anual
Estime el volumen a partir de tasas máximas y medias medidas, no de un único día tranquilo. Registre los bytes por evento después de incluir el encuadre, los metadatos y los índices.
Después, calcule la ingesta diaria, el número de días de trading, los años de retención y el número de réplicas. Como primera aproximación, 250 sesiones es una hipótesis anual útil para planificar en un mercado que opera entre semana, pero incluya los fines de semana y los registros de tiempo natural si el sistema también los genera.
Las cifras siguientes son rangos habituales de planificación para un conjunto de datos lógico, no cifras auditadas de ningún proveedor. Los volúmenes diarios varían según el número de instrumentos, la cobertura de centros de negociación, la profundidad y la actividad. Las cifras anuales se basan en 250 sesiones y excluyen las copias de seguridad, las réplicas y los índices derivados.
| Conjunto de datos | Volumen bruto habitual por sesión | Volumen comprimido habitual por sesión | Volumen comprimido habitual por año | Tasa habitual de reproducción secuencial |
|---|---|---|---|---|
| Cotizaciones L1 y operaciones | 10-100 GB | 3-30 GB | 0.75-7.5 TB | 20-200 MB/s |
| Actualizaciones del libro de órdenes L2 | 0.2-2 TB | 60-800 GB | 15-200 TB | 50-500 MB/s |
| Eventos de órdenes y ejecuciones | 2-30 GB | 0.5-10 GB | 0.1-2.5 TB | 5-100 MB/s |
Las tasas de compresión no son fijas. Los formatos columnares y la codificación delta pueden reducir los campos repetitivos, mientras que las cargas de alta entropía se comprimen menos. Mida la tasa en sesiones representativas, tanto de mucha actividad como de poca. Deje margen para cambios de esquema, correcciones tardías y escrituras en paralelo. Un conjunto de datos nominal de 100 TB puede requerir dos o tres veces esa capacidad al contar las réplicas, las instantáneas y las copias de trabajo.
Para obtener un cálculo aproximado, multiplique los bytes comprimidos medios por sesión por las sesiones anuales, los años de retención y el factor de réplica. Añada por separado los índices y los resultados temporales de reproducción. Este último paso evita que los equipos consideren que la factura del archivo representa el coste total de un backtest.
Calcule el coste de los niveles de almacenamiento, no solo de los bytes
El almacenamiento local NVMe rápido es útil para los conjuntos de datos activos de reproducción y los índices. El almacenamiento de objetos suele ser adecuado para el archivo principal porque permite escalar sin tener que gestionar una gran infraestructura de discos. Los niveles de archivo en frío pueden reducir el coste de conservación, pero el tiempo y las tarifas de recuperación los hacen poco adecuados para conjuntos de datos que los investigadores esperan abrir de inmediato.
Como referencia general para la planificación, los rangos habituales de mercado son aproximadamente US$80-250 por TB al mes para almacenamiento aprovisionado de alto rendimiento, US$15-30 para almacenamiento de objetos de acceso frecuente y US$1-5 para archivo en frío, antes de los cargos por recuperación y solicitudes. Las tarifas varían según la región, la redundancia, el rendimiento y el contrato. Tómelas como punto de partida y calcule después el coste del diseño concreto con el proveedor correspondiente.
Con 100 TB, esos rangos implican aproximadamente US$96,000-300,000 al año para almacenamiento de alto rendimiento, US$18,000-36,000 para almacenamiento de objetos de acceso frecuente o US$1,200-6,000 en cargos por archivo en frío, antes de la recuperación. Si los 100 TB corresponden a una sola copia, dos réplicas duplican el volumen almacenado. Si la reproducción requiere preparar 20 TB desde el archivo cada semana, los costes de recuperación y almacenamiento temporal pueden eliminar buena parte del ahorro aparente.
Separe el modelo de costes en estos componentes:
- Datos principales: eventos comprimidos, mensajes originales, datos de referencia y conjuntos de datos derivados.
- Protección: réplicas, instantáneas, retención de copias de seguridad y copias en distintas regiones.
- Acceso: recuperación, solicitudes, transferencia de red y espacio de preparación.
- Procesamiento: descompresión, validación, indexación y trabajadores de simulación.
Establezca la retención según el propósito. Un operador puede conservar una ventana corta de datos activos para las investigaciones diarias, un historial más largo en almacenamiento de objetos para la investigación y un conjunto más acotado de registros de compliance conforme a la política de retención de la firma.
No dé por sentado que debe aplicarse un mismo periodo de retención a todas las clases de eventos. Compruebe las licencias de datos de los centros de negociación y los requisitos regulatorios antes de reducir o trasladar registros.
La velocidad de reproducción depende del procesamiento y de la ruta de los datos
Un año de 250 sesiones de 6.5 horas por sesión contiene 1,625 horas de tiempo de mercado. A una velocidad de reproducción normal, procesarlo de forma secuencial lleva unas 68 días. A una velocidad de reproducción diez veces mayor, la duración teórica se reduce a unos 6.8 días.
A una velocidad cien veces mayor, son unas 16 horas. Estas cifras excluyen el inicio, la validación, las interrupciones, los festivos de mercado y el tiempo dedicado a escribir los resultados.
Una reproducción más rápida no depende únicamente del ancho de banda del almacenamiento. El cuello de botella puede estar en la descompresión, la decodificación de eventos, una estrategia de un solo hilo, los bloqueos, las escrituras en la base de datos o la necesidad del simulador de preservar el orden de los eventos.
Mida la ruta completa. Un lector de archivos que transmite a 500 MB/s no resulta útil si el procesador de eventos solo puede gestionar una fracción de la tasa de mensajes resultante.
Paralice el trabajo entre fechas, instrumentos o estrategias independientes cuando la lógica de la prueba lo permita. Evite dividir una estrategia con estado en puntos arbitrarios, salvo que cada trabajador pueda reconstruir el estado necesario desde un punto de control.
Para reproducir un incidente, suele ser más útil una ventana acotada en torno al evento que una ejecución de un año completo. En las pruebas de riesgo anual, los puntos de control diarios pueden reducir el tiempo de reinicio, pero valide que las ejecuciones con puntos de control y las continuas produzcan resultados equivalentes.
Registre cuatro mediciones para cada carga de reproducción: bytes comprimidos leídos por segundo, eventos decodificados por segundo, utilización de CPU por etapa y tiempo total de ejecución. Anote el conjunto de datos de prueba, la versión del software y el número de trabajadores. Así, los cambios en el rendimiento de reproducción se pueden comparar en lugar de quedar en meras impresiones. La cobertura de Trading Technology sobre infraestructura de trading ofrece un contexto más amplio sobre las decisiones de plataforma relacionadas con este trabajo.
Haga que el archivo sea operable
El almacenamiento solo es útil si los operadores pueden localizar, validar y restaurar los datos. Asigne a cada partición un manifiesto con su intervalo de fechas, centro de negociación, feed, versión del esquema, compresión, sumas de comprobación y cobertura de secuencias. Guarde el manifiesto por separado de los archivos que describe y supervise las particiones ausentes y los cambios de volumen inesperados.
Antes de establecer un nivel de servicio, pruebe una restauración real. La recuperación desde un nivel en frío puede tardar minutos u horas, mientras que diagnosticar un índice dañado o un esquema incompatible puede llevar más tiempo.
Defina objetivos separados para la investigación habitual y la respuesta a incidentes. Esta última puede justificar una copia de sesiones recientes en un nivel de almacenamiento intermedio, aunque el grueso del archivo permanezca en un almacenamiento de menor coste.
Utilice esta lista de verificación para la primera revisión de capacidad:
- Mida al menos cinco sesiones representativas, incluida una sesión de mucha actividad y otra volátil.
- Calcule el volumen anual comprimido por conjunto de datos y añada las réplicas, los índices y el espacio temporal de preparación.
- Compare el rendimiento de reproducción en la misma instancia y el mismo nivel de almacenamiento propuestos para producción.
- Realice una restauración y una reproducción integral a partir de datos archivados, no de una copia local de desarrollo.
- Configure alertas para las interrupciones de ingesta, los fallos de las sumas de comprobación, el vencimiento de la retención y el crecimiento del almacenamiento por encima de lo previsto.
Mantenga visible la trazabilidad de los datos originales y transformados. Si cambia un normalizador, registre qué particiones se reconstruyeron y qué pruebas utilizaron el resultado anterior. Así, los equipos de ingeniería y operaciones podrán distinguir entre cambios en el comportamiento del mercado y cambios en el flujo de datos cuando varíe un resultado.
Esta semana, mida una sesión de mucha actividad desde la ingesta hasta la reproducción y utilice sus bytes, la tasa de eventos y el tiempo de ejecución para crear el primer modelo anual de capacidad.
Preguntas frecuentes
¿Cuánto almacenamiento necesita un año de datos de ticks?
Depende de la cobertura de centros de negociación, la profundidad, el formato de los eventos y la compresión. Los rangos habituales de planificación pueden ir desde menos de 1 TB para un conjunto de datos L1 limitado hasta cientos de terabytes para un historial L2 amplio de 250 sesiones, antes de añadir réplicas e índices.
¿Cuánto se tarda en reproducir un año de datos de mercado?
Un año de 250 sesiones de 6.5 horas cada una equivale a 1,625 horas a velocidad de reproducción normal, o unas 68 días si se ejecuta de forma secuencial. Una velocidad diez veces mayor reduce el tiempo teórico a unos 6.8 días, pero las limitaciones de procesamiento y la lógica con estado pueden alargar las ejecuciones reales.
¿Es adecuado el almacenamiento de objetos para el historial de trading?
El almacenamiento de objetos de acceso frecuente puede ser adecuado para el archivo principal cuando las cargas de reproducción toleran su latencia y rendimiento. Mantenga los conjuntos de datos activos o las ventanas de respuesta a incidentes en un almacenamiento más rápido si prepararlos desde el archivo no permitiría cumplir los objetivos operativos.
¿Qué datos deben conservarse para una reproducción válida del mercado?
Conserve los flujos de eventos que necesite la prueba, además de las marcas de tiempo, la información de secuencia, los datos de referencia pertinentes y la versión de normalización. Las investigaciones de ejecuciones también pueden necesitar acuses de recibo de órdenes, ejecuciones, rechazos y datos de entrada de las decisiones internas.
¿Cómo puede un equipo calcular el coste del almacenamiento de datos históricos?
Mida sesiones representativas, calcule el volumen anual comprimido y multiplíquelo por los años de retención y el número de réplicas. Añada por separado los índices, las instantáneas, la recuperación, el espacio de preparación, la transferencia de red y el procesamiento de reproducción.
Plataformas · Software · Proveedores · Mercados