En este artículo se proporciona un desglose de la estructura de los elementos de definición del generador de gemelos digitales.
Los elementos de DigitalTwinBuilder admiten el formato JSON.
Elementos de definición
En esta tabla se enumeran los elementos de definición del generador de gemelos digitales.
Ruta de acceso del elemento de definición |
Tipo |
Obligatorio |
Descripción |
definition.json |
DefinitionDetails (JSON) |
cierto |
Describe el LakehouseId asociado al elemento. |
.platform |
PlatformDetails (JSON) |
falso |
Describe los detalles comunes del elemento. |
EntityTypes |
Directorio |
falso |
Contiene una lista de archivos de tipo entidad que forman parte del elemento. Cada archivo de tipo de entidad (JSON) describe los detalles del tipo de entidad. |
EntityTypeRelationships |
Directorio |
falso |
Contiene una lista de archivos de relación de tipo de entidad que forman parte del elemento. Cada archivo de relación de tipo de entidad (JSON) describe los detalles de la relación de tipo de entidad. |
ContextualizationOperations |
Directorio |
falso |
Contiene una lista de archivos de operación de contextualización que forman parte del elemento. Cada archivo de operación de contextualización (JSON) describe los detalles de la operación de contextualización. |
MappingOperations |
Directorio |
falso |
Contiene una lista de archivos de operación de asignación que forman parte del elemento. Cada archivo de operación de asignación (JSON) describe los detalles de la operación de asignación. |
Ejemplo de definición
{
"parts": [
{
"path": "definition.json",
"payload": "ew0KICAibGFrZWhvdXNlSWQiOiAiYjliNWQzNmYtNDQ0NS00MDNiLWFjODctMDE2YjFjZDIwMjExIg0KfQ==",
"payloadType": "InlineBase64"
},
{
"path": ".platform",
"payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=",
"payloadType": "InlineBase64"
}
]
}
Ejemplo de definición con partes de definición opcionales
{
"parts": [
{
"path": "definition.json",
"payload": "eyAKICAiTGFrZWhvdXNlSWQiOiAiMjIzMDE0NGItZjQ4Ni04YjZmLTQ5NmMtM2U4ZTI4NzZhYTBkIiwgICAKfSA=",
"payloadType": "InlineBase64"
},
{
"path": ".platform",
"payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=",
"payloadType": "InlineBase64"
},
{
"path": "EntityTypes/139950578358348.json",
"payload": "ew0KICAiSWQiOiAiMTM5OTUwNTc4MzU4MzQ4IiwNCiAgIk5hbWVzcGFjZSI6ICJ1c2VydHlwZXMiLA0KICAiQmFzZUVudGl0eVR5cGVJZCI6ICIyIiwNCiAgIk5hbWUiOiAiRXF1aXBtZW50MSIsDQogICJQcm9wZXJ0aWVzIjogWw0KICAgIHsNCiAgICAgICJJZCI6ICI5MTcxODAxMTAzMjkyNjk0NTI4IiwNCiAgICAgICJOYW1lIjogIkRpc3BsYXlOYW1lIiwNCiAgICAgICJWYWx1ZVR5cGUiOiAiU3RyaW5nIg0KICAgIH0sDQogICAgew0KICAgICAgIklkIjogIjkxNzE4MDExMDMyOTI2OTQ1MjkiLA0KICAgICAgIk5hbWUiOiAiU2VyaWFsTnVtYmVyIiwNCiAgICAgICJWYWx1ZVR5cGUiOiAiU3RyaW5nIg0KICAgIH0sDQogICAgew0KICAgICAgIklkIjogIjkxNzE4MDExMDMyOTI2OTQ1MzAiLA0KICAgICAgIk5hbWUiOiAiTWFudWZhY3R1cmVyIiwNCiAgICAgICJWYWx1ZVR5cGUiOiAiU3RyaW5nIg0KICAgIH0NCiAgXSwNCiAgIlRpbWVzZXJpZXNQcm9wZXJ0aWVzIjogW10NCn0=",
"payloadType": "InlineBase64"
},
{
"path": "EntityTypes/31864156952988.json",
"payload": "ew0KICAiSWQiOiAiMzE4NjQxNTY5NTI5ODgiLA0KICAiTmFtZXNwYWNlIjogInVzZXJ0eXBlcyIsDQogICJCYXNlRW50aXR5VHlwZUlkIjogIjIiLA0KICAiTmFtZSI6ICJFcXVpcG1lbnQyIiwNCiAgIlByb3BlcnRpZXMiOiBbDQogICAgew0KICAgICAgIklkIjogIjIwODgyNDkzOTAwNzEwMjE1NjgiLA0KICAgICAgIk5hbWUiOiAiRGlzcGxheU5hbWUiLA0KICAgICAgIlZhbHVlVHlwZSI6ICJTdHJpbmciDQogICAgfSwNCiAgICB7DQogICAgICAiSWQiOiAiMjA4ODI0OTM5MDA3MTAyMTU2OSIsDQogICAgICAiTmFtZSI6ICJTZXJpYWxOdW1iZXIiLA0KICAgICAgIlZhbHVlVHlwZSI6ICJTdHJpbmciDQogICAgfSwNCiAgICB7DQogICAgICAiSWQiOiAiMjA4ODI0OTM5MDA3MTAyMTU3MCIsDQogICAgICAiTmFtZSI6ICJNYW51ZmFjdHVyZXIiLA0KICAgICAgIlZhbHVlVHlwZSI6ICJTdHJpbmciDQogICAgfQ0KICBdLA0KICAiVGltZXNlcmllc1Byb3BlcnRpZXMiOiBbXQ0KfQ==",
"payloadType": "InlineBase64"
},
{
"path": "EntityTypeRelationships/95745415684647936.json",
"payload": "ew0KICAiSWQiOiAiOTU3NDU0MTU2ODQ2NDc5MzYiLA0KICAiTmFtZXNwYWNlIjogInVzZXJ0eXBlcyIsDQogICJSZWxhdGlvbnNoaXBDYXJkaW5hbGl0eSI6ICJNYW55VG9PbmUiLA0KICAiTmFtZSI6ICJjb250YWlucyIsDQogICJGaXJzdEVudGl0eVR5cGVJZCI6ICIzMTg2NDE1Njk1Mjk4OCIsDQogICJTZWNvbmRFbnRpdHlUeXBlSWQiOiAiMTM5OTUwNTc4MzU4MzQ4Ig0KfQ==",
"payloadType": "InlineBase64"
},
{
"path": "ContextualizationOperations/30f6380c-9643-4284-a5bd-f100ac08866f.json",
"payload": "ewogICJPcGVyYXRpb25JZCI6ICIzMGY2MzgwYy05NjQzLTQyODQtYTViZC1mMTAwYWMwODg2NmYiLAogICJEaXNwbGF5TmFtZSI6ICJFcXVpcG1lbnQyX2NvbnRhaW5zX0VxdWlwbWVudDFfQ29udGV4dHVhbGl6YXRpb24iLAogICJPcGVyYXRpb25UeXBlIjogIkNvbnRleHR1YWxpemF0aW9uIiwKICAiRW50aXR5VHlwZVJlbGF0aW9uc2hpcElkIjogIjk1NzQ1NDE1Njg0NjQ3OTM2IiwKICAiSm9pbkNvbHVtbnMiOiB7CiAgICAiRmlyc3RDb2x1bW4iOiB7CiAgICAgICJFbnRpdHlJZCI6ICIzMTg2NDE1Njk1Mjk4OCIsCiAgICAgICJBdHRyaWJ1dGVOYW1lIjogIlNlcmlhbE51bWJlciIKICAgIH0sCiAgICAiU2Vjb25kQ29sdW1uIjogewogICAgICAiRW50aXR5SWQiOiAiMTM5OTUwNTc4MzU4MzQ4IiwKICAgICAgIkF0dHJpYnV0ZU5hbWUiOiAiU2VyaWFsTnVtYmVyIgogICAgfQogIH0KfQ==",
"payloadType": "InlineBase64"
},
{
"path": "MappingOperations/ce9d0ef9-d8f6-4391-9e37-8bdb91b1fc16.json",
"payload": "ewogICJPcGVyYXRpb25JZCI6ICJjZTlkMGVmOS1kOGY2LTQzOTEtOWUzNy04YmRiOTFiMWZjMTYiLAogICJEaXNwbGF5TmFtZSI6ICJFcXVpcG1lbnQxX2VudGl0eXR5cGUiLAogICJPcGVyYXRpb25UeXBlIjogIk1hcHBpbmciLAogICJFbnRpdHlUeXBlSWQiOiAiMTM5OTUwNTc4MzU4MzQ4IiwKICAiTWFwcGluZ09wZXJhdGlvblByb3BlcnRpZXMiOiB7CiAgICAiTWFwcGluZ1R5cGUiOiAiTm9uVGltZVNlcmllcyIsCiAgICAiTWFwcGVkUHJvcGVydGllcyI6IFsKICAgICAgewogICAgICAgICJTb3VyY2VDb2x1bW4iOiAiTmFtZSIsCiAgICAgICAgIkVudGl0eVR5cGVQcm9wZXJ0eU5hbWUiOiAiRGlzcGxheU5hbWUiCiAgICAgIH0KICAgIF0sCiAgICAiUHJvY2Vzc2luZ1R5cGUiOiAiSXRlcmF0aXZlIiwKICAgICJFbnRpdHlJbnN0YW5jZUlkU2NoZW1hIjogWwogICAgICAiSWQiCiAgICBdLAogICAgIlRpbWVzZXJpZXNFbnRpdHlMaW5rUHJvcGVydGllcyI6IG51bGwKICB9LAogICJTb3VyY2VUYWJsZVByb3BlcnRpZXMiOiB7CiAgICAiU291cmNlVHlwZSI6ICJMYWtlaG91c2VUYWJsZXMiLAogICAgIldvcmtzcGFjZUlkIjogImFlMzU5YmI4LTJmZmEtNGUzZi1hMGI1LTJmOGJjZWVmNmQyOSIsCiAgICAiSXRlbUlkIjogIjU5ZTViMDk4LWYzZDMtNDViNi1hY2RkLWQ3ZjRjOTZjNmNjZCIsCiAgICAiU291cmNlVGFibGVOYW1lIjogImVudGl0eXR5cGUiLAogICAgIlNvdXJjZVNjaGVtYSI6IG51bGwKICB9LAogICJGaWx0ZXJzIjogbnVsbAp9",
"payloadType": "InlineBase64"
}
]
}
DefinitionDetails
Propiedad |
Tipo |
Obligatorio |
Descripción |
LakehouseId |
GUID |
cierto |
Identificador de elemento del lago principal que existe en el área de trabajo. |
El lakehouse no se puede eliminar si DigitalTwinBuilder todavía existe.
Ejemplo de archivo de definición
{
"LakehouseId": "2230144b-f486-8b6f-496c-3e8e2876aa0d"
}
El elemento de la plataforma es un archivo que contiene la información de metadatos del entorno.
Directorio EntityTypes: archivo EntityType
El nombre del archivo EntityType es el identificador de tipo de entidad.
Propiedad |
Tipo |
Obligatorio |
Descripción |
Id |
BigInt |
cierto |
Identificador único del tipo de entidad. Este valor siempre es mayor que 10 000. |
Namespace |
cuerda / cadena |
cierto |
Espacio de nombres del tipo de entidad. Valor permitido: usertypes . |
BaseEntityTypeId |
BigInt |
cierto |
Identificador único del tipo de entidad base. |
Name |
cuerda / cadena |
cierto |
Nombre del tipo de entidad. |
Properties |
EntityTypeProperty[] |
cierto |
Lista de propiedades de tipo de entidad. |
TimeseriesProperties |
EntityTypeProperty[] |
cierto |
Lista de propiedades de tipo de entidad. |
EntityTypeProperty
Propiedad |
Tipo |
Obligatorio |
Descripción |
Id |
largo |
cierto |
Identificador único de la propiedad de tipo de entidad. |
Name |
cuerda / cadena |
cierto |
Nombre de la propiedad de tipo de entidad. |
ValueType |
cuerda / cadena |
cierto |
Describe el tipo de valor de la propiedad de tipo de entidad. Valores permitidos: BigInt , Float , Double , String , Bool , DateTime . |
Ejemplo de archivo EntityType
{
"Id": "139950578358348",
"Namespace": "usertypes",
"BaseEntityTypeId": "2",
"Name": "Equipment1",
"Properties": [
{ "Id": "9171801103292694528", "Name": "DisplayName", "ValueType": "String" },
{ "Id": "9171801103292694529", "Name": "SerialNumber", "ValueType": "String" },
{ "Id": "9171801103292694530", "Name": "Manufacturer", "ValueType": "String" }
],
"TimeseriesProperties": []
}
Directorio EntityTypeRelationships: archivo EntityTypeRelationship
El nombre del archivo EntityTypeRelationship es el identificador de relación de tipo de entidad.
Propiedad |
Tipo |
Obligatorio |
Descripción |
Id |
BigInt |
cierto |
Identificador único de la relación de tipo de entidad. Su valor siempre es mayor que 10 000. |
Namespace |
cuerda / cadena |
cierto |
Espacio de nombres de la relación de tipo de entidad. Valor permitido: usertypes . |
RelationshipCardinality |
BigInt |
cierto |
Cardinalidad de relación de la relación de tipo de entidad. Valores permitidos: ManyToOne , OneToMany . |
Name |
cuerda / cadena |
cierto |
Nombre de la relación de tipo de entidad. |
FirstEntityTypeId |
BigInt |
cierto |
Identificador único del primer tipo de entidad que existe en el área de trabajo. |
SecondEntityTypeId |
BigInt |
cierto |
Identificador único del segundo tipo de entidad que existe en el área de trabajo. |
Ejemplo de archivo EntityTypeRelationship
{
"Id": "95745415684647936",
"Namespace": "usertypes",
"RelationshipCardinality": "ManyToOne",
"Name": "contains",
"FirstEntityTypeId": "31864156952988",
"SecondEntityTypeId": "139950578358348"
}
ContextualizationOperations directory: ContextualizationOperation file
El nombre del archivo ContextualizationOperation es el identificador de la operación de contextualización. Una contextualizaciónOperation se puede ejecutar mediante un artefacto DigitalTwinBuilderFlow .
Propiedad |
Tipo |
Obligatorio |
Descripción |
OperationId |
GUID |
cierto |
Identificador único de la operación de contextualización. |
DisplayName |
cuerda / cadena |
cierto |
Nombre para mostrar de la operación de contextualización. |
OperationType |
cuerda / cadena |
cierto |
Tipo de operación. Valor permitido: Contextualization . |
EntityTypeRelationshipId |
cuerda / cadena |
cierto |
Identificador único de la relación de tipo de entidad que existe en el área de trabajo. |
JoinColumns |
JoinColumnsConfiguration |
cierto |
Detalles de combinación de tipos de entidad. |
JoinColumnsConfiguration
Propiedad |
Tipo |
Obligatorio |
Descripción |
FirstColumn |
JoinColumn |
cierto |
Detalles de combinación del primer tipo de entidad que existe en el área de trabajo. |
SecondColumn |
JoinColumn |
cierto |
Detalles de combinación del segundo tipo de entidad que existe en el área de trabajo. |
JoinColumn
Propiedad |
Tipo |
Obligatorio |
Descripción |
EntityId |
BigInt |
cierto |
Identificador único del tipo de entidad. |
AttributeName |
cuerda / cadena |
cierto |
Nombre de atributo del tipo de entidad. |
Ejemplo de archivo de operación de contextualización
{
"OperationId": "30f6380c-9643-4284-a5bd-f100ac08866f",
"DisplayName": "Equipment2_contains_Equipment1_Contextualization",
"OperationType": "Contextualization",
"EntityTypeRelationshipId": "95745415684647936",
"JoinColumns": {
"FirstColumn": {
"EntityId": "31864156952988",
"AttributeName": "SerialNumber"
},
"SecondColumn": {
"EntityId": "139950578358348",
"AttributeName": "SerialNumber"
}
}
}
Directorio MappingOperations: Archivo MappingOperation
El nombre del archivo MappingOperation es el identificador de la operación de asignación. Una mappingOperation se puede ejecutar mediante un artefacto DigitalTwinBuilderFlow .
Propiedad |
Tipo |
Obligatorio |
Descripción |
OperationId |
GUID |
cierto |
Identificador único de la operación de asignación. |
DisplayName |
cuerda / cadena |
cierto |
Nombre para mostrar de la operación de asignación. |
OperationType |
cuerda / cadena |
cierto |
Tipo de operación. Valor permitido: Mapping . |
EntityTypeId |
cuerda / cadena |
cierto |
Identificador único del tipo de entidad que existe en el área de trabajo. |
MappingOperationProperties |
MappingOperationProperties |
cierto |
Modelo que contiene las propiedades de una operación de asignación. |
SourceTableProperties |
SourceTableProperties |
cierto |
Propiedades de la tabla de origen. |
Filters |
FilterOperationNode |
cierto |
Filtrar objeto usado para filtrar los datos de origen de la tabla. Valores permitidos: FilterOperationNode puede ser NULL si no hay ningún filtro que se aplique o, de lo contrario, puede ser comparisonFilterOperationNode o LogicalFilterOperationNode. |
MappingOperationProperties
Propiedad |
Tipo |
Obligatorio |
Descripción |
MappingType |
cuerda / cadena |
cierto |
Valores permitidos: non-timeseries , timeseries . |
MappedProperties |
SourceColumnDefinition[] |
cierto |
Asignaciones de columnas de la tabla de origen a la tabla de destino. |
ProcessingType |
cuerda / cadena |
cierto |
Indica el tipo de procesamiento de la operación de asignación. Valores permitidos: iterative , incremental . |
EntityInstanceIdSchema |
cadena[] |
cierto |
Se aplica a las propiedades no timeseries. Lista de cadenas que representan las columnas de origen que componen el identificador único de una entidad. |
TimeseriesEntityLinkProperties |
TimeseriesEntityLinkProperties |
cierto |
Se aplica a las propiedades de serie temporal. Propiedad de columna de origen usada para vincular la entidad a los datos de serie temporal. |
SourceColumnDefinition
Propiedad |
Tipo |
Obligatorio |
Descripción |
SourceColumn |
cuerda / cadena |
cierto |
El nombre de la columna de origen. |
EntityTypePropertyName |
cuerda / cadena |
cierto |
Nombre personalizado asignado por el cliente a la propiedad de tipo de entidad. |
TimeseriesEntityLinkProperties
Propiedad |
Tipo |
Obligatorio |
Descripción |
EntityProperty |
cuerda / cadena |
cierto |
Propiedad de entidad utilizada para vincular la entidad a los datos de timeseries. |
TimeseriesProperty |
cuerda / cadena |
cierto |
Columna de datos de timeseries que coinciden con los valores de la propiedad de entidad. |
SourceTableProperties
Propiedad |
Tipo |
Obligatorio |
Descripción |
SourceType |
cuerda / cadena |
cierto |
Valor permitido: LakehouseTables . |
WorkspaceId |
GUID |
cierto |
Área de trabajo donde se encuentra el lago del cliente. |
ItemId |
GUID |
cierto |
ArtifactId del lakehouse del cliente. |
SourceTableName |
cuerda / cadena |
cierto |
Nombre de la tabla de datos ingerida. |
SourceSchema |
cuerda / cadena |
cierto |
Esquema de la tabla de datos ingerida. |
ComparisonFilterOperationNode
Propiedad |
Tipo |
Obligatorio |
Descripción |
type |
cuerda / cadena |
cierto |
Tipo de operación de filtro. Valor permitido: comparison . |
SourceColumn |
cuerda / cadena |
cierto |
Nombre de columna de origen de los datos que se filtran. |
ComparisonOperatorKind |
cuerda / cadena |
cierto |
Representa el tipo de operador de comparación del nodo. Valores permitidos: Ge , Gt , Le , Lt , Eq , NotEq , Contains , NotContains , IsNull , IsNotNull . |
Value |
cuerda / cadena |
cierto |
Valor usado para filtrar. |
ValueType |
cuerda / cadena |
cierto |
Tipo del valor usado para filtrar. Valores permitidos: BigInt , Float , Double , String , Bool , DateTime . |
LogicalFilterOperationNode
Propiedad |
Tipo |
Obligatorio |
Descripción |
type |
cuerda / cadena |
cierto |
Tipo de operación de filtro. Valor permitido: logical . |
LogicalOperatorKind |
cuerda / cadena |
cierto |
Representa el tipo de operador lógico del nodo. Valores permitidos: And , Or . |
FilterOperations |
FilterOperationNode[] |
cierto |
Filtrar las operaciones usadas por el operador lógico. |
Ejemplo de archivo MappingOperations
{
"OperationId": "ce9d0ef9-d8f6-4391-9e37-8bdb91b1fc16",
"DisplayName": "Equipment1_entitytype",
"OperationType": "Mapping",
"EntityTypeId": "139950578358348",
"MappingOperationProperties": {
"MappingType": "NonTimeSeries",
"MappedProperties": [
{
"SourceColumn": "Name",
"EntityTypePropertyName": "DisplayName"
}
],
"ProcessingType": "Iterative",
"EntityInstanceIdSchema": ["Id"],
"TimeseriesEntityLinkProperties": null
},
"SourceTableProperties": {
"SourceType": "LakehouseTables",
"WorkspaceId": "ae359bb8-2ffa-4e3f-a0b5-2f8bceef6d29",
"ItemId": "59e5b098-f3d3-45b6-acdd-d7f4c96c6ccd",
"SourceTableName": "entitytype",
"SourceSchema": null
},
"Filters": {
"type": "comparison",
"SourceColumn": "Name",
"ComparisonOperatorKind": "Contains",
"Value": "abc",
"ValueType": "String"
}
}