Subscribe

UiPath Installation and Upgrade

The UiPath Installation and Upgrade Guide

Enabling Table Grouping

For large deployments where the number of processes and queues in production approaches the per tenant limit, the number of tables created in the Insights data cube can impact performance. To manage the custom tables Insights creates for a tenant the Insights Admin Custom Table Management tool can be used to remove unneeded tables.

Table Grouping can be used to combine data from multiple Queues or Processes into a single custom table. A grouped custom table only counts as a single table against the custom table limit, regardless of how many Queues or Process are included in the group. If grouping is used on a Queue or Process which already has a custom table enabled, then the previous custom table can be cleaned up via the Clean Up Tables Tab after the grouping is applied. If the previous table is not cleaned up it will still count towards the table limit.

  1. Using the UiPath.InsightsAdminTool first used to enable the tenant(s), select the Group Data Tables feature.
  2. Select the tenant(s) for which to enable table grouping.
  3. Provide the Grouping Definition File.

Grouping Definition File

You must provide a .json file with your desired table groupings when executing the UiPath.InsightsAdminTool, using the following schema definition:

{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/root.json",
  "type": "object",
  "title": "The Root Schema",
  "required": [
    "groups"
  ],
  "properties": {
    "groups": {
      "$id": "#/properties/groups",
      "type": "array",
      "title": "The Groups Schema",
      "items": {
        "$id": "#/properties/groups/items",
        "type": "object",
        "title": "The Items Schema",
        "required": [
          "tenantId",
          "elasticubeNameTemplate",
          "groupName",
          "dataSource"
        ],
        "properties": {
          "tenantId": {
            "$id": "#/properties/groups/items/properties/tenantId",
            "type": "integer",
            "title": "The Tenantid Schema",
            "default": 0,
            "examples": [
              3
            ]
          },
          "elasticubeNameTemplate": {
            "$id": "#/properties/groups/items/properties/elasticubeNameTemplate",
            "type": "string",
            "title": "The Elasticubenametemplate Schema",
            "default": "",
            "examples": [
              "{TENANT}-Cube"
            ],
            "pattern": "^{TENANT}-(.*)$"
          },
          "groupName": {
            "$id": "#/properties/groups/items/properties/groupName",
            "type": "string",
            "title": "The Groupname Schema",
            "default": "",
            "examples": [
              "Group_1"
            ],
            "pattern": "^(.*)$"
          },
          "dataSource": {
            "$id": "#/properties/groups/items/properties/dataSource",
            "type": "string",
            "title": "The Datasource Schema",
            "default": "",
            "enum": [
              "Process",
              "Queue"
            ],
            "pattern": "^(.*)$"
          },
          "likeGrouping": {
            "$id": "#/properties/groups/items/properties/likeGrouping",
            "type": "object",
            "title": "The Likegrouping Schema",
            "required": [
              "likeClause"
            ],
            "properties": {
              "likeClause": {
                "$id": "#/properties/groups/items/properties/likeGrouping/properties/likeClause",
                "type": "string",
                "title": "The Likeclause Schema",
                "default": "",
                "examples": [
                  "%1",
                  "test",
                  "%"
                ],
                "pattern": "^(.*)$"
              },
              "excludeLikeClause": {
                "$id": "#/properties/groups/items/properties/likeGrouping/properties/excludeLikeClause",
                "type": "string",
                "title": "The Excludelikeclause Schema",
                "default": "",
                "examples": [
                  "%1",
                  "test",
                  "%"
                ],
                "pattern": "^(.*)$"
              }
            }
          },
          "inGrouping": {
            "$id": "#/properties/groups/items/properties/likeGrouping",
            "type": "object",
            "title": "The Ingrouping Schema",
            "required": [
              "elements"
            ],
            "properties": {
              "elements": {
                "$id": "#/properties/groups/items/properties/likeGrouping/properties/likeClause",
                "type": "array",
                "title": "The Elements Schema",
                "default": "",
                "pattern": "^(.*)$"
              }
            }
          }
        }
      }
    }
  }
}

Where:

  • groupName - The name that the table will have in the Insights cube. A maximum of 75 groups may be created.
  • tenantId - The Id of the tenant the grouping is applied to.
  • dataSource - Whether the data source is a Process or Queue.
  • Optional: elasticcubeNameTemplate - The name of the Insights cube, default {TENANT}-Cube. Specify this if the grouped tables should go to a different cube. For example, {TENANT}-DocCube. The tenant name will be substituted when the table is created, so if the Default tenant is being targeted, the table would be added to Default-DocCube.

For example:

{
  "groups": [
    {
      "groupName": "Group_1",
      "tenantId": 3,
      "dataSource": "Process",
      "likeGrouping": {
        "likeClause": "%1"
      }
    },
    {
      "groupName": "Group_3",
      "tenantId": 3,
      "dataSource": "Process",
      "likeGrouping": {
        "likeClause": "%3",
        "excludeLikeClause": "%Environment_1%"
      }
    },
    {
      "groupName": "Doc_1+2",
      "tenantId": 3,
      "elasticubeNameTemplate": "{TENANT}-DocCube",
      "dataSource": "Queue",
      "inGrouping": {
        "elements": ["Doc", "Doc2"]
      }
    },
    {
      "groupName": "TestQueues",
      "tenantId": 3,
      "elasticubeNameTemplate": "{TENANT}-Test-Cube",
      "dataSource": "Queue",
      "likeGrouping": {
        "likeClause": "%Test"
      }
    }
  ]
}

🚧

Important

  1. The grouping definition file does not support more than one value for likeClause. However, you can pass multiple comma-separated values for excludeLikeClause.
  2. Insights cannot support tables with more than 40 columns, so you should not make groups where the number of custom fields per table will be greater than this number.
  3. When a new process or queue is added in Orchestrator and executed, if it matches an existing group name, the process or queue will be added to the grouping and will automatically be included in Insights.
  4. If a process or queue matches multiple groupings, it will be included in every grouping that it matches.
  5. When a new grouping file is uploaded, it deletes the previous groupings.

Updated 4 months ago


Enabling Table Grouping


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.