16 votos

R: ¿qué tan factible es para la tienda, y el trabajo con -- garrapata de datos en una base de datos conectada a R?

Yo estoy buscando para convertir algunos tickdata .los archivos csv en una base de datos en un disco local y, a continuación, utilizar R para llamar a los datos y hacer mis analíticas y de modelización.

¿Cuáles son algunas de las mejores prácticas / técnicas de implementación que podrían ser recomendados para minimizar cualquier dolor de cabeza?

Señaló que los paquetes tales como mmap de gran ayuda, pero le gustaría probar y encontrar de una manera más permanente en la solución.

Cual es la mejor db para jugar? MySQL parece ser subóptima como es relacional (en lugar de la columna-orientado). p/KDB parecen tener una versión de prueba a jugar con el, pero tiene una curva de aprendizaje muy elevada. Cual es la mejor base de datos para manejar y servir de garrapatas de las solicitudes?

Cualquier ayuda la agradezco mucho. Plataforma agnóstica, pero supongo que Linux es mi plataforma preferida.

14voto

Johnny Edge Puntos 411

Hay muchos productos especializados para HF garrapata de datos. Además KDB que se han mencionado, hay OneTick, Vertica, Infobright, y algunos de código abierto, como MonetDB etc. (ver http://en.wikipedia.org/wiki/Column-oriented_DBMS).

Mi experiencia es que en la Columna de Bases de datos Orientadas están sobrevalorados cuando se trata de la garrapata de datos, porque muy a menudo se solicita a toda la garrapata o de la barra de registro (en lugar de sólo una columna de un registro - es decir, lo Orientada a Columnas DBs están optimizadas para). En mi experiencia, la clave de la velocidad es mucho más que el uso de un índice agrupado para su base de datos, definiendo así el orden en el que los datos se almacenan en el disco duro. Si usted principalmente consulta la unicc de un determinado instrumento (en oposición a los precios más recientes de un grupo de instrumentos), entonces usted quiere clúster (Instrumento, TickTimestamp), para hacer consultas muy rápido incluso para grandes tamaños de la tabla.

Luego también está la escuela de pensamiento que se juega todo con nuevas alternativas fuera de la NoSQL esquina, tales como BigTable, MongoDB, etc. Es una zona interesante, pero mi personal creo es que están hechas principalmente para aumentar la flexibilidad de datamodels, que no es nuestro requisito básico. Usted puede hacer el trabajo, y que van a trabajar muy rápido, pero este tiene un costo de más arcaico de la herramienta de apoyo, más empinadas curvas de aprendizaje, etc.

He estado usando muchas diferentes bases de datos (Oracle, MySQL, SQLServer, MongoDB, MonetDB) a través de los años, y mi conclusión es que la mayoría de ellos funcionan bastante decente para almacenar financiera unicc de datos si los entiende y diseño de los mismos. Actualmente, estoy usando principalmente SQLServer, que es algo más rápido que MySQL, gratis para los conjuntos de datos más pequeños, y hace la mayoría de las cosas que quiero. El apoyo a la I (y Matlab y muchos otros ambientes) es muy decente a través de ODBC paquete de R.

6voto

Shuft Puntos 420

El uso de MySQL, los datos financieros no es irrazonable. Pero para garrapata datos son que usted nunca va a hacer nada, excepto una consulta en un rango de fechas? Para el análisis de la garrapata de datos en R lo general me la guarde en un archivo de disco, una garrapata archivo por día, y la carga de los archivos, ya que los necesitan. El uso de .RData archivos en lugar de los archivos csv es más rápido.

También he utilizado personalizado de clases de C++ antes, para conseguir realmente rápido, pero si los datos a ser analizados en R, no hay mucho punto.

1voto

Matthew Maravillas Puntos 2469

He tenido éxito en el uso de MySQL para almacenar OHLCV, las Opciones de datos y metadatos, tales como los ingresos de las fechas en MySQL y acceso tanto para las lecturas y escrituras de R.

Para mí, esto funciona muy bien y es eficiente para datos diarios, si usted está haciendo HFT puede que desee considerar la posibilidad de un especializado tickdb, pero a diario escalas (252 devuelve por año por ticker - MySQL es bastante rápido). También, es mucho mejor que la de los archivos planos porque vas a encontrar en algún momento que usted desee emitir consultas relacionales para encontrar las series de tiempo que coinciden con ciertos agregados patrones.

Ejemplos que me suelen hacer es UNIRSE a OHLC de datos con las Opciones de datos para una determinada clave de pizarra y de mezcla por fecha, seguro R XTS::mezcla puede ayudar aquí también, pero es más eficiente para la emisión de consultas SQL direcltly y el uso de R dataframes/XTS para "ajuste fino" una vez que se estrecha hacia abajo de Gigas de datos (que R no es gran a) a un par de MB.

Si hay interés, podría considerar la posibilidad de compartir mi .R módulos para interactuar con MySQL para ambos diaria de la descarga y el almacenamiento de datos (por ejemplo de Yahoo para OHLC, por supuesto), así como de la consulta.

Mi consejo es que no diseños demasiado sofisticados - y si usted no necesita el perf especializado garrapata DB, y para el diario de escalas no creo que hacer - ir con lo comprobado y sencillo. MySQL funciona.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X