Del via


Grafmodeldefinition

Denne artikel indeholder en oversigt over definitionsstrukturen for elementer i Grafmodel.

Definitionsdele

I denne tabel vises definitionsdelene i Graph Model.

Sti til definitionsdel type Påkrævet Beskrivelse
dataSources Datakilde[] sand Matrixen af datakilder
graphDefinition GraphDefinition sand Grafdefinitionen for datatilknytning
graphType GraphType sand Grafstrukturen
stylingConfiguration Konfiguration af formatering sand Konfiguration af graftypografi

Datakilde

Beskriver datakildens struktur.

Navn Type Beskrivelse
Navn String Navnet på datakilden
type "DeltaTable" Datakildetypen
Egenskaber DataSourceProperties Egenskaberne for datakilden

DataSourceProperties

De egenskaber, der kræves af datakildetypen. For DeltaTable-kilder omfatter dette tabelstien.

Navn Type Beskrivelse
sti String Stien til datakilden

GraphDefinition

Beskriver grafdefinitionen for datatilknytning.

Navn Type Beskrivelse
nodeTables NodeTable[] Matrixen af definitioner af nodedatatilknytning
edgeTables EdgeTable[] Matrixen af definitioner af tilknytning af kantdata

NodeTable

Beskriver strukturen af definitionen af nodedatatilknytning.

Navn Type Beskrivelse
id String Id for definitionen af nodedatatilknytning
nodeTypeAlias String Alias for noden som defineret i grafen
dataSourceName String Navnet på datakilden
propertyMappings PropertyMapping[] Matrixen af definitioner af tilknytning af egenskabsdata

Kanttabel

Beskriver strukturen i definitionen af tilknytning af kantdata.

Navn Type Beskrivelse
id String Id for definitionen af tilknytning af kantdata
edgeTypeAlias String Alias for kanten som defineret i grafen
dataSourceName String Navnet på datakilden
sourceNodeKeyColumns String[] Matrixen af kolonner, der knyttes til kildenoden
targetNodeKeyColumns String[] Matrixen af kolonner, der knyttes til destinationsnoden
propertyMappings PropertyMapping[] Matrixen af definitioner af tilknytning af egenskabsdata

PropertyMapping

Beskriver strukturen af definitionen af tilknytning af egenskabsdata.

Navn Type Beskrivelse
propertyName String Navnet på egenskaben
sourceColumn String Navnet på kildekolonnen
filter Enkeltfilter / GroupFilter Filterdefinitionen

Enkeltfilter

Beskriver strukturen af et enkelt filter.

Navn Type Beskrivelse
operator String Operatornavnet på filteret
columnName String Kolonnenavnet for dette filter
værdi Objekt Sammenligningsværdien. Understøtter streng, tal, dateTime og matrixer af disse værdier.

GroupFilter

Beskriver strukturen af et gruppefilter.

Navn Type Beskrivelse
operator String Operatornavnet på filteret
Filtre SingleFilter[] / GroupFilter[] Filtrene for dette gruppefilter
og SingleFilter[] / GroupFilter[] Filtrene for logisk AND
eller SingleFilter[] / GroupFilter[] Filtrene for logisk OR

GraphType

Beskriver strukturen af en graf.

Navn Type Beskrivelse
nodeTypes NodeType[] Matrixen af nodestrukturer
edgeTypes EdgeType[] Matrixen af kantstrukturer

NodeType

Beskriver strukturen af en node.

Navn Type Beskrivelse
alias String Aliasset
Etiketter String[] Matrixen af navne
primaryKeyProperties String[] Matrixen af egenskaber for primær nøgle
Egenskaber Egenskab[] Matrixen af egenskaber

EdgeType

Beskriver strukturen af en kant.

Navn Type Beskrivelse
alias String Aliasset
Etiketter String[] Matrixen af navne
sourceNodeType NodeTypeReference Kildenodens struktur
destinationNodeType NodeTypeReference Destinationsnodens struktur
Egenskaber Egenskab[] Matrixen af egenskaber

Property

Beskriver strukturen af en egenskab.

Navn Type Beskrivelse
Navn String Navnet på egenskaben
type String Egenskabens type

NodeTypeReference

Beskriver strukturen af en NodeTypeReference.

Navn Type Beskrivelse
alias String Aliasset for den node, der refereres til

Konfiguration af formatering

Beskriver strukturen af formateringskonfigurationen.

Navn Type Beskrivelse
modelLayout ModelLayout Formaterings- og layoutkonfigurationen for grafmodellen

ModelLayout

Beskriver konfigurationen af modeltypografier.

Navn Type Beskrivelse
Positioner Ordbogsstreng<, placering> Nodernes positioner
Stilarter Ordbogsstreng<, ModelStyle> Typografierne i grafmodellen
panorering Position Den del af modellærredet
zoomLevel Integer Zoomniveauet på modellærredet

Position

Beskriver en 2D-placering.

Navn Type Beskrivelse
x Integer X-koordinatværdien
y Integer Y-koordinatværdien

Modelstil

Beskriver typografien for et modelelement.

Navn Type Beskrivelse
størrelse Integer Størrelsen af et modelelement

Eksempel på datakilder

{
  "dataSources": [
    {
      "name": "Customer_Table",
      "type": "DeltaTable",
      "properties": {
        "path": "abfss://9e4b0e5d-3952-44df-9ac8-2503775e0425@onelake.dfs.fabric.microsoft.com/f66b6219-28a5-4738-8b37-0c486c661b15/Tables/Customers"
      }
    },
    {
      "name": "Employee_Table",
      "type": "DeltaTable",
      "properties": {
        "path": "abfss://9e4b0e5d-3952-44df-9ac8-2503775e0425@onelake.dfs.fabric.microsoft.com/f66b6219-28a5-4738-8b37-0c486c661b15/Tables/Employees"
      }
    },
    {
      "name": "Order_Table",
      "type": "DeltaTable",
      "properties": {
        "path": "abfss://9e4b0e5d-3952-44df-9ac8-2503775e0425@onelake.dfs.fabric.microsoft.com/f66b6219-28a5-4738-8b37-0c486c661b15/Tables/PurchaseOrders"
      }
    },
    {
      "name": "Product_Table",
      "type": "DeltaTable",
      "properties": {
        "path": "abfss://9e4b0e5d-3952-44df-9ac8-2503775e0425@onelake.dfs.fabric.microsoft.com/f66b6219-28a5-4738-8b37-0c486c661b15/Tables/Products"
      }
    }
  ]
}

Eksempel på grafdefinition

{
  "schemaVersion": "1.0.0",
  "nodeTables": [
    {
      "id": "Customer_5b6cb156-c778-4fce-8606-f0f712c04818",
      "nodeTypeAlias": "Customer_nodeType",
      "dataSourceName": "Customer_Table",
      "propertyMappings": [
        {
          "propertyName": "CustomerId",
          "sourceColumn": "Customer_Id"
        },
        {
          "propertyName": "FirstName",
          "sourceColumn": "First_name"
        },
        {
          "propertyName": "LastName",
          "sourceColumn": "Last_name"
        },
        {
          "propertyName": "Email",
          "sourceColumn": "Email"
        }
      ],
      "filter": {
        "and": [
          {
            "operator": "Contains",
            "columnName": "First_name",
            "value": "USA"
          },
          {
            "operator": "Contains",
            "columnName": "Last_name",
            "value": "A"
          }
        ]
      }
    },
    {
      "id": "Employee_f0f712c04818",
      "nodeTypeAlias": "Employee_nodeType",
      "dataSourceName": "Employee_Table",
      "propertyMappings": [
        {
          "propertyName": "EmployeeId",
          "sourceColumn": "Employee_Id"
        },
        {
          "propertyName": "FirstName",
          "sourceColumn": "First_Name"
        },
        {
          "propertyName": "LastName",
          "sourceColumn": "Last_Name"
        },
        {
          "propertyName": "Role",
          "sourceColumn": "Role"
        }
      ],
      "filter": {
        "operator": "AND",
        "filters": [
          {
            "operator": "Contains",
            "columnName": "First_name",
            "value": "USA"
          },
          {
            "operator": "Contains",
            "columnName": "Last_name",
            "value": "A"
          }
        ]
      }
    },
    {
      "id": "EmployeeCustomer_5b6cb156",
      "nodeTypeAlias": "EmployeeCustomer_nodeType",
      "dataSourceName": "Employee_Table",
      "propertyMappings": [
        {
          "propertyName": "EmployeeId",
          "sourceColumn": "Employee_Id"
        },
        {
          "propertyName": "FirstName",
          "sourceColumn": "First_Name"
        },
        {
          "propertyName": "LastName",
          "sourceColumn": "Last_Name"
        },
        {
          "propertyName": "Role",
          "sourceColumn": "Role"
        },
        {
          "propertyName": "Email",
          "sourceColumn": "Email"
        }
      ],
      "filter": {
        "operator": "Equal",
        "columnName": "Role",
        "value": "Manager"
      }
    },
    {
      "id": "Product_5b6cb156-c778-4fce-8606-f0f712c04818",
      "nodeTypeAlias": "Product_nodeType",
      "dataSourceName": "Product_Table",
      "propertyMappings": [
        {
          "propertyName": "CategoryId",
          "sourceColumn": "Category_Id"
        },
        {
          "propertyName": "ProductId",
          "sourceColumn": "Product_Id"
        },
        {
          "propertyName": "Name",
          "sourceColumn": "Name"
        },
        {
          "propertyName": "Price",
          "sourceColumn": "Price"
        },
        {
          "propertyName": "Cost",
          "sourceColumn": "Cost"
        }
      ],
      "filter": {
        "operator": "AND",
        "filters": [
          {
            "operator": "GreaterThan",
            "columnName": "Price",
            "value": 100
          },
          {
            "operator": "In",
            "columnName": "CategoryId",
            "value": ["Electronics", "Clothing", "Books"]
          }
        ]
      }
    }
  ],
  "edgeTables": [
    {
      "id": "CustomerPurchase_976cceac",
      "edgeTypeAlias": "CustomerPurchase_edgeType",
      "dataSourceName": "Order_Table",
      "sourceNodeKeyColumns": ["Customer_Id_FK"],
      "destinationNodeKeyColumns": ["Category_Id_FK", "Product_Id_FK"],
      "propertyMappings": [
        {
          "propertyName": "Quantity",
          "sourceColumn": "unit_price"
        },
        {
          "propertyName": "Date",
          "sourceColumn": "Date"
        }
      ],
      "filter": {
        "and": [
          {
            "operator": "Contains",
            "columnName": "Customer_Id_FK",
            "value": "USA"
          },
          {
            "operator": "Contains",
            "columnName": "Customer_Id_FK",
            "value": "A"
          }
        ]
      }
    },
    {
      "id": "EmployeePurchase_29be49f2",
      "edgeTypeAlias": "EmployeePurchase_edgeType",
      "dataSourceName": "Order_Table",
      "sourceNodeKeyColumns": ["Employee_Id_FK"],
      "destinationNodeKeyColumns": ["Category_Id_FK", "Product_Id_FK"],
      "propertyMappings": [
        {
          "propertyName": "Quantity",
          "sourceColumn": "unit_price"
        },
        {
          "propertyName": "Date",
          "sourceColumn": "Date"
        }
      ]
    },
    {
      "id": "EmployeeSold_2530ecef620c",
      "edgeTypeAlias": "Sold_edgeType",
      "dataSourceName": "Order_Table",
      "sourceNodeKeyColumns": ["Employee_Id_FK"],
      "destinationNodeKeyColumns": ["Category_Id_FK", "Product_Id_FK"],
      "propertyMappings": [
        {
          "propertyName": "CustomerId",
          "sourceColumn": "unit_price"
        },
        {
          "propertyName": "Date",
          "sourceColumn": "Date"
        },
        {
          "propertyName": "hasDiscount",
          "sourceColumn": "EmployeeDiscount"
        }
      ]
    }
  ]
}

Eksempel på graftype

{
  "schemaVersion": "1.0.0",
  "nodeTypes": [
    {
      "alias": "Customer_nodeType",
      "labels": ["Customer"],
      "primaryKeyProperties": ["CustomerId"],
      "properties": [
        {
          "name": "CustomerId",
          "type": "STRING"
        },
        {
          "name": "FirstName",
          "type": "STRING"
        },
        {
          "name": "LastName",
          "type": "STRING"
        },
        {
          "name": "Email",
          "type": "STRING"
        }
      ]
    },
    {
      "alias": "Employee_nodeType",
      "labels": ["Employee"],
      "primaryKeyProperties": ["EmployeeId"],
      "properties": [
        {
          "name": "EmployeeId",
          "type": "STRING"
        },
        {
          "name": "FirstName",
          "type": "STRING"
        },
        {
          "name": "LastName",
          "type": "STRING"
        },
        {
          "name": "Role",
          "type": "STRING"
        },
        {
          "name": "Email",
          "type": "STRING"
        }
      ]
    },
    {
      "alias": "EmployeeCustomer_nodeType",
      "labels": ["Customer", "Employee"],
      "primaryKeyProperties": ["EmployeeId"],
      "properties": [
        {
          "name": "EmployeeId",
          "type": "STRING"
        },
        {
          "name": "FirstName",
          "type": "STRING"
        },
        {
          "name": "LastName",
          "type": "STRING"
        },
        {
          "name": "Role",
          "type": "STRING"
        },
        {
          "name": "Email",
          "type": "STRING"
        }
      ]
    },
    {
      "alias": "Product_nodeType",
      "labels": ["Product"],
      "primaryKeyProperties": ["CategoryId", "ProductId"],
      "properties": [
        {
          "name": "CategoryId",
          "type": "INT"
        },
        {
          "name": "ProductId",
          "type": "STRING"
        },
        {
          "name": "Name",
          "type": "STRING"
        },
        {
          "name": "Price",
          "type": "FLOAT"
        },
        {
          "name": "Cost",
          "type": "FLOAT"
        }
      ]
    }
  ],
  "edgeTypes": [
    {
      "alias": "CustomerPurchase_edgeType",
      "labels": ["PURCHASED"],
      "sourceNodeType": {
        "alias": "Customer_nodeType"
      },
      "destinationNodeType": {
        "alias": "Product_nodeType"
      },
      "properties": [
        {
          "name": "Quantity",
          "type": "INT"
        },
        {
          "name": "Date",
          "type": "DATETIME"
        }
      ]
    },
    {
      "alias": "EmployeePurchase_edgeType",
      "labels": ["PURCHASED"],
      "sourceNodeType": {
        "alias": "EmployeeCustomer_nodeType"
      },
      "destinationNodeType": {
        "alias": "Product_nodeType"
      },
      "properties": [
        {
          "name": "Quantity",
          "type": "INT"
        },
        {
          "name": "Date",
          "type": "DATETIME"
        }
      ]
    },
    {
      "alias": "Sold_edgeType",
      "labels": ["Sold"],
      "sourceNodeType": {
        "alias": "Employee_nodeType"
      },
      "destinationNodeType": {
        "alias": "Product_nodeType"
      },
      "properties": [
        {
          "name": "CustomerId",
          "type": "STRING"
        },
        {
          "name": "Date",
          "type": "DATETIME"
        },
        {
          "name": "hasDiscount",
          "type": "BOOLEAN"
        }
      ]
    }
  ]
}

Eksempel på konfiguration af formatering

{
  "schemaVersion": "1.0.0",
  "modelLayout": {
    "positions": {
      "Customer_nodeType": {
        "x": 1,
        "y": 1
      },
      "Employee_nodeType": {
        "x": 2,
        "y": 3
      },
      "EmployeeCustomer_nodeType": {
        "x": 3,
        "y": 4
      },
      "Product_nodeType": {
        "x": 6,
        "y": 7
      }
    },
    "styles": {
      "Customer_nodeType": {
        "size": 30
      },
      "Employee_nodeType": {
        "size": 30
      },
      "EmployeeCustomer_nodeType": {
        "size": 30
      },
      "Product_nodeType": {
        "size": 30
      },
      "CustomerPurchase_edgeType": {
        "size": 30
      },
      "EmployeePurchase_edgeType": {
        "size": 30
      },
      "Sold_edgeType": {
        "size": 30
      }
    },
    "pan": {
      "x": 0,
      "y": 0
    },
    "zoomLevel": 1
  }
}