Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье представлена разбивка структуры определения для элементов модели Graph.
Части определения
В этой таблице перечислены части определения модели Графа.
| Путь к части определения | type | Обязательно | Description |
|---|---|---|---|
dataSources |
Источник данных[] | true | Массив источников данных |
graphDefinition |
GraphDefinition | true | Определение графа сопоставления данных |
graphType |
GraphType | true | Структура графа |
stylingConfiguration |
StylingConfiguration | true | Конфигурация стиля графа |
Источник данных
Описывает структуру источника данных.
| Имя | Тип | Description |
|---|---|---|
| имя | String | Имя источника данных |
| type | DeltaTable | Тип источника данных |
| properties | DataSourceProperties | Свойства источника данных |
DataSourceProperties
Свойства, необходимые типу источника данных. Для источников DeltaTable это путь к таблице.
| Имя | Тип | Description |
|---|---|---|
| путь | String | Путь к источнику данных |
GraphDefinition
Описывает определение графа сопоставления данных.
| Имя | Тип | Description |
|---|---|---|
| nodeTables | NodeTable[] | Массив определений сопоставления данных узла |
| edgeTables | EdgeTable[] | Массив определений сопоставления пограничных данных |
NodeTable
Описывает структуру определения сопоставления данных узла.
| Имя | Тип | Description |
|---|---|---|
| id | String | Идентификатор определения сопоставления данных узла |
| nodeTypeAlias | String | Псевдоним узла, как определено в графе |
| dataSourceName | String | Имя источника данных |
| propertyMappings | PropertyMapping[] | Массив определений сопоставления данных свойств |
EdgeTable
Описывает структуру определения сопоставления пограничных данных.
| Имя | Тип | Description |
|---|---|---|
| id | String | Идентификатор определения сопоставления пограничных данных |
| edgeTypeAlias | String | Псевдоним края, как определено в графе |
| dataSourceName | String | Имя источника данных |
| sourceNodeKeyColumns | String[] | Массив столбцов, сопоставленных с исходным узлом |
| targetNodeKeyColumns | String[] | Массив столбцов, сопоставленных с целевым узлом |
| propertyMappings | PropertyMapping[] | Массив определений сопоставления данных свойств |
PropertyMapping
Описывает структуру определения сопоставления данных свойств.
| Имя | Тип | Description |
|---|---|---|
| propertyName | String | Имя свойства |
| sourceColumn | String | Имя исходного столбца |
| фильтр | SingleFilter / GroupFilter | Определение фильтра |
SingleFilter
Описывает структуру одного фильтра.
| Имя | Тип | Description |
|---|---|---|
| operator | String | Имя оператора фильтра |
| columnName | String | Имя столбца для этого фильтра |
| value | Object | Значение сравнения. Поддерживает строки, число, dateTime и массивы этих значений. |
GroupFilter
Описывает структуру фильтра группы.
| Имя | Тип | Description |
|---|---|---|
| operator | String | Имя оператора фильтра |
| filters | SingleFilter[] / GroupFilter[] | Фильтры этого фильтра группы |
| и | SingleFilter[] / GroupFilter[] | Фильтры для логического И |
| или | SingleFilter[] / GroupFilter[] | Фильтры для логического ИЛИ |
GraphType
Описывает структуру графа.
| Имя | Тип | Description |
|---|---|---|
| nodeTypes | NodeType[] | Массив структур узлов |
| edgeTypes | EdgeType[] | Массив пограничных структур |
NodeType
Описывает структуру узла.
| Имя | Тип | Description |
|---|---|---|
| alias | String | Псевдоним |
| labels | String[] | Массив меток |
| primaryKeyProperties | String[] | Массив свойств первичного ключа |
| properties | Свойство[] | Массив свойств |
EdgeType
Описывает структуру края.
| Имя | Тип | Description |
|---|---|---|
| alias | String | Псевдоним |
| labels | String[] | Массив меток |
| sourceNodeType | NodeTypeReference | Структура исходного узла |
| destinationNodeType | NodeTypeReference | Структура конечного узла |
| properties | Свойство[] | Массив свойств |
Недвижимость
Описывает структуру свойства.
| Имя | Тип | Description |
|---|---|---|
| имя | String | Имя свойства |
| type | String | Тип свойства |
NodeTypeReference
Описывает структуру NodeTypeReference.
| Имя | Тип | Description |
|---|---|---|
| alias | String | Псевдоним узла, на который ссылается ссылка |
StylingConfiguration
Описывает структуру конфигурации стилей.
| Имя | Тип | Description |
|---|---|---|
| modelLayout | ModelLayout | Конфигурация стиля и макета для модели графа |
ModelLayout
Описывает конфигурацию стилей модели.
| Имя | Тип | Description |
|---|---|---|
| Позиции | Строка словаря<, позиция> | Позиции узлов |
| Стили | Строка словаря<, ModelStyle> | Стили модели графа |
| сковорода | Занимаемая должность | Сдвига холст модели |
| zoomLevel | Целое число | Уровень масштабирования холста модели |
Занимаемая должность
Описывает 2D-позицию.
| Имя | Тип | Description |
|---|---|---|
| x | Целое число | Значение координат x |
| и | Целое число | Значение координаты y |
ModelStyle
Описывает стиль элемента модели.
| Имя | Тип | Description |
|---|---|---|
| size | Целое число | Размер элемента модели |
Пример источников данных
{
"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"
}
}
]
}
Пример определения графа
{
"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"
}
]
}
]
}
Пример типа Графа
{
"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"
}
]
}
]
}
Пример конфигурации стилей
{
"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
}
}