Grafmodelldefinisjon

Denne artikkelen inneholder en oversikt over definisjonsstrukturen for diagrammodellelementer.

Definisjonsdeler

Denne tabellen viser definisjonsdelene for grafmodell.

Definisjonsdelbane type Obligatorisk Description
dataSources DataSource[] sann Matrisen med datakilder
graphDefinition GraphDefinition sann Datatilordningsgrafdefinisjonen
graphType GraphType sann Grafstrukturen
stylingConfiguration StylingConfiguration sann Konfigurasjonen for grafstil

DataSource

Beskriver strukturen til datakilden.

Navn Type Description
navn Streng Navnet på datakilden
type "DeltaTable" Datakildetypen
Egenskaper DataSourceProperties Datakildeegenskapene

DataSourceProperties

Egenskapene som kreves av datakildetypen. For DeltaTable-kilder inkluderer dette tabellbanen.

Navn Type Description
bane Streng Banen til datakilden

GraphDefinition

Beskriver datatilordningsgrafdefinisjonen.

Navn Type Description
nodeTables NodeTable[] Matrisen med definisjoner for nodedatatilordning
edgeTables EdgeTable[] Matrisen av definisjoner for tilordning av kantdata

NodeTable

Beskriver strukturen for definisjon av nodedatatilordning.

Navn Type Description
id Streng ID for definisjonen for nodedatatilordning
nodeTypeAlias Streng Alias for noden som definert i grafen
dataSourceName Streng Navnet på datakilden
propertyMappings PropertyMapping[] Matrisen med definisjoner for egenskapsdatatilordning

EdgeTable

Beskriver strukturen i definisjon av tilordning av kantdata.

Navn Type Description
id Streng ID for definisjonen for tilordning av edge-data
edgeTypeAlias Streng Alias for kanten som definert i grafen
dataSourceName Streng Navnet på datakilden
sourceNodeKeyColumns String[] Matrisen med kolonner som tilordnes kildenoden
targetNodeKeyColumns String[] Matrisen med kolonner som tilordnes målnoden
propertyMappings PropertyMapping[] Matrisen med definisjoner for egenskapsdatatilordning

PropertyMapping

Beskriver strukturen for definisjon av egenskapsdatatilordning.

Navn Type Description
propertyName Streng Navnet på egenskapen
sourceColumn Streng Navnet på kildekolonnen
filter SingleFilter / GroupFilter Filterdefinisjonen

SingleFilter

Beskriver strukturen til ett enkelt filter.

Navn Type Description
operator Streng Operatornavnet for filteret
columnName Streng Kolonnenavnet for dette filteret
verdi Objekt Sammenligningsverdien. Støtter strenger, tall, dateTime og matriser for disse verdiene.

GroupFilter

Beskriver strukturen til et gruppefilter.

Navn Type Description
operator Streng Operatornavnet for filteret
Filtre SingleFilter[] / GroupFilter[] Filtrene for dette gruppefilteret
og SingleFilter[] / GroupFilter[] Filtrene for logisk OG
eller SingleFilter[] / GroupFilter[] Filtrene for logisk ELLER

GraphType

Beskriver strukturen til en graf.

Navn Type Description
nodeTypes NodeType[] Matrisen av nodestrukturer
edgeTypes EdgeType[] Matrisen av kantstrukturer

NodeType

Beskriver strukturen til en node.

Navn Type Description
alias Streng Aliaset
Etiketter String[] Matrisen med etiketter
primaryKeyProperties String[] Matrisen med primærnøkkelegenskaper
Egenskaper Egenskap[] Matrisen med egenskaper

EdgeType

Beskriver strukturen til en kant.

Navn Type Description
alias Streng Aliaset
Etiketter String[] Matrisen med etiketter
sourceNodeType NodeTypeReference Kildenodestrukturen
destinationNodeType NodeTypeReference Målnodestrukturen
Egenskaper Egenskap[] Matrisen med egenskaper

Property

Beskriver strukturen til en egenskap.

Navn Type Description
navn Streng Navnet på egenskapen
type Streng Egenskapstypen

NodeTypeReference

Beskriver strukturen til en NodeTypeReference.

Navn Type Description
alias Streng Aliaset for den refererte noden

StylingConfiguration

Beskriver strukturen i stilkonfigurasjonen.

Navn Type Description
modelLayout ModelLayout Styling- og oppsettkonfigurasjonen for grafmodellen

ModelLayout

Beskriver konfigurasjonen av modellstiler.

Navn Type Description
Posisjoner Ordlistestreng<, plassering> Plasseringen av noder
Stiler Ordlistestreng<, ModelStyle> Stilene til grafmodellen
panorering Posisjon Panorering av modelllerret
zoomLevel Integer Zoomnivået for modelllerretet

Posisjon

Beskriver en 2D-posisjon.

Navn Type Description
x Integer X-koordinatverdien
y Integer Y-koordinatverdien

ModelStyle

Beskriver stilen til et modellelement.

Navn Type Description
størrelse Integer Størrelsen på et modellelement

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å grafdefinisjon

{
  "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å stylingkonfigurasjon

{
  "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
  }
}