Saltearse al contenido

Consultar un archivo subido mediante DuckDB

El nivel Starter de Saiku Cloud admite una ruta de datos de subida de archivos. Sube un parquet o CSV; Saiku lo almacena en R2; el motor lo consulta mediante DuckDB en proceso. Sin necesidad de data warehouse del cliente; sin firewall que configurar.

Esta es la ruta más simple del estilo “quiero ver a Saiku consultar algo” para evaluadores y cargas de trabajo pequeñas.

Impacto en niveles: [Starter] — la subida de archivos es la ruta de datos del nivel Starter. Los clientes [Team] + [Business] normalmente tienen su propio data warehouse y por eso van a uno de los otros documentos de conexión, aunque la subida de archivos funciona en todos los niveles.

Driver: Saiku Cloud incluye el driver JDBC oficial de DuckDB. Los archivos se consultan en proceso — sin viaje de red en la ruta de datos.

Lo que necesitará

  • Un archivo parquet, CSV o JSON ≤ 5 GB.
  • Una idea de qué columnas son dimensiones y cuáles son medidas (las inferimos automáticamente si lo permite).

Paso 1 — Suba el archivo

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

  2. Vaya a Archivos en la barra lateral izquierda.

  3. Arrastre y suelte su archivo en el área de subida, o haga clic en Subir archivo y elíjalo del sistema de archivos.

Mientras avanza la subida, Saiku Cloud:

  1. Transmite el archivo a nuestro bucket R2 (un almacén compatible con S3).
  2. Inicia una sesión DuckDB en proceso contra el archivo.
  3. Ejecuta DESCRIBE para leer los tipos de columna.
  4. Devuelve el schema al dashboard para revisión.

Para parquet y JSON, la inferencia de schema es exacta (el formato del archivo lleva tipos de columna). Para CSV olfateamos las primeras 10 000 filas y adivinamos — normalmente correcto, pero puede sobrescribir tipos en el siguiente paso si algo sale mal.

Paso 2 — Revise el schema propuesto

Tras la subida, Saiku le lleva a una pantalla de revisión del schema. Las columnas se listan con tipos inferidos:

  • INTEGER / BIGINT / DOUBLE → numérico. Propuesta por defecto: una medida Sum.
  • VARCHAR / TEXT → categórico. Propuesta por defecto: una dimensión.
  • TIMESTAMP / DATE → temporal. Propuesta por defecto: una dimensión con jerarquía temporal con niveles year/month/day.

Puede:

  • Eliminar columnas que no necesita (acorta el tiempo de carga del cubo).
  • Cambiar una columna numérica de Sum a Avg / Count / Min / Max.
  • Promocionar una columna de cadena a una jerarquía de dimensión si tiene niveles naturales (region → country → city).
  • Añadir una medida calculada (expresión MDX de Mondrian — para usuarios avanzados).

O aceptar los valores por defecto y hacer clic en Proponer schema. La mayoría de los evaluadores casuales hacen exactamente esto.

Paso 3 — Abra el cubo

Tras guardar, Saiku le lleva a Analizar. Su archivo subido es ahora un cubo consultable. Arrastre dimensiones a filas/columnas, arrastre medidas a valores, vea el resultado.

Refrescar los datos

Volver a subir el mismo archivo (mismo nombre) lo reemplaza. Saiku vuelve a ejecutar la inferencia de schema + marca cualquier cambio de tipo de columna. Si el nuevo archivo tiene columnas que no coinciden con el schema existente (renombró una columna, añadió una nueva), se le pedirá que elija entre:

  • Re-proponer — generar un schema nuevo. Pierde cualquier ajuste por columna que haya hecho.
  • Conservar + conciliar — conserva sus ajustes; elimina referencias a columnas que ya no existen.

Trampas del formato de archivo

CSV: inferencia de tipos

CSV no lleva tipos de columna. Saiku Cloud olfatea las primeras 10 000 filas y adivina. Sorpresas comunes:

  • Una columna que es mayoritariamente enteros pero tiene algún "NA" o "-" ocasional se infiere como VARCHAR. O limpie los datos de origen, o sobrescriba la columna a INTEGER (Saiku tratará los valores no numéricos como NULL).
  • Las fechas en formato no ISO (12/31/2025 en lugar de 2025-12-31) se infieren como VARCHAR. Es más limpio convertir a ISO en su pipeline de origen; Saiku no autodetecta formatos de fecha locales.

Parquet: prefiera este formato

Parquet lleva tipos de columna + estadísticas de forma nativa. La inferencia de schema es exacta, el tamaño de archivo es típicamente 1/4 del equivalente CSV, y DuckDB puede omitir grupos de filas enteros al filtrar. Use parquet si tiene opción.

JSON: campos anidados

Se admite JSON por líneas (un objeto por línea). Las estructuras profundamente anidadas (objetos dentro de arrays dentro de objetos) se aplanan a nombres de columna con puntos — customer.address.city se convierte en una columna customer.address.city. Si su anidamiento es muy profundo, el recuento de columnas se dispara; aplanar en su pipeline de origen si tiene uno.

Tamaño + retención

Lo que NO obtiene con este flujo

  • Joins multi-archivo — cada subida es su propio cubo. Para unir dos archivos, hágalo en su pipeline de origen antes de subir, o use la biblioteca de cubos + un schema Mondrian multi-archivo (avanzado).
  • Datos en vivo — las subidas son instantáneas en un punto en el tiempo. Para datos en vivo, conecte un data warehouse mediante los flujos BYOC en su lugar.
  • Particionamiento personalizado — DuckDB consulta el archivo entero. Los cubos de más de 1 GB se sienten lentos en la primera consulta (las consultas siguientes se cachean). Para cargas más grandes, considere MotherDuck en su lugar — consulte Conectar MotherDuck.

Pruebe con FoodMart

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

Dataset de muestra FoodMart para DuckDB