Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
trueyfalse) - 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.