Saltearse al contenido

Conectar MotherDuck

Esta guía le acompaña al conectar una base de datos MotherDuck (DuckDB en la nube) a Saiku Cloud. Tres minutos una vez que tenga una cuenta de MotherDuck; el onboarding de data warehouse en la nube más simple que soportamos porque no hay firewall que configurar.

Impacto en niveles: todos los niveles de Saiku Cloud admiten BYOC con MotherDuck.

Driver: Saiku Cloud incluye el driver JDBC oficial de DuckDB. El prefijo de URL jdbc:duckdb:md:... se enruta al servicio en la nube de MotherDuck; el mismo driver también sirve archivos DuckDB locales.

Lo que necesitará

  • Una cuenta de MotherDuck (el nivel gratuito está bien — 10 GB de almacenamiento, suficiente para cubos del tamaño de FoodMart).
  • Un token de servicio de MotherDuck.
  • El nombre de la base de datos que quiere que Saiku lea.

Paso 1 — Obtenga un token de servicio

MotherDuck se autentica mediante un único token de larga duración. No necesita configurar firewalls ni listas de IPs permitidas — MotherDuck gestiona la accesibilidad de red de forma transparente.

  1. Inicie sesión en https://app.motherduck.com/.

  2. Haga clic en su perfil → SettingsService tokens (o el equivalente en la UI actual de la consola — MotherDuck retoca la navegación ocasionalmente).

  3. Create token → asígnele un nombre como saiku-cloud → copie la cadena resultante eyJh... inmediatamente. MotherDuck solo muestra el token una vez.

  4. Guárdelo en su gestor de contraseñas (1Password, Bitwarden) bajo una etiqueta como saiku-motherduck-token.

Paso 2 — Identifique el nombre de la base de datos

MotherDuck muestra sus bases de datos en la barra lateral izquierda de la app. Para trabajo de demo estilo FoodMart el nombre por defecto suele ser my_db; para cubos de producción tendrá su propio nombre como analytics o sales.

Paso 3 — Construya la URL JDBC

La forma:

jdbc:duckdb:md:<database>?motherduck_token=<token>

Concreto:

jdbc:duckdb:md:analytics?motherduck_token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ5b3UifQ.signature-here

Cosas a destacar:

  • El token vive en la URL, no en el campo de contraseña del asistente. Los campos de usuario + contraseña en el asistente son ignorados por el driver de MotherDuck — rellénelos con cualquier cosa (la validación de atributos requeridos del asistente necesita algo, pero el valor nunca llega a MotherDuck).
  • Sin puerto; sin host. MotherDuck gestiona el enrutado.
  • Sin parámetro SSL — el driver cifra TLS toda la sesión por defecto.

Paso 4 — Conecte mediante el asistente de Saiku Cloud

  1. Inicie sesión en https://cloud.saiku.bi/.

  2. Vaya a Conexiones en la barra lateral izquierda.

  3. En 1. Elegir tipo de data warehouse, haga clic en el tile MotherDuck.

  4. Rellene:

    • URL JDBC — la URL del Paso 3.
    • Username — cualquier cosa (por ejemplo, motherduck). Ignorado por el driver.
    • Password — cualquier cosa no vacía (por ejemplo, unused-token-in-url). También ignorado.
  5. Haga clic en Probar conexión.

Espere un banner verde de resultado: ✓ Connection successful más la versión de DuckDB detectada.

Paso 5 — Guarde la conexión

Misma forma que cualquier otro dialecto — vuelva a introducir el campo de contraseña, asígnele una etiqueta, guarde.

Solución de problemas

✗ Connection failed (AUTH_FAILED)

El token en la URL es incorrecto, ha expirado o ha sido revocado.

  • Genere un token nuevo en la consola de MotherDuck.
  • Asegúrese de haber copiado el token entero — son largos (300+ caracteres) y fáciles de truncar.
  • Vuelva a comprobar la URL: NO debe haber espacios en blanco alrededor de motherduck_token=.

✗ Connection failed (HOST_UNREACHABLE) o (TIMEOUT)

El endpoint en la nube de MotherDuck debería ser accesible desde cualquier sitio con internet. Si ve esto, MotherDuck en sí está probablemente caído — compruebe su página de estado.

✗ Connection failed (INVALID_URL)

La URL no empieza con jdbc:duckdb:md:. Note el segmento md: — eso es lo que dice al driver que enrute a MotherDuck en lugar de a un archivo local. Sin él, el driver intenta abrir un archivo literal llamado <database> en el directorio de trabajo del motor.

La conexión tiene éxito pero la lista de cubos está vacía

El token es válido + la base de datos existe, pero la base de datos no tiene tablas. O:

  • Conectó a una base de datos nueva vacía — cargue algunos datos mediante la UI SQL de la consola de MotherDuck primero.
  • La base de datos tiene tablas pero están en un schema no por defecto — confírmelo en la consola y ajuste el XML de su schema.

Archivos locales para flujos autoalojados o de exportación-importación {#local-files-for-self-hosted-or-export-import-workflows}

El driver de DuckDB también sirve archivos locales (jdbc:duckdb:/path/to/file.duckdb). En Saiku Cloud alojado en la nube, esa ruta se resuelve en el sistema de archivos del contenedor del motor, no en el suyo — así que la ruta de datos de subida de archivos es la forma estándar de meter un archivo local en Saiku. Consulte Conectar un archivo subido mediante DuckDB para ese flujo.

Para despliegues de Saiku Cloud autoalojados donde el operador puede colocar archivos directamente en el host del motor, pegue jdbc:duckdb:/var/lib/saiku/your.duckdb en el asistente y conecte normalmente.

Pruebe con FoodMart

¿Quiere probar Saiku Cloud con este dialecto antes de conectar sus propios datos? Descargue el dataset de muestra FoodMart empaquetado para MotherDuck:

Dataset de muestra FoodMart para MotherDuck