SYS-02LibreríaPython
Datalake
Datos de mercado en un datalake NoSQL sobre S3, con ArcticDB. DataFrames de pandas a la entrada y a la salida.
- Versión
- 5.1
- Estrellas
- 1
- Lenguaje
- Python
Qué es
QUANTARMY Datalake (versión 5.1) es el código para crear y gestionar un datalake de datos de mercado basado en ArcticDB y en varias fuentes de datos.
El problema que resuelve es la dispersión. Precios, fundamentales, macro y datos alternativos acaban en sitios y formatos distintos. El datalake los centraliza en un único punto NoSQL y los sirve en el formato habitual del researcher: DataFrames de pandas.
El almacenamiento es un bucket S3. No hay servidor de base de datos: el propio cliente de Python lanza las consultas contra el S3. ArcticDB, de Man Group, versiona cada símbolo: una escritura nueva no borra la versión anterior.
Qué incluye
El repositorio es pequeño. El paquete qadatalake tiene tres archivos:
cli.py: CLI de gestión por menú (versiónV.5.1.0-predator) con tres opciones: listar los símbolos de todas las bibliotecas del datalake, lanzar la rutina macro de Alpha Vantage y salir.tasks/routine.py: conexión a ArcticDB sobre S3 y listado de bibliotecas y símbolos.data/alphavantage.py: descarga las series de desempleo e inflación de EE. UU. de Alpha Vantage y las guarda en la bibliotecaalphavantage(UNEMPLOYMENT.MACRO.USeINFLATION.MACRO.US). Actualiza como mucho cada 15 días.
La conexión lee cuatro variables de un .env: ENDPOINT, DB, ACCESS_KEY y SECRET_KEY. Son las mismas que usa
Quantstack.
La ingesta de precios no está en el repositorio. La serie Big Data Management la construye paso a paso: conexión a ArcticDB, gestión de bibliotecas, un calendario macroeconómico y un datalake del Nasdaq con precios, dividendos, splits y metadatos de EODHD.
Instalación y primer uso
El README no documenta la instalación y el repositorio no trae setup.py ni requirements.txt. Las dependencias son
las que importa el código: arcticdb, pandas, requests y python-dotenv.
git clone https://github.com/quantarmyz/datalake
cd datalake/qadatalake
pip install arcticdb pandas requests python-dotenvLa CLI busca el .env en la carpeta desde la que se lanza:
ENDPOINT=tu-endpoint.com
DB=tu-bucket
ACCESS_KEY=tu-access-key
SECRET_KEY=tu-secret-keypython cli.pyDesde un notebook, la conexión es la misma que usa el código del repositorio:
from os import getenv
from dotenv import load_dotenv
from arcticdb import Arctic
load_dotenv('.env')
ac = Arctic(f"s3s://{getenv('ENDPOINT')}:{getenv('DB')}?access={getenv('ACCESS_KEY')}&secret={getenv('SECRET_KEY')}")
ac.list_libraries()Cómo encaja
El Datalake es la primera pieza de la cadena del laboratorio: guarda los datos. Quantstack los lee con su conector
qa_datalake.py, que consulta ArcticDB con las mismas cuatro variables de entorno y carga precios, dividendos y splits
en un bundle de Zipline. La cuarta parte de la serie Big Data Management explica ese paso. Los resultados del backtest
acaban en el informe de QAStats.