Limitaciones actuales del grafo en Microsoft Fabric

Graph en Microsoft Fabric tiene ciertas limitaciones funcionales y de rendimiento. 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

  • Los archivos parquet y CSV de OneLake son los únicos orígenes de datos admitidos actualmente.
  • La compatibilidad con Power BI modelos semánticos a medida que los orígenes de datos están en desarrollo.
  • La compatibilidad con la seguridad oneLake de nivel de fila y de columna está en desarrollo.

Tipos de datos

Graph admite actualmente los siguientes tipos de datos:

  • Boolean (los valores son true y false)
  • Double (los valores son números de punto flotante de 64 bits)
  • Entero (los valores son enteros con signo de 64 bits)
  • String (los valores son cadenas de caracteres Unicode)
  • FechaHora Zonificada (los valores son marcas de tiempo junto con un desplazamiento temporal para la zona horaria)
  • Duración (los valores son intervalos de duración ISO 8601)

Se admiten los siguientes tipos de OneLake:

  • IntegerType
  • LongType
  • tipo de cadena
  • DoubleType
  • Tipo Booleano
  • FloatType (tipo de flotante)
  • ByteType
  • ArrayType
  • TipoFecha
  • TimestampNtzType
  • Tipo de marca de tiempo

Creación de Edge

Durante el modelado de grafos, asigne nombres diferentes a los distintos tipos de bordes de grafos.

Por ejemplo, un conjunto de datos de redes sociales podría representar "comentarios de usuarios como comentarios" y "el usuario le gusta publicar". Si el modelo de grafos usa tipos de nodo independientes para comentarios y publicaciones, el tipo de nodo de usuario tiene dos tipos de bordes "likes" para comentar y publicar. Puede asignar un nombre userLikesComment y userLikesPost a estos bordes.

Tiempo de creación del grafo

Hasta una vez a la semana, un modelo de grafos podría encontrar un tiempo de espera si la creación o actualización del grafo tarda más de 20 minutos. La operación se marca como errónea.

Sin embargo, los usuarios pueden volver a iniciar la creación o actualización de grafos.

Tamaño del grafo

Las configuraciones SKU actualmente disponibles pueden procesar alrededor de 2.000 millones de elementos de grafo (nodos y aristas). Para grafos más grandes con un mayor número de elementos o una carga útil de propiedad mayor por elemento, por favor contacta con el equipo de producto.

Número total de modelos de grafos

Cada espacio de trabajo de Fabric puede tener hasta 10 modelos de grafos.

Interfaz de usuario multitarea

El modelo de grafos puede desaparecer o estar vacío al cambiar entre pestañas o ventanas en la interfaz de usuario de varias tareas de Fabric. El equipo del producto está trabajando activamente para resolver este problema conocido.

Selección de propiedades de nodo

Cuando añades un nodo o tipo de arista a tu modelo de grafo, selecciona manualmente columnas de la tabla de origen para añadirlas como propiedades. Tanto los nodos como las aristas empiezan sin propiedades, y solo añades las que necesitas.

Querying

Número de saltos en consultas multihop

Actualmente, Graph admite hasta ocho saltos en patrones de longitud variable.

Tamaño de los resultados

El rendimiento de la agregación puede ser inestable cuando los resultados superan los 128 MB de tamaño.

Actualmente, el sistema trunca las respuestas que tienen más de 64 MB.

Timeout

Las consultas agotan el tiempo de espera si tardan más de 20 minutos.

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 todavía está en curso para:

  • Códigos de estado GQL correctos
  • Instrucción FOR con índice
  • PRÓXIMO
  • Instrucción UNION DISTINCT
  • Cuantificadores de patrones de grafos sin enlazar
  • BÚSQUEDA DE LA RUTA DE ACCESO MÁS CORTA
  • Búsqueda de cualquier ruta de acceso
  • BÚSQUEDA DE RUTA DE ACCESO MÁS CORTA
  • Conversión de datos
  • Subconsultas escalares
  • Función PROPERTIES
  • Función RANGE
  • Funciones numéricas mejoradas
  • Funciones logarítmicas
  • Funciones trigonométricas
  • Concatenación de valores de ruta de acceso
  • Predicado de prueba de etiquetas
  • Predicado normalizado
  • Predicado de origen/destino
  • Tipo de valor INT32
  • tipo de valor FLOAT32
  • Tipo de valor RECORD cerrado
  • Tipo de valor UINT32
  • Tipo de valor ZONED TIME
  • Tipo de valor DATE
  • Paso de parámetros
  • Bordes sin dirección
  • Preámbulo de GQL
  • Predicados de patrón no local
  • PREDICADO DIRIGIDO
  • predicado de REGEXP_CONTAINS
  • Especificación de parámetros dinámicos
  • Usuario de sesión
  • Tipo de valor BYTES
  • Tipo de valor DECIMAL
  • Tipo de valor DATETIME LOCAL
  • Tipo de valor HORA LOCAL
  • INSTRUCCIÓN CALL con nombre de procedimiento
  • ORDER BY con ordenación EXPLÍCITA DE NULL
  • Instrucción FOR tabular
  • INSTRUCCIÓN EXCEPT ALL
  • Instrucción EXCEPT DISTINCT
  • Instrucción INTERSECT ALL
  • Instrucción INTERSECT DISTINCT
  • INSTRUCCIÓN OTHERWISE
  • Caracteres comodín
  • Coherencia topológica relajada
  • PERCENTILE_CONT función de agregado
  • PERCENTILE_DISC función de agregado
  • Función de agregado PRODUCT
  • STDDEV_POP función de agregado
  • STDDEV_SAMP función de agregado
  • Concatenación de cadenas de bytes
  • Función TRIM de cadena de bytes
  • Función TRIM simple con la especificación TRIM
  • Función TRIM multicharacter
  • Función de longitud de cadena de bytes
  • CARDINALIDAD
  • predicado de ALL_DIFFERENT
  • Predicado IS DISTINCT
  • MISMO predicado

Catálogo

Note

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

Área del catálogo Límite actual / comportamiento Estado de cumplimiento Recommendation
Base de ID de catálogo Los IDs de elementos de catálogo son envoltorios int32 firmados donde 0 es inválido, por lo que cada familia de ID tiene como máximo std::numeric_limits<int32_t>::max() - 1 IDs positivos no nulos (2 mil millones). Techo de implementación, no una cuota recomendada de GA
Esquemas de grafos Un tipo de gráfico por catálogo; los comentarios de identificador de catálogo asumen que el catálogo contiene solo un tipo de grafo. suposición de diseño; no expuesto como una cuota multi-esquema
Definición de grafo tamaño serializado No hay límite explícito de tamaño de byte en GraphProto; contiene tipos de nodos repetidos, tipos de aristas, etiquetas, nombres de propiedades y restricciones. No se aplica por debajo de protobuf/gRPC/memoria; Las comprobaciones de recuento de objetos en catálogo se aplican tras la construcción del grafo
Nombre del grafo Debe no estar vacío; No hay una lista explícita de longitud máxima de bytes ni de caracteres permitidos. Solo se aplica lo no vacío 128 caracteres
Tipos de nodo Máximo 2 mil millones de tipos de nodos. Forzado mediante CatalogGraphType::Validate espacio ID no nulo de int32 positivo 64k
Tipos perimetrales Máximo 2.000 millones de tipos de edge. Forzado mediante CatalogGraphType::Validate espacio ID no nulo de int32 positivo 64k
Etiquetas de nodo únicas en todos los tipos de nodos Máximo 2 mil millones de etiquetas de nodos únicas. Aplicado por CatalogGraphType::Validate; las etiquetas duplicadas dentro de un tipo son rechazadas Derivado
Etiquetas de borde únicas para todos los tipos de aristas Máximo 2 mil millones de etiquetas únicas de edge. Aplicado por CatalogGraphType::Validate; las etiquetas duplicadas dentro de un tipo son rechazadas Derivado
Nombres de propiedades únicos en todos los tipos de nodos y aristas Máximo 2 mil millones de nombres de propiedades únicas. Aplicado por CatalogGraphType::Validate; los nombres de propiedades no pueden estar vacíos y los duplicados dentro de un tipo son rechazados 64k * 10
Definiciones de restricciones de nodos Máximo 2 mil millones de definiciones de restricciones de clave de nodo. Forzado mediante CatalogGraphType::Validate espacio ID no nulo de int32 positivo <= tipos de nodos
Definiciones de restricciones de aristas Máximo 2 mil millones de definiciones de restricciones de clave de borde, pero las restricciones de clave de borde están desactivadas por defecto a menos que allow_edge_key_constraints sea cierto. Conde aplicado si está presente; Feature Gate rechaza las restricciones de borde por defecto <= tipos de aristas
Nombres de propiedades, caracteres / longitud No se aplica explícitamente más allá de nombres de propiedades no vacíos y gramática del analizador; No hay catálogo de longitud máxima de bytes ni lista de caracteres permitidos. 128 caracteres
Caracteres de etiqueta / longitud No se aplica explícitamente más allá de la gramática del analizador y las etiquetas no vacías en las restricciones; No hay catálogo de longitud máxima de bytes ni lista de caracteres permitidos. 128 caracteres
Caracteres del nombre de la restricción / longitud Los nombres de las restricciones deben ser no vacíos; No hay una lista explícita de longitud máxima de bytes ni de caracteres permitidos. La validación de restricciones duplicadas/coincidencias es separada 128 caracteres
Propiedades por tipo de nodo No hay un número máximo explícito de propiedades en un tipo de nodo; los nombres duplicados de propiedades son rechazados. Solo validación de corrección 256
Propiedades por tipo de arista No hay un número máximo explícito de propiedades en un tipo de arista; los nombres duplicados de propiedades son rechazados. Solo validación de corrección 256
Etiquetas por tipo de nodo No hay un número máximo explícito de etiquetas en un tipo de nodo; las etiquetas duplicadas son rechazadas. Solo validación de corrección 64
Etiquetas por tipo de arista No hay un número máximo explícito de etiquetas en un tipo de arista; las etiquetas duplicadas son rechazadas; Las etiquetas añadidas al borde son rechazadas. Solo validación de corrección 64
Propiedades clave por restricción No hay un número máximo explícito de propiedades de clave en las restricciones de clave de nodo o de borde; Los nombres individuales de las propiedades no pueden estar vacíos. Solo validación de corrección 16

Valores de ejecución

Tipo de valor en tiempo de ejecución Representación de respaldo / rango ¿Límite explícito de nivel de valor? Recomendado
BOOL bool; valores verdadero/falso Sí, dominio fijo
INT64 entero de 64 bits con signo Sí, de ancho fijo
UINT64 Entero sin signo de 64 bits Sí, de ancho fijo
DOBLE C++/protobuf doble / Flecha DoubleScalar (IEEE-754 binary64); los valores no finitos no son rechazados por Value::FromProto No hay comprobación solo finita
DECIMAL128 Flecha Decimal128Scalar; validación en tiempo de ejecución permite precisión 1..38 y escala 0..precisión; hasta 38 dígitos decimales Sí, para construcción comprobada/de proto.
STRING std::string; ValueProto.string_value Sin límite de valor 4 MB
BYTES std::string usado como contenedor de bytes; ValueProto.bytes_value Sin límite de valor Límite de cuerdas
VERTEX_ID uint64 envuelto por VertexId; los IDs generados usan un ID local de fragmento de 48 bits y reservan 0 como inválido Raw proto acepta cualquier uint64; Los IDs generados están restringidos
EDGE_ID uint64 envuelto por EdgeId; los IDs generados usan un ID local de fragmento de 48 bits y reservan 0 como inválido Raw proto acepta cualquier uint64; Los IDs generados están restringidos
ZONED_DATE_TIME absl::Time y la zona horaria; serializado como int64 milisegundos desde la época Unix más int32 UTC offset segundos. El rango de milisegundos es [-9.223.372.036.854.775.808, 9.223.372.036.854.775.807], documentado como instantes UTC desde -292275055-05-16T16:47:04.192+00:00 hasta 292278994-08-17T07:12:55.807+00:00. Intervalo de tiempo documentado; El offset es un int32 y no está registrado por rango Value::FromProto
DURACIÓN absl::Duration; Serializado como int64 milisegundos. Los mínimos y máximos serializados son de -9.223.372.036.854.775.808 ms a 9.223.372.036.854.775.807 ms (aproximadamente +/-292.277.024,6 años). El analizador ISO es más estricto: +/-9.223.372.035 segundos (aproximadamente +/-292,277 años). La ruta proto-operatoria acepta el campo completo int64 milisegundos; El analizador tiene una tapa explícita más estrecha
NULL / nulo tipado std::monostate o envoltorio typed-null
Listas mecanografiadas std::vector<std::optional<T>>; LIST_NULL almacena un size_t; LIST_ANY Tiendas std::vector<Value> No hay límite de valor por defecto
Listas anidadas Las listas anidadas generales no están soportadas en el contrato proto; El runtime tiene un manejo anidado LIST_INT64 especial No hay cuota predeterminada de profundidad/longitud
CAMINO Alternar IDs uint64 entre vértice/aristas/vértices en un vector; La forma válida de camino tiene un conteo impar de elementos No hay cuota de longitud de camino
GRABAR absl::flat_hash_map<std::string, Value> / Mapa protobuf No hay cuota de recuento de campos, longitud de clave ni cuota de profundidad de anidamiento
ANY Value::DataType() no se espera que devuelva TYPE_ANY; los valores dinámicos se llevan como valores concretos, especialmente dentro LIST_ANY o Arrow Cualquier almacenamiento de extensión No hay cuota de tamaño ni profundidad

Otros límites

  • Los identificadores no pueden empezar con subrayado.
  • Los literales enteros se tratan por defecto como enteros con signo.
  • No se admiten devolver CUALQUIER tipo ni los tipos de registro. La solución temporal es jsonizarlos mediante TO_JSON_STRING.
  • La longitud máxima de la propiedad de la cadena es 65535. Los datos posteriores a 64 KiB no son accesibles para el deserializador; el buffer completo sigue escribiéndose en RocksDB.
  • El número máximo de elementos en List<T> la propiedad es 65535. Una LISTA INT64 de 70.000 elementos se deserializa en 4.464 elementos.
  • El tamaño máximo de respuesta de la consulta en bytes es de 64 MB.