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ón V.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 biblioteca alphavantage (UNEMPLOYMENT.MACRO.US e INFLATION.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-dotenv

La CLI busca el .env en la carpeta desde la que se lanza:

IN [01]qadatalake/.envdotenv
ENDPOINT=tu-endpoint.com
DB=tu-bucket
ACCESS_KEY=tu-access-key
SECRET_KEY=tu-secret-key
python cli.py

Desde un notebook, la conexión es la misma que usa el código del repositorio:

IN [02]python
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.

Fig. — Datos, backtest e informe: Datalake → Quantstack (Zipline) → QAStats

Otros sistemas