(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

DP-700: dominar particiones y ordenación en tablas de Fabric

João Barros 02 de August de 2026 4 min de lectura

Voy a enseñar cómo planificar e implementar particiones y ordenación en tablas de Microsoft Fabric (OneLake/Delta tables) — una competencia útil para el DP-700 y crítica en la práctica para el rendimiento de consulta y la eficiencia de almacenamiento.

Qué necesitas saber

Particionar una tabla significa dividir los datos en segmentos lógicos (por ejemplo, por fecha, región) para que las operaciones de lectura y mantenimiento procesen solo un subconjunto de los datos. Ordenar (sort order) organiza los archivos/filas dentro de las particiones según columnas clave, lo que acelera operaciones de join, escaneos por rango (range scans) y la compresión. En Fabric, esto se aplica a tablas en formato Delta dentro de OneLake e influye tanto en el tiempo de consulta en Power BI/SQL como en el coste de procesamiento.

Ejemplo simple: tienes una tabla de transacciones con millones de filas. Si las particiones son por year y month, las queries históricas que consulten solo un mes evitan digitalizar todo el historial. Si dentro de cada partición los datos están ordenados por customer_id, un join por cliente será mucho más eficiente.

Cómo funciona

Conceptos clave:

  • Columna de partición: elegida para segmentar los datos; idealmente de baja cardinalidad por partición y que corresponda a patrones de consulta (ej.: date, region).
  • Granularidad: por año/mes/día; mayor granularidad significa más archivos/particiones y overhead de metadatos.
  • Ordenación (sort): columnas usadas para ordenar archivos dentro de la partición; mejora lecturas secuenciales y compresión.
  • File pruning: mecanismo que evita leer archivos irrelevantes cuando existe partición/metadata adecuada.
  • Compaction/OPTIMIZE: operación para combinar muchos archivos pequeños en archivos más grandes, manteniendo ordenación y reduciendo costes de lectura.

En la práctica

Pasos prácticos para implementar particiones y ordenación en una tabla Delta en Fabric (ejemplo genérico de SQL/Notebook):

  1. Elige columnas para partición y ordenación.

    Regla práctica: particiona por columna usada frecuentemente en filtros (ej.: event_date), ordena por columna usada en joins/ordenaciones (ej.: user_id).

  2. Crea la tabla con partición y ordenación (ejemplo en T-SQL/Delta DDL):

    CREATE TABLE sales_delta (
      sale_id BIGINT,
      event_date DATE,
      customer_id BIGINT,
      amount DECIMAL(10,2)
    )
    USING DELTA
    PARTITIONED BY (YEAR(event_date), MONTH(event_date))
    -- Opcional: propiedades para sort/optimize (varía según engine)
    

    Nota: la sintaxis exacta de PARTITIONED BY y las opciones de ordenación pueden variar según el entorno (notebook Spark, SQL endpoint). En Fabric, muchas veces usas comandos en notebooks Spark o las opciones del Data Factory/ingestión.

  3. Ingesta: escribe datos manteniendo la partición. Ejemplo Spark:

    df.write
      .format("delta")
      .mode("append")
      .partitionBy("year","month")
      .save("/onedrive/OneLake/.../sales_delta")
    
  4. Optimización: combina archivos y aplica ordenación (ejemplo genérico):

    -- En Spark/Delta
    OPTIMIZE delta.`/onedrive/OneLake/.../sales_delta`
    WHERE year = 2026 AND month = 06
    ZORDER BY (customer_id)
    

    El comando OPTIMIZE (o equivalente) va a compactar archivos en la partición específica y aplicar orden físico (ZORDER es una técnica común para mejorar la localidad de los datos en varias columnas).

  5. Valida: prueba queries con y sin filtro por partición para confirmar la reducción de scan de archivos (ver estadísticas del plan de ejecución o uso de métricas).

Errores comunes

  • Elegir columnas de alta cardinalidad para particionar (por ejemplo, transaction_id) — crea demasiadas particiones pequeñas, aumentando el overhead.
  • Exceso de particiones (granularidad demasiado fina) — causa muchos archivos pequeños y empeora el rendimiento debido a metadatos y falta de pruning eficaz.
  • No ejecutar compaction/OPTIMIZE regularmente tras ingestas en streaming o micro-batches — lleva a muchos archivos pequeños y penaliza las lecturas.

Cómo practicar

Practica estas tareas en un entorno de pruebas en Fabric/OneLake: crea una tabla Delta, importa datos reales (o generados) y experimenta con diferentes estrategias de partición y ordenación, midiendo el impacto en las queries. Para la preparación del examen DP-700, utiliza el Practice Assessment OFICIAL gratuito de Microsoft para evaluar tus conocimientos y consulta la guía de estudio oficial (ambos gratuitos). Estas fuentes ayudan a alinear la práctica con las competencias medidas sin usar material protegido.

En resumen

  • Particionar reduce el volumen de datos leídos al filtrar por valores de partición; elige columnas que correspondan a patrones de consulta.
  • La ordenación dentro de particiones (ZORDER/ORDER) mejora joins y escaneos por rango y favorece la compresión.
  • Evita particiones demasiado finas y columnas de alta cardinalidad como claves de partición.
  • Realiza compaction/OPTIMIZE tras ingestas para reducir archivos pequeños y mejorar el rendimiento.