Limitações atuais dos grafos no Microsoft Fabric

O Graph no Microsoft Fabric tem certas limitações funcionais. Este artigo destaca algumas limitações principais, mas não é uma lista exaustiva. Volte regularmente para atualizações.

Para ajuda com problemas comuns, consulte o gráfico de resolução de problemas.

Criação de modelos gráficos

Fontes de dados

As bases de dados OneLake e Mirrored são as fontes de dados suportadas para grafos.

Tipos de dados

Os modelos de grafos suportam os seguintes tipos de valor de propriedade.

Tipo de valor GQL Descrição
BOOLEAN Os valores são true e false.
INT (ou INT64) Os valores são inteiros com assinatura de 64 bits.
DOUBLE (ou FLOAT64) Os valores são números IEEE-754 em ponto flutuante de 64 bits.
FLOAT (ou FLOAT32) Os valores são números de ponto flutuante de 32 bits.
STRING Os valores são cadeias de caracteres Unicode codificadas em UTF-8. O tamanho máximo da propriedade é de 65.535 bytes.
ZONED DATETIME Os valores são carimbos temporais juntamente com um deslocamento de fuso horário, com precisão de milissegundos.

Os seguintes tipos de colunas OneLake e Delta Lake são suportados para a ingestão em grafos.

Tipo OneLake Mapas para o tipo de valor de propriedade GQL
BooleanType BOOLEAN
ByteType INT (ou INT64)
IntegerType INT (ou INT64)
LongType INT (ou INT64)
FloatType DOUBLE (ou FLOAT64)
DoubleType DOUBLE (ou FLOAT64)
StringType STRING
DateType ZONED DATETIME
TimestampType ZONED DATETIME
TimestampNtzType ZONED DATETIME

Note

Tipos complexos ou aninhados de Delta Lake (MapType e StructType) não são suportados. Pode analisar colunas de strings codificadas em JSON em tempo de consulta usando PARSE_JSON_STRING.

Processamento de grafos e escala

As operações de carregamento e atualização de grafos podem exigir tempo de processamento prolongado dependendo do tamanho do grafo, do número de elementos do grafo (nós e arestas) e do tamanho das cargas úteis de propriedades associadas a esses elementos. Gráficos grandes podem demorar várias horas a processar. Se uma operação de carregamento ou atualização de grafos não tiver sido concluída após 24 horas, submeta um pedido de suporte para investigação adicional.

As capacidades atuais de processamento de grafos suportam grafos contendo até aproximadamente 2 mil milhões de elementos de grafo (nós e arestas). A capacidade efetiva pode variar consoante a estrutura do grafo e o tamanho da carga útil da propriedade. Se se espera que a sua carga de trabalho ultrapasse esses limites, contacte o Suporte da Microsoft para obter orientação.

Colunas de partição

As colunas de partição Delta Lake têm suporte limitado como propriedades de grafo:

  • Colunas de partição usadas como única chave primária são sempre rejeitadas.
  • Colunas de partição geradas não são suportadas.
  • Os tipos de colunas de partição complexa e decimal (Decimal, Binary, Array, Map, e Struct) são omitidos com um aviso.

Alterações de esquema

Alterações de esquema desencadeiam uma recarga do grafo.

Consultar

Caminhos de comprimento variável

O construtor de caminhos Explore UI suporta até oito saltos para padrões de comprimento variável. Este limite da interface de utilizador não se aplica a consultas GQL inseridas no editor de código.

O Graph suporta os ALL prefixos de busca de caminhos e (pathfinder ANY SHORTEST ). ALL SHORTEST e ANY não são suportados.

A tabela seguinte resume o suporte ao GQL de comprimento variável:

Pesquisa de caminho e modo de caminho Quantificador fixo ou limitado Quantificador ilimitado
ALL WALK (predefinição) Suportado Não é suportado porque elementos repetidos podem produzir infinitos caminhos.
ALL TRAIL, ALL SIMPLE ou ALL ACYCLIC Suportado Suportado, mas o número de caminhos pode ser grande.
ANY SHORTEST WALK Suportado Suportado para acessibilidade simples ao endpoint com uma vantagem anónima quantificada entre dois nós. Um caminho limitado por esta forma não limitada só pode ser usado com PATH_LENGTH(path) e, juntamente com ela, path IS NULL; o caminho completo não é materializado. Ver Padrões de comprimento variável ilimitados.
ANY SHORTEST TRAIL, ANY SHORTEST SIMPLE ou ANY SHORTEST ACYCLIC Suportado Supported.

Quantificadores fixos e limitados são {n}, {m,n}, e {,n}. Quantificadores ilimitados são {m,}, *, e +. Para mais informações, veja padrões de gráficos GQL.

Colocação do predicado do caminho

O GQL distingue predicados que restringem caminhos elegíveis de predicados que filtram caminhos após a seleção de um prefixo de pesquisa de caminhos. Para algumas ANY SHORTEST formas de consulta, o Graph pode atualmente aplicar uma condição ao nível MATCH ... WHERE da instrução antes da seleção do caminho.

Para tornar explícito o estágio pretendido, coloque os predicados de elegibilidade em linha em padrões de nós ou arestas. Para filtragem pós-seleção, use uma instrução separada FILTER após MATCH. Para exemplos, veja Colocar predicados antes ou depois da seleção de caminhos.

Filtros de predicados de lista

Os filtros de predicados de lista não suportam atualmente:

  • EXISTS subconsultas.
  • Funções agregadas sobre o elemento localmente ligado. A agregação horizontal sobre uma lista de grupos envolvente é suportada.

Para sintaxe suportada e semântica de resultados, veja Listar funções de predicado.

Tamanho dos resultados

O grafo trunca uma resposta de consulta quando a sua representação binária interna excede 64 MB. O gráfico devolve as linhas que se encaixam e reporta um aviso adicional com código 01000 de estado público e GQLSTATUS 01M11canónico . Os resultados intermédios são limitados a 128 MB.

A resposta não inclui um token de continuação para linhas omitidas por truncamento. Restringir o resultado com filtros, projeções específicas, ou LIMIT, e depois executar a consulta novamente.

Timeout

A execução da API de consulta tem um timeout total de 20 minutos, incluindo pedidos de continuação. Se a execução ultrapassar este limite, a API devolve HTTP 408 com código QueryTimeoutde erro .

Subqueries

CALL, OPTIONAL CALL, e subconsultas de formulário EXISTS de procedimento são suportadas. As subconsultas inline CALL podem ser aninhadas e importar implicitamente variáveis de escopos envolventes. Chamadas de procedimento nomeadas, listas explícitas de importação de variáveis como CALL (p) { ... }, apenas EXISTSpadrão de grafo , e subconsultas escalares (VALUE { ... }) não são suportadas.

Funções de agregação

As seguintes funções de agregação são suportadas:

  • COUNT, COUNT(*), SUM, AVG, MINe MAX
  • COLLECT_LIST, COLLECT_ONEe COLLECT_ELEMENTS
  • DISTINCT variantes de todas as funções anteriores
  • Variantes horizontais (linhas a linhas, sobre variáveis/listas de grupo) de tudo o que foi dito acima

As seguintes funções de agregação ainda não são suportadas:

  • PERCENTILE_CONT e PERCENTILE_DISC
  • STDDEV_POP e STDDEV_SAMP
  • PRODUCT

Definir operações

UNION ALL e UNION DISTINCT são suportados. INTERSECT, EXCEPT, e OTHERWISE ainda não são suportados.

Declarações e cláusulas GQL suportadas

São suportadas as seguintes declarações e cláusulas essenciais do GQL:

  • MATCH e OPTIONAL MATCH
  • WHERE Filtros
  • LET Ligações de variáveis
  • FOR ... INdesenrolar lista com indexação opcional ORDINALITY
  • NEXT, incluindo estágios de consulta que contêm UNION, UNION DISTINCT, ou UNION ALL
  • RETURN e RETURN DISTINCT
  • GROUP BY
  • ORDER BY com NULLS FIRST ou NULLS LAST
  • LIMIT e OFFSET
  • UNION ALL e UNION DISTINCT
  • CALL, OPTIONAL CALLe EXISTS
  • CAST com uma matriz de conversão de tipos ampla
  • Funções escalares e agregadas suportadas listadas em expressões, predicados e funções GQL

Operações DML e DDL

Operações da Linguagem de Manipulação de Dados (DML) como INSERT, UPDATE, e DELETE não são suportadas através do GQL. Operações de Linguagem de Definição de Dados (DDL) para mutação de esquema não são suportadas.

Exportação e visualização de dados

Exportar resultados de consultas de grafos ou estruturas de grafos não é atualmente suportado.

Ligar o Power BI diretamente a um gráfico para cenários de visualização não é atualmente suportado.

Conformidade com GQL

Para um mapeamento detalhado das funcionalidades GQL suportadas em relação à norma ISO/IEC 39075:2024, incluindo conformidade mínima, funcionalidades opcionais por grupo e funcionalidades ainda não suportadas, consulte conformidade com a norma GQL.

A conformidade com os padrões GQL ainda está em desenvolvimento para as seguintes funcionalidades.

Fluxo de controlo e operações de conjunto

  • EXCEPT ALL e EXCEPT DISTINCT declarações
  • INTERSECT ALL e INTERSECT DISTINCT declarações
  • Declaração OTHERWISE

Pesquisa de caminhos e correspondência de padrões

  • ALL SHORTEST Pesquisa de Caminho (não suportado)
  • ANY Pesquisa de Caminho
  • Predicados de padrões não locais
  • Consistência topológica relaxada
  • Wildcards

Predicates

  • Predicado do teste de etiqueta (IS LABELED)
  • IS DIRECTED predicado
  • Predicado normalizado
  • Predicado de origem/destino
  • ALL_DIFFERENT predicado
  • IS DISTINCT predicado
  • SAME predicado
  • REGEXP_CONTAINS predicado

Tipos de valor em tempo de execução suportados

Tipo de valor em tempo de execução Representação/alcance Limit
BOOLEAN true e false
INT (ou INT64) Inteiro de 64 bits assinado
UINT (ou UINT64) Inteiro de 64 bits não assinado
DOUBLE (ou FLOAT64) IEEE-754 binary64 Não há verificação apenas finita; valores não finitos são aceites
STRING Cadeia de caracteres Unicode 65.534 bytes (comprimento no disco uint16)
ZONED DATETIME Milissegundos desde a época Unix mais deslocamento int32 UTC Intervalo int64 milissegundos
DURATION(DAY TO SECOND) Precisão em milissegundos
NODE uint64 raw
EDGE uint64 raw
LIST Lista tipada homogénea 65.534 elementos (uint16 comprimento no disco)
RECORD Estrutura de campos tipados
PATH Lista alternada de nós e arestas que começa e termina sempre com um nó 65.534 elementos (uint16 comprimento no disco)

Tipos de valor em tempo de execução ainda não suportados

  • INT8, INT16, e INT32 tipos de valor (INT64 é suportado)
  • FLOAT16 e FLOAT32 tipos de valor (FLOAT64 é suportado)
  • UINT8, UINT16, e UINT32 tipos de valor (UINT64 é suportado)
  • ZONED TIME Tipo de valor
  • DATE Valor do tipo como um tipo independente. Datas ingeridas mapeiam para Data-Hora Zonada.
  • LOCAL DATETIME Tipo de valor
  • LOCAL TIME Tipo de valor
  • DURATION(YEAR TO MONTH) Tipo de valor
  • BYTES Tipo de valor. A ingestão é suportada, mas o tipo não é consultável como propriedade armazenada.
  • VECTOR Tipo de valor

Funções e expressões

  • PROPERTIES Função
  • NORMALIZEcom as NFKC formas e NFKD
  • DURATION_BETWEEN Função
  • Expressões pesquisadas CASE WHEN
  • Subconsultas escalares
  • Concatenação do valor do caminho
  • Concatenação de cadeias de bytes, TRIM, e funções de comprimento
  • Função simples TRIM com uma TRIM especificação
  • Função multicarácter TRIM
  • CARDINALITY

Aggregation

  • PERCENTILE_CONT função de agregação
  • PERCENTILE_DISC função de agregação
  • PRODUCT função de agregação
  • STDDEV_POP função de agregação
  • STDDEV_SAMP função de agregação

Other

  • Passagem de parâmetros ($param especificação dinâmica de parâmetros)
  • Utilizador de sessão (SESSION_USER)
  • CALL Instrução de procedimento nomeado
  • CALL Subconsultas com listas explícitas de importação de variáveis
  • Gestão de catálogos. Os nomes dos grafos e das restrições são gerados automaticamente.

Catalog

Note

Os nomes dos grafos e das restrições são gerados automaticamente e não podem ser especificados na interface ou no esquema JSON.

Área do catálogo Limite atual / comportamento Recommendation
Esquema de grafo Um tipo de gráfico por catálogo.
Nome do grafo Deve ser não vazio; não há comprimento máximo explícito. 127 personagens
Tipos de nó Máximo de aproximadamente 2 mil milhões (espaço de ID int32). 64K
Tipos de arestas Máximo de aproximadamente 2 mil milhões (espaço de ID int32). 64K
Rótulos de nós únicos Máximo de aproximadamente 2 mil milhões; duplicados dentro de um tipo são rejeitados. Derivado de tipos de nós
Etiquetas de arestas únicas Máximo de aproximadamente 2 mil milhões; duplicados dentro de um tipo são rejeitados. Derivado de tipos de arestas
Nomes únicos de propriedades Máximo de aproximadamente 2 mil milhões; nomes vazios e duplicados dentro de um tipo são rejeitados. 64K x 10
Propriedades por tipo de nó Não há um máximo explícito; nomes duplicados de propriedades são rejeitados. 256
Propriedades por tipo de aresta Não há um máximo explícito; nomes duplicados de propriedades são rejeitados. 256
Rótulos por tipo de nó Não há um máximo explícito; rótulos duplicados são rejeitados. 64
Rótulos por tipo de aresta Não há um máximo explícito; rótulos duplicados são rejeitados. 64
Propriedades chave por restrição Não há um máximo explícito; os nomes das propriedades devem ser não vazios. 16
Comprimento do nome da propriedade Não é explicitamente aplicado para além do não vazio. 127 personagens
Comprimento do nome do rótulo Não é explicitamente aplicado para além do não vazio. 127 personagens
Restrições da chave de aresta Desativado por defeito (allow_edge_key_constraints flag). ≤ o número de tipos de arestas