Ir al contenido

Cache

Lens puede cachear archivos Parquet remotos localmente para que puedas trabajar offline y evitar cargos repetidos de egress en la nube.

Ventana de terminal
dataspoc-lens cache orders
Caching 'orders'...
Cached 'orders': 4 file(s), 12.3 MB

Esto descarga todos los archivos Parquet de la tabla orders a tu directorio de cache local.

Ventana de terminal
dataspoc-lens cache --list
┌──────────────┬─────────────────────┬──────────┬────────┐
│ Table │ Cached At │ Size │ Status │
├──────────────┼─────────────────────┼──────────┼────────┤
│ orders │ 2026-04-15 10:30:00 │ 12.3 MB │ fresh │
│ customers │ 2026-04-14 08:00:00 │ 2.1 MB │ stale │
└──────────────┴─────────────────────┴──────────┴────────┘

Para salida JSON:

Ventana de terminal
dataspoc-lens cache --list --output json
Ventana de terminal
dataspoc-lens cache orders --refresh

Descarga los datos mas recientes aunque ya exista una copia local.

Ventana de terminal
# Clear a specific table
dataspoc-lens cache orders --clear
# Clear all cached data
dataspoc-lens cache --clear

Lens determina la frescura del cache comparando dos marcas de tiempo:

  1. cached_at — cuando se creo el cache local
  2. last_extraction — la marca de tiempo de la ultima extraccion del manifiesto de Pipe

Si Pipe ejecuto una extraccion despues de que se creo el cache, el cache se marca como stale. De lo contrario es fresh.

CondicionEstadoComportamiento
cached_at > last_extractionfreshLas consultas usan el cache local
cached_at < last_extractionstaleLas consultas aun usan el cache, pero se muestra una advertencia
No existe cacheLas consultas leen directamente del bucket remoto

Cuando ejecutas consultas (via query, shell, ask o notebooks), Lens usa automaticamente el cache local para tablas que tienen una copia cacheada fresca. No se necesita configuracion — mount_views() detecta el cache y cambia la vista DuckDB para leer desde la ruta local en lugar del bucket remoto.

Los archivos cacheados se almacenan en ~/.dataspoc-lens/cache/:

~/.dataspoc-lens/
cache/
orders/
part-0001.parquet
part-0002.parquet
part-0003.parquet
part-0004.parquet
customers/
part-0001.parquet
cache_meta.json # Metadata: cached_at, size, freshness per table
Ventana de terminal
# 1. Cache the tables you need while online
dataspoc-lens cache orders
dataspoc-lens cache customers
dataspoc-lens cache products
# 2. Verify cache
dataspoc-lens cache --list
# 3. Go offline and query normally
dataspoc-lens query "SELECT * FROM orders JOIN customers USING (customer_id)"
dataspoc-lens shell
dataspoc-lens ask "Top customers by revenue"

Todas las consultas leeran del cache local de forma transparente.