operador make-graph (Pré-visualização)
Aviso
Esta funcionalidade está atualmente em pré-visualização e pode estar sujeita a alterações. A semântica e a sintaxe da funcionalidade do gráfico podem ser alteradas antes de serem lançadas como geralmente disponíveis.
O make-graph
operador cria uma estrutura de gráfico a partir de entradas tabulares de arestas e nós.
Syntax
Arestas|
make-graph
SourceNodeId-->
TargetNodeId [ with
Nodes1on
NodeId1 [,
Nodes2on
NodeId2 ]]
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
Arestas | string |
✔️ | A origem tabular que contém as margens do gráfico, cada linha representa uma aresta no gráfico. |
SourceNodeId | string |
✔️ | A coluna em Arestas com os IDs do nó de origem das margens. |
TargetNodeId | string |
✔️ | A coluna em Arestas com os IDs do nó de destino das margens. |
Nós | string |
As expressões tabulares que contêm as propriedades dos nós no gráfico. | |
NodesId | string |
As colunas com os IDs dos nós em Nós. |
Devoluções
O make-graph
operador devolve uma expressão de grafo e tem de ser seguido por um operador de gráfico. Cada linha na expressão Edges de origem torna-se uma aresta com o gráfico com propriedades que são os valores de coluna da linha. Cada linha na expressão tabular dos nós torna-se um nó no gráfico com propriedades que são os valores de coluna da linha. Os nós que aparecem na tabela Edges , mas que não têm uma linha correspondente nas tabelas de nós, são criados como nós com o ID do nó correspondente e propriedades vazias.
Nota
Cada nó tem um identificador exclusivo. Se o mesmo ID de nó aparecer nas tabelas Nodes1 e Nodes2 , é criado um único nó ao intercalar as respetivas propriedades. Se existirem valores de propriedade em conflito para o mesmo nó, um dos valores é escolhido arbitrariamente.
Exemplo
O exemplo seguinte cria um gráfico a partir de margens e tabelas de nós. Os nós representam pessoas e sistemas, e as arestas são relações diferentes entre nós. O make-graph
operador cria o gráfico. Em seguida, há uma chamada para graph-match
com um padrão de gráfico que procura caminhos de ataque para o nó do sistema "Trent".
let nodes = datatable(name:string, type:string, age:int)
[
"Alice", "Person", 23,
"Bob", "Person", 31,
"Eve", "Person", 17,
"Mallory", "Person", 29,
"Trent", "System", 99
];
let edges = datatable(source:string, destination:string, edge_type:string)
[
"Alice", "Bob", "communicatesWith",
"Alice", "Trent", "trusts",
"Bob", "Trent", "hasPermission",
"Eve", "Alice", "attacks",
"Mallory", "Alice", "attacks",
"Mallory", "Bob", "attacks"
];
edges
| make-graph source --> destination with nodes on name
| graph-match (mallory)-[attacks]->(compromised)-[hasPermission]->(trent)
where mallory.name == "Mallory" and trent.name == "Trent" and attacks.edge_type == "attacks" and hasPermission.edge_type == "hasPermission"
project Attacker = mallory.name, Compromised = compromised.name, System = trent.name
Saída
Atacante | Comprometido | Sistema |
---|---|---|
Mallory | Bob | Trent |
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários