Limitaciones actuales del grafo en Microsoft Fabric

Graph en Microsoft Fabric tiene ciertas limitaciones funcionales. En este artículo se resaltan algunas limitaciones clave, pero no se trata de una lista exhaustiva. Vuelva a comprobar periódicamente si hay actualizaciones.

Para obtener ayuda con problemas comunes, consulte Gráfico de solución de problemas.

Creación de modelos de grafos

Orígenes de datos

OneLake y Mirrored Databases son las fuentes de datos soportadas para grafos.

Tipos de datos

Los modelos de grafos soportan los siguientes tipos de valor de propiedad.

Tipo de valor GQL Descripción
BOOLEAN Los valores son true y false.
INT (o INT64) Los valores son enteros con signo de 64 bits.
DOUBLE (o FLOAT64) Los valores son números de coma flotante IEEE-754 de 64 bits.
FLOAT (o FLOAT32) Los valores son números de coma flotante de 32 bits.
STRING Los valores son cadenas de caracteres Unicode codificadas en UTF-8. El tamaño máximo de propiedad es de 65.535 bytes.
ZONED DATETIME Los valores son marcas de tiempo junto con un desplazamiento de zona horaria, con precisión milisegundo.

Los siguientes tipos de columnas OneLake y Delta Lake están soportados para la ingestión en grafos.

Tipo OneLake Mapeados al tipo de valor de propiedad GQL
BooleanType BOOLEAN
ByteType INT (o INT64)
IntegerType INT (o INT64)
LongType INT (o INT64)
FloatType DOUBLE (o FLOAT64)
DoubleType DOUBLE (o FLOAT64)
StringType STRING
DateType ZONED DATETIME
TimestampType ZONED DATETIME
TimestampNtzType ZONED DATETIME

Note

No se soportan tipos complejos o anidados de Delta Lake (MapType y StructType). Puedes analizar columnas de cadenas codificadas en JSON en tiempo de consulta usando PARSE_JSON_STRING.

Procesamiento de grafos y escala

Las operaciones de carga y refresco de grafos pueden requerir un tiempo de procesamiento extendido dependiendo del tamaño del grafo, el número de elementos del grafo (nodos y aristas) y el tamaño de las cargas útiles de propiedades asociadas a esos elementos. Los gráficos grandes pueden tardar varias horas en procesarse. Si no se ha completado una operación de carga o actualización de grafos tras 24 horas, presenta una solicitud de soporte para una investigación adicional.

Las capacidades actuales de procesamiento de grafos soportan grafos que contienen hasta aproximadamente 2.000 millones de elementos de grafo (nodos y aristas). La capacidad efectiva puede variar en función de la estructura del grafo y el tamaño de la carga útil de la propiedad. Si se espera que tu carga de trabajo supere estos límites, contacta con el Soporte técnico de Microsoft para recibir orientación.

Columnas de partición

Las columnas de partición de Delta Lake tienen un soporte limitado como propiedades de grafo:

  • Las columnas de partición utilizadas como única clave primaria siempre son rechazadas.
  • No se admiten columnas de partición generadas.
  • Los tipos complejos y decimales de columnas de particiones (Decimal, Binary, Array, Map, y Struct) se eliminan con una advertencia.

Cambios en los esquemas

Los cambios en el esquema provocan una recarga del grafo.

Querying

Caminos de longitud variable

El creador de caminos Explore UI soporta hasta ocho saltos para patrones de longitud variable. Este límite de interfaz de usuario no se aplica a consultas GQL introducidas en el editor de código.

Graph soporta los ALL prefijos de búsqueda de caminos y ANY SHORTEST y (path search). No se admiten ALL SHORTEST ni ANY.

La siguiente tabla resume el soporte GQL de longitud variable:

Búsqueda de caminos y modo de ruta Cuantificador fijo o acotado Cuantificador no acotado
ALL WALK (valor predeterminado) Supported No está soportado porque los elementos repetidos pueden producir infinitos caminos.
ALL TRAIL, ALL SIMPLE o ALL ACYCLIC Supported Está soportado, pero el número de caminos puede seguir siendo grande.
ANY SHORTEST WALK Supported Compatible con una simple accesibilidad al punto final con un solo borde cuantificado anónimo entre dos nodos. Un camino limitado por esta forma no acotada solo puede usarse con PATH_LENGTH(path) y, junto a ella, path IS NULL; el camino completo no se materializa. Véase Patrones de longitud variable ilimitados.
ANY SHORTEST TRAIL, ANY SHORTEST SIMPLE o ANY SHORTEST ACYCLIC Supported Supported.

Los cuantificadores fijos y acotados son {n}, {m,n}, y {,n}. Los cuantificadores no acotados son {m,}, *, y +. Para más información, véase Patrones de gráficos GQL.

Colocación de predicados de camino

GQL distingue predicados que restringen caminos elegibles de predicados que filtran caminos tras seleccionarlos por un prefijo de búsqueda de caminos. Para algunas ANY SHORTEST formas de consulta, Graph puede aplicar actualmente una condición a nivel MATCH ... WHERE de instrucción antes de la selección de camino.

Para hacer explícita la etapa prevista, coloca los predicados de elegibilidad en línea en patrones de nodos o aristas. Para el filtrado posterior a la selección, utiliza una sentencia separada FILTER después MATCHde . Para ejemplos, véase Colocar predicados antes o después de la selección de caminos.

Filtros de predicados de lista

Los filtros de predicados de lista actualmente no soportan:

  • EXISTS subconsultas.
  • Agrega funciones sobre el elemento localmente ligado. Se soporta la agregación horizontal sobre una lista de grupos que encierra.

Para la sintaxis soportada y la semántica de resultados, véase Listar funciones predicadas.

Tamaño de los resultados

Graph trunca una respuesta de consulta cuando su representación binaria interna supera los 64 MB. Graph devuelve las filas que encajan y reporta una advertencia adicional con código 01000 de estado público y GQLSTATUS 01M11canónico . Los resultados intermedios están limitados a 128 MB.

La respuesta no incluye un token de continuación para las filas omitidas por truncamiento. Reduce el resultado con filtros, proyecciones específicas o LIMIT, y luego ejecuta la consulta de nuevo.

Timeout

La ejecución de la API de consulta tiene un tiempo de espera total de 20 minutos, incluyendo las solicitudes de continuación. Si la ejecución supera este límite, la API devuelve HTTP 408 con código QueryTimeoutde error .

Subqueries

CALL, OPTIONAL CALL, y se admiten subconsultas de procedimiento-formulario EXISTS . Las subconsultas en línea CALL pueden anidarse e importar implícitamente variables de los ámbitos que lo encierran. No se soportan llamadas a procedimientos con nombre, listas explícitas de importación de variables como CALL (p) { ... }, solo EXISTSpatrón de grafo , y subconsultas escalares (VALUE { ... }).

Funciones de agregación

Se admiten las siguientes funciones de agregación:

  • COUNT, COUNT(*), SUM, AVG, MINy MAX
  • COLLECT_LIST, COLLECT_ONE y COLLECT_ELEMENTS
  • DISTINCT variantes de todas las funciones anteriores
  • Variantes horizontales (por filas, sobre variables/listas de grupo) de todo lo anterior

Las siguientes funciones de agregación aún no están soportadas:

  • PERCENTILE_CONT y PERCENTILE_DISC
  • STDDEV_POP y STDDEV_SAMP
  • PRODUCT

Operaciones de conjunto

UNION ALL y UNION DISTINCT son compatibles. INTERSECT, EXCEPT, y OTHERWISE aún no están soportadas.

Sentencias y cláusulas GQL soportadas

Se soportan las siguientes sentencias y cláusulas clave de GQL:

  • MATCH y OPTIONAL MATCH
  • WHERE Filtros
  • LET Enlaces de variables
  • FOR ... INDesenrollado de lista con indexación opcional ORDINALITY
  • NEXT, incluyendo etapas de consulta que contienen UNION, UNION DISTINCT, o UNION ALL
  • RETURN y RETURN DISTINCT
  • GROUP BY
  • ORDER BY con NULLS FIRST o NULLS LAST
  • LIMIT y OFFSET
  • UNION ALL y UNION DISTINCT
  • CALL, OPTIONAL CALL y EXISTS
  • CAST con una matriz de conversión de tipos amplia
  • Funciones escalares y agregadas soportadas listadas en expresiones, predicados y funciones GQL

Operaciones DML y DDL

Las operaciones del Lenguaje de Manipulación de Datos (DML) como INSERT, UPDATE, y DELETE no son compatibles con GQL. No se admiten operaciones de Lenguaje de Definición de Datos (DDL) para mutación de esquemas.

Exportación y visualización de datos

Actualmente no se admite la exportación de resultados de consulta de grafos ni estructuras de grafos.

Actualmente no se admite la conexión Power BI directamente a un gráfico para escenarios de visualización.

Conformidad con GQL

Para obtener una asignación detallada de las características de GQL compatibles con el estándar ISO/IEC 39075:2024, incluida la conformidad mínima, las características opcionales por grupo y las características aún no admitidas, consulte Conformidad estándar de GQL.

La conformidad con los estándares GQL aún está en proceso para las siguientes características.

Control de flujo y operaciones de conjunto

  • sentencias EXCEPT ALL y EXCEPT DISTINCT
  • sentencias INTERSECT ALL y INTERSECT DISTINCT
  • Instrucción OTHERWISE

Búsqueda de caminos y coincidencia de patrones

  • ALL SHORTEST Búsqueda de rutas (no soportada)
  • ANY Búsqueda de rutas
  • Predicados de patrón no local
  • Coherencia topológica relajada
  • Caracteres comodín

Predicates

  • Predicado de la prueba de etiquetas (IS LABELED)
  • IS DIRECTED predicado
  • Predicado normalizado
  • Predicado de origen/destino
  • ALL_DIFFERENT predicado
  • IS DISTINCT predicado
  • SAME predicado
  • REGEXP_CONTAINS predicado

Tipos de valor en tiempo de ejecución soportados

Tipo de valor en tiempo de ejecución Representación/rango Limit
BOOLEAN true y false
INT (o INT64) Entero de 64 bits firmado
UINT (o UINT64) Entero de 64 bits sin signo
DOUBLE (o FLOAT64) IEEE-754 binary64 No hay comprobación solo finita; se aceptan valores no finitos
STRING Cadena Unicode 65.534 bytes (longitud en disco uint16)
ZONED DATETIME Milisegundos desde la época Unix más el desfase int32 UTC Rango de INT64 milisegundos
DURATION(DAY TO SECOND) Precisión en milisegundos
NODE uint64 raw
EDGE uint64 raw
LIST Lista tipada homogénea 65.534 elementos (uint16 longitud en disco)
RECORD Estructura de campos tipados
PATH Lista alterna de nodos y aristas que siempre empieza y termina con un nodo 65.534 elementos (uint16 longitud en disco)

Tipos de valor en tiempo de ejecución aún no soportados

  • INT8, INT16, y INT32 tipos de valor (INT64 es soportado)
  • FLOAT16 y FLOAT32 tipos de valor (FLOAT64 es compatible)
  • UINT8, UINT16, y UINT32 tipos de valor (UINT64 es soportado)
  • ZONED TIME Tipo de valor
  • DATE Tipo de valor como tipo independiente. Las fechas ingeridas se corresponden con la Fecha Hora Zonificada.
  • LOCAL DATETIME Tipo de valor
  • LOCAL TIME Tipo de valor
  • DURATION(YEAR TO MONTH) Tipo de valor
  • BYTES Tipo de valor. La ingesta está soportada, pero el tipo no puede consultarse como propiedad almacenada.
  • VECTOR Tipo de valor

Funciones y expresiones

  • PROPERTIES Función
  • NORMALIZEcon las NFKC formas y NFKD
  • DURATION_BETWEEN Función
  • Expresiones buscadas CASE WHEN
  • Subconsultas escalares
  • Concatenación de valores de ruta de acceso
  • Concatenación de cadenas de bytes, TRIMy funciones de longitud
  • Función simple TRIM con una TRIM especificación
  • Función multicarácter TRIM
  • CARDINALITY

Aggregation

  • PERCENTILE_CONT (función de agregación)
  • PERCENTILE_DISC (función de agregación)
  • PRODUCT (función de agregación)
  • STDDEV_POP (función de agregación)
  • STDDEV_SAMP (función de agregación)

Other

  • Paso de parámetros ($param especificación dinámica de parámetros)
  • Usuario de sesión (SESSION_USER)
  • CALL Sentencia de procedimiento nombrado
  • CALL Subconsultas con listas explícitas de importación de variables
  • Gestión de catálogos. Los nombres de grafos y restricciones se generan automáticamente.

Catalog

Note

Los nombres de grafos y restricciones se generan automáticamente y no pueden especificarse ni en la interfaz ni en el esquema JSON.

Área del catálogo Límite actual / comportamiento Recommendation
Esquema de grafo Un tipo de gráfico por catálogo.
Nombre del grafo Debe ser no vacío; no hay longitud máxima explícita. 127 caracteres
Tipos de nodo Máximo de aproximadamente 2.000 millones (espacio de identificación int32). 64K
Tipos perimetrales Máximo de aproximadamente 2.000 millones (espacio de identificación int32). 64K
Etiquetas de nodo únicas Un máximo de aproximadamente 2.000 millones; los duplicados dentro de un tipo son rechazados. Derivado de tipos de nodos
Etiquetas de aristas únicas Un máximo de aproximadamente 2.000 millones; los duplicados dentro de un tipo son rechazados. Derivado de tipos de aristas
Nombres únicos de propiedades Un máximo de aproximadamente 2.000 millones; se rechazan los nombres vacíos y duplicados dentro de un mismo tipo. 64K x 10
Propiedades por tipo de nodo No hay un máximo explícito; los nombres duplicados de propiedades son rechazados. 256
Propiedades por tipo de arista No hay un máximo explícito; los nombres duplicados de propiedades son rechazados. 256
Etiquetas por tipo de nodo No hay un máximo explícito; se rechazan etiquetas duplicadas. 64
Etiquetas por tipo de arista No hay un máximo explícito; se rechazan etiquetas duplicadas. 64
Propiedades clave por restricción No hay un máximo explícito; los nombres de las propiedades deben ser no vacíos. 16
Longitud del nombre de la propiedad No se aplica explícitamente más allá de lo no vacío. 127 caracteres
Longitud del nombre de etiqueta No se aplica explícitamente más allá de lo no vacío. 127 caracteres
Restricciones de clave de borde Desactivado por defecto (allow_edge_key_constraints bandera). ≤ el número de tipos de aristas