Skip to main content

Data Enhancers

Enhancers can augment the data provided by a Data Source by introducing additional columns. Those additional columns can be used as if they were provided by the datasource itself; they can be used for filter scripts, for dynamic columns or for mapping them directly to Txture properties. The actual data added (and where this data is coming from) depends on the Enhancer.

Configuring an Enhancer

Enhancers are configured in the Transformation section of an importer and provide the following functionality:

  1. Resolve technologies: to normalize and categorize technologies, based on Txture's Taxonomy.
  2. Resolve product instances: to retrieve additional instance specifications (e.g. RAM, CPU cores, ...) from the Taxonomy.

Technology Enhancer

The Technology Enhancer is aimed mostly at cloud migration use cases, but is also useful for general technology management. It requires a target column as its configuration. The cell values in the target column will be collected and sent to the Txture Taxonomy, where they will be matched against the catalogue of known technologies. The result are three additional columns (per target column):

  • targetColumnName.technologyName: The normalized and cleaned technology name which is used in the Txture Taxonomy. This column is useful if you would like to have normalized technology names e.g. for general technology management. When mapping the technology property of an asset, we recommend to use this column.

  • targetColumnName.isRelevant: Boolean value that indicates if the technology is known to be relevant for cloud migrations or not. For example, Apache Tomcat is a relevant technology, but Notepad is not. This column is intended to be used in the filter script in order to reduce the incoming rows only to the relevant ones.

  • targetColumnName.type: The categorization of the technology according to the Txture Taxonomy. This additional column is useful if you want to restrict the imported data to certain technology types, e.g. only databases.

The screenshot below shows the "transformed preview" after applying the Technology Enhancer to the original "Technology" column, with added columns highlighted in orange:

Product Instance Enhancer

The Product Instance Enhancer retrieves technical specifications of product instances from the Txture Taxonomy. Therefore, the cell values in the target column and some additional context (provider name, product name, operating system, region name, high availability, license) are collected and sent to the Taxonomy, where they are matched against the catalogue of known product instances. The result is X additional columns, some of which may be null as the properties differ depending on the asset type:

  • targetColumnName.txtureId: The unique identifier assigned by the Taxonomy to the matched product instance (String).

  • targetColumnName.taxonomyId: The taxonomy identifier associated with the product instance in the Taxonomy (String).

  • targetColumnName.instanceName: The name of the product instance as retrieved from the Taxonomy (String).

  • targetColumnName.providerName: The name of the service provider associated with the product instance (String).

  • targetColumnName.productName: The name of the product associated with the product instance (String).

  • targetColumnName.assetType: The type of asset corresponding to the product instance (String).

  • targetColumnName.cpuCores: The number of CPU cores allocated to the product instance (Integer).

  • targetColumnName.ram: The amount of RAM allocated to the product instance (Integer).

  • targetColumnName.instanceType: The type or category of the product instance (String).

  • targetColumnName.instanceFamily: The family or group to which the product instance belongs (String).

  • targetColumnName.operatingSystem: The operating system running on the product instance (String).

  • targetColumnName.instanceStorageAvailable: The available storage capacity of the product instance (Integer).

  • targetColumnName.instanceStorageDriveType: The type of drive used for storage on the product instance (String).

  • targetColumnName.instanceStorageRedundancy: The level of redundancy implemented in the storage of the product instance (String).

  • targetColumnName.instanceStorageAccessType: The access type for storage on the product instance (String).

  • targetColumnName.instanceStorageIsFlexible: Indicates whether the storage capacity of the product instance is flexible (Boolean).

  • targetColumnName.instanceStorageFixedCapacity: The fixed storage capacity allocated to the product instance (Integer).

  • targetColumnName.instanceStorageFlexibleMinVolumeSizeInMiB: The minimum volume size for flexible storage in Mebibytes (MiB) (Integer).

  • targetColumnName.instanceStorageFlexibleMaxVolumeSizeInMiB: The maximum volume size for flexible storage in Mebibytes (MiB) (Integer).

  • targetColumnName.isHighAvailable: Indicates whether the product instance is designed for high availability (Boolean).

  • targetColumnName.license: The licensing information associated with the product instance (String).

Example

The csv data source used in the asset importer consists of five columns:

** ID **** Product Name **** Instance Name **** Operating System **** Region Name **
6wfv3d0d36Azure Database for PostgreSQLbasic-compute-g5-2Azure: West Europe
ofe9mk0fw0Azure Database for PostgreSQLbasic-compute-g5-2Azure: West Europe
x58ixy4b7sAzure Virtual MachinesStandard B2ts v2Red Hat Enterprise LinuxAzure: Germany West Central
qgbg1aalnpAzure Virtual MachinesStandard F4Microsoft WindowsAzure: West Europe

To retrieve additional information, the product instance enhancer can be added and configured in the data transformation section of the asset importer:

Finally, the retrieved columns can be mapped to the Structure. The column Instance Name.assetType can be used for the dynamic type resolution. By clicking on Propose mapping the retrieved columns can be mapped to the Structure. Before running the importer, add additional mappings and make sure that all proposed mappings are correct.

If we don't find your Technology or Product Instance...

If the Txture Taxonomy did not contain an entry for any particular cell value, the added columns will have a default value of null. You can use the row.isNull(<columnName>) command to check for this in your filter scripts and dynamic column scripts.

You can use the results of the enhancer in your dynamic columns and filter scripts. Here is a typical example: