Limitações atuais do grafo no Microsoft Fabric

O Graph no Microsoft Fabric apresenta certas limitações funcionais. Este artigo destaca algumas limitações importantes, mas não é uma lista completa. Verifique se há atualizações regularmente.

Para obter ajuda com problemas comuns, consulte o grafo de solução de problemas.

Criando modelos de grafo

Fontes de dados

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

Tipos de dados

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 sinal de 64 bits.
DOUBLE (ou FLOAT64) Os valores são números de ponto flutuante IEEE-754 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 de tempo junto 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 Mapeamento para o tipo de valor da 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. Você pode analisar colunas de string codificadas em JSON no momento da consulta usando PARSE_JSON_STRING.

Processamento de grafos e escala

Operações de carregamento e atualização de grafos podem exigir tempo de processamento estendido 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 levar várias horas para serem processados. Se uma operação de carregamento ou atualização de grafo não for concluída após 24 horas, envie um pedido de suporte para investigação adicional.

As capacidades atuais de processamento de grafos suportam grafos contendo até aproximadamente 2 bilhões de elementos de grafo (nós e arestas). A capacidade efetiva pode variar com base na estrutura do grafo e no tamanho da carga útil da propriedade. Se sua carga de trabalho for esperada para ultrapassar esses limites, entre em contato com o Suporte da Microsoft para obter orientação.

Colunas de particionamento

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.
  • Tipos complexos e de colunas de partição decimais (Decimal, Binary, Array, Map, e Struct) são omitidos com um aviso.

Alterações feitas no esquema

Mudanças de esquema acionam uma recarga de grafo.

Querying

Caminhos de comprimento variável

O construtor de caminhos Explore UI suporta até oito saltos para padrões de comprimento variável. Esse limite da interface do usuário não se aplica às 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 a seguir resume o suporte ao GQL de comprimento variável:

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

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.

Posicionamento do predicado do caminho

O GQL distingue predicados que restringem caminhos elegíveis de predicados que filtram caminhos após um prefixo de busca de caminho os selecionar. Para algumas ANY SHORTEST formas de consulta, o Graph pode atualmente aplicar uma condição em nível MATCH ... WHERE de 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

Filtros de predicados de lista atualmente não suportam:

  • 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 sua representação binária interna excede 64 MB. O gráfico retorna as linhas que se encaixam e reporta um aviso adicional com código 01000 de status público e GQLSTATUS 01M11canônico . Os resultados intermediários são limitados a 128 MB.

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

Intervalo

A execução da API de consulta tem um tempo limite total de 20 minutos, incluindo solicitações de continuação. Se a execução ultrapassar esse limite, a API retorna HTTP 408 com código QueryTimeoutde erro .

Subqueries

CALL, OPTIONAL CALL, e subconsultas de formulário EXISTS de procedimento são suportadas. 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_ONE e COLLECT_ELEMENTS
  • DISTINCT variantes de todas as funções anteriores
  • Variantes horizontais (por linhas, sobre variáveis/listas de grupo) de todas as opções 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 têm suporte. INTERSECT, EXCEPT, e OTHERWISE ainda não são suportados.

Declarações e cláusulas GQL suportadas

As seguintes declarações e cláusulas principais do GQL são suportadas:

  • MATCH e OPTIONAL MATCH
  • WHERE Filtros
  • LET Ligações de variáveis
  • FOR ... INlista desenrolando 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 CALL e EXISTS
  • CAST com uma matriz ampla de conversão de tipos
  • 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 por 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

Atualmente, não há suporte para a exportação de resultados de consulta de grafo ou estruturas de grafo.

Atualmente, não há suporte para conectar Power BI diretamente a um grafo para cenários de visualização.

Conformidade com GQL

Para obter um mapeamento detalhado dos recursos gql compatíveis com o padrão ISO/IEC 39075:2024, incluindo conformidade mínima, recursos opcionais por grupo e recursos ainda não compatíveis, consulte a conformidade padrão GQL.

A conformidade com os padrões GQL ainda está em andamento para os seguintes recursos.

Fluxo de controle e operações de conjunto

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

Busca por caminhos e correspondência de padrões

  • ALL SHORTEST Busca de Caminho (não suportado)
  • ANY Busca por caminhos
  • Predicados de padrão não local
  • Consistência topológica descontraída
  • Curingas

Predicates

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

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 assinado de 64 bits
UINT (ou UINT64) Inteiro de 64 bits sem sinal
DOUBLE (ou FLOAT64) IEEE-754 binary64 Não há verificação apenas finita; valores não finitos são aceitos
STRING Cadeia de caracteres Unicode 65.534 bytes (comprimento no disco uint16)
ZONED DATETIME Milissegundos desde a época Unix mais deslocamento int32 UTC Faixa de 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 sempre começa e termina 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 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 pode ser consultado 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 multipersonagem TRIM
  • CARDINALITY

Aggregation

  • Função de agregação 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

Other

  • Passagem de parâmetros ($param especificação dinâmica de parâmetro)
  • Usuário da 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. Nomes de grafos e restrições são gerados automaticamente.

Catalog

Note

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

Área do catálogo Limite / comportamento atual 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 caracteres
Tipo de nó Máximo de aproximadamente 2 bilhões (espaço de ID int32). 64K
Tipos de arestas Máximo de aproximadamente 2 bilhões (espaço de ID int32). 64K
Rótulos de nós únicos Máximo de aproximadamente 2 bilhões; duplicatas dentro de um tipo são rejeitadas. Derivado dos tipos de nós
Rótulos de arestas únicos Máximo de aproximadamente 2 bilhões; duplicatas dentro de um tipo são rejeitadas. Derivado de tipos de arestas
Nomes únicos de propriedades No máximo de aproximadamente 2 bilhõ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á máximo explícito; os nomes das propriedades devem ser não vazios. 16
Comprimento do nome da propriedade Não explicitamente aplicado além do não vazio. 127 caracteres
Comprimento do nome do rótulo Não explicitamente aplicado além do não vazio. 127 caracteres
Restrições de chave de aresta Desativado por padrão (allow_edge_key_constraints flag). ≤ o número de tipos de arestas