PolymarketClickHouse Workshops

00 Configuración

Prepara macOS o WSL 2, crea el servicio de ClickHouse Cloud y carga un único archivo de entorno.

Tu equipo
Terminal de macOS: Ejecuta los comandos del taller en Terminal con zsh o bash.

Elige macOS o Windows en el encabezado. En Windows, los comandos se ejecutan en Ubuntu sobre WSL 2, no en PowerShell, salvo que la página indique explícitamente lo contrario.

Resultado

Tendrás Docker, Git, Python, clickhousectl, el cliente ClickHouse, un servicio Cloud y un .env.polymarket cargado. El preflight imprimirá READY.

Paso 1 — Verificar el portátil

Instala Docker Desktop para Mac. Ejecuta en Terminal:

docker version
docker compose version
git --version
python3 --version

Paso 2 — Clonar el repositorio del taller

git clone https://github.com/ClickHouse/ClickHouse_Demos.git
cd ClickHouse_Demos
git switch build-workshop-v1
cd "$(git rev-parse --show-toplevel)/workshop_public/polymarket"
cp .env.polymarket.example .env.polymarket

El cambio de rama es obligatorio: build-workshop-v1 es la instantánea completa del taller en producción.

Ejecuta los siguientes comandos desde ClickHouse_Demos/workshop_public/polymarket.

Paso 3 — Instalar clickhousectl y el cliente ClickHouse

curl https://clickhouse.com/cli | sh
export PATH="$HOME/.local/bin:$PATH"
clickhousectl --version
clickhousectl local use stable
clickhouse client --version

local use instala únicamente el binario cliente. No inicia un servidor de base de datos; todas las consultas apuntan a ClickHouse Cloud.

Paso 4 — Autenticarse y crear el servicio Cloud

Formación presencial: utiliza la clave de API de la organización específica del participante, proporcionada de forma segura por el instructor.

El inicio de sesión interactivo mantiene el secreto fuera del historial del shell:

clickhousectl cloud auth login --interactive
clickhousectl cloud auth status
clickhousectl cloud org list

La automatización de confianza puede usar la forma explícita:

clickhousectl cloud auth login --api-key <key> --api-secret <secret>

Crea un servicio. Cambia la región solo si el instructor especifica otra:

clickhousectl cloud service create \
  --name polymarket-workshop \
  --provider aws \
  --region ap-southeast-1 \
  --min-replica-memory-gb 8 \
  --max-replica-memory-gb 8 \
  --num-replicas 1 \
  --idle-scaling true \
  --idle-timeout-minutes 15

Guarda el identificador del servicio y la contraseña de un solo uso del usuario default. Espera a que esté listo:

clickhousectl cloud service list
clickhousectl cloud service get <service-id>

Paso 5 — Rellenar y cargar .env.polymarket

Abre el diálogo Connect del servicio. Introduce el hostname sin adornos y la contraseña en .env.polymarket; no incluyas https:// ni :8443 en el host.

${EDITOR:-vi} .env.polymarket
set -a; source ./.env.polymarket; set +a

Confirma que el shell cargó los valores no secretos:

printf 'host=%s database=%s mode=%s\n' \
  "$CLICKHOUSE_HOST" "$CLICKHOUSE_DATABASE" "$POLYMARKET_MODE"

Resultado esperado: el hostname de Cloud, polymarket y live.

Paso 6 — Ejecutar el preflight

chmod +x ./preflight.sh
./preflight.sh

Resultado esperado:

READY: Docker, ClickHouse Cloud, Gamma, Data API, and CLOB REST are reachable

En modo fixture, si la red bloquea Polymarket, la última línea será:

READY: Docker and ClickHouse Cloud are reachable; fixture mode will supply data

Si solo falla la comprobación de la API de Polymarket, utiliza la alternativa fixture indicada en Resolución de problemas.

Terminado cuando

  • clickhouse client --version se ejecute correctamente;
  • clickhousectl cloud service get <service-id> indique que el servicio está listo;
  • printf muestre el host, la base y el modo esperados; y
  • ./preflight.sh imprima READY.

Siguiente: descubrir los mercados que vas a observar.

En esta página

¿Quieres seguir tu progreso?

Opcional. Enviaremos un enlace por correo para confirmar tu dirección; el progreso se registrará cuando lo abras.

Usa tu correo de trabajo, no uno personal.

Para seguir el progreso también debes aceptar los Términos del servicio actuales en la Configuración de privacidad.

ES