Data Team MICJupyterHub es el servidor multi-usuario de notebooks Jupyter para equipos de datos. Proporciona un entorno compartido donde analistas y científicos de datos acceden a instancias personales de Jupyter, conectadas a Trino, Ceph/S3 y repositorios de datos.
Abrir en el navegador
<tu-url>
Ingresar con tus credenciales de usuario (LDAP/Okta)
Seleccionar el kernel y perfil de recursos:
Una vez autenticado, JupyterHub inicia una instancia Jupyter personalizada bajo demanda.
Dentro de una celda:
import jupyterhub
print(jupyterhub.__version__)
# Verificar usuario actual
import os
print(os.getenv('JUPYTERHUB_USER'))
from trino.dbapi import connect
conn = connect(
host='<tu-url>',
port=<puerto>,
user='<tu_usuario>',
catalog='hive', # o 'minio', según tu source
schema='analytics',
)
cursor = conn.cursor()
import pandas as pd
query = """
SELECT
date_trunc('month', fecha) AS mes,
COUNT(*) AS transacciones,
SUM(monto) AS total
FROM analytics.transacciones
WHERE fecha >= DATE '2026-01-01'
GROUP BY 1
ORDER BY 1 DESC
"""
df = pd.read_sql(query, conn)
print(df)
%load_ext trino.ipython
%trino hive.analytics.transacciones --limit 10
from minio import Minio
client = Minio(
"<tu-url>",
access_key="<TU_ACCESS_KEY>",
secret_key="<TU_SECRET_KEY>",
secure=True,
)
import pandas as pd
import s3fs
fs = s3fs.S3FileSystem(
endpoint_url='<tu-url>',
key='<TU_ACCESS_KEY>',
secret='<TU_SECRET_KEY>',
)
# Leer un único archivo
df = pd.read_parquet(
's3://data-analytics/ventas/2026/03/kpi_mensual.parquet',
filesystem=fs
)
# Leer múltiples archivos (particionados)
df = pd.read_parquet(
's3://data-analytics/ventas/2026/',
filesystem=fs
)
df = pd.read_csv(
's3://data-raw/comercial/clientes/2026/03/clientes.csv',
storage_options={
'key': '<TU_ACCESS_KEY>',
'secret': '<TU_SECRET_KEY>',
'client_kwargs': {'endpoint_url': '<tu-url>'},
}
)
| Kernel | Stack | Cuándo usar |
|---|---|---|
| Python 3.11 | pandas, scipy, matplotlib, requests | Análisis general, EDA |
| PySpark | spark 3.2, hadoop | Procesamiento big data (>5GB) |
| Data Science | scikit-learn, tensorflow, xgboost | ML, modelos, predicción |
| R | R 4.0, ggplot2, dplyr | Análisis estadístico (si está disponible) |
Cambiar kernel: Menú "Kernel" → "Change Kernel" → seleccionar
En una celda, instalar temporalmente (solo en tu instancia):
%pip install pyspark-stubs dbt-core polars
Para paquetes permanentes, contactar a Data Engineering
1. Importes (datos, librerías)
2. Conectarse a Ceph / Trino
3. Exploración (EDA, shape, dtypes, nulls)
4. Transformaciones
5. Visualizaciones
6. Resultados y exportación
{tu_usuario}_{proyecto}_{fecha}.ipynbjrodriguez_kpi_pipeline_2026-03-14.ipynb/home/<tu_usuario>/notebooks/Guardar a Ceph para que otros puedan acceder:
notebook_file = 'analisis_ventas.ipynb'
s3.upload_file(
Filename=notebook_file,
Bucket='data-analytics',
Key=f'shared/notebooks/{notebook_file}',
ExtraArgs={'Metadata': {'owner': os.getenv('JUPYTERHUB_USER')}}
)
Otros acceden descargando:
s3.download_file(
Bucket='data-analytics',
Key=f'shared/notebooks/{notebook_file}',
Filename=notebook_file
)
# Verificar credenciales y host
import socket
socket.gethostbyname('<tu-url>') # Debe resolver IP
/tmp/.parquet() con columns= para leer columnas selectivasdask para procesamiento fuera-de-memoria:import dask.dataframe as dd
df = dd.read_parquet(
's3://data-analytics/dataset/',
storage_options={...}
).compute()