cancel
Showing results for 
Search instead for 
Did you mean: 
bikash_rout
Employee
Employee

Overview

This tool is designed to validate data between two instances. It is beneficial in the following scenarios:

  • During upgrades, compare data before and after an upgrade.
  • Configuration changes: ensuring data consistency before and after modifications.

Features

  • Enables parallel processing of insights within scope
  • Downloads data in CSV format from target instances and performs comparisons
  • Identifies and reports both metadata and data-level differences
  • Performs row-by-row data comparison
  • The user password is stored in base64 encoded format in the configuration file
  • Provides support for bookmarks during data retrieval
  • Skips file comparison if row count exceeds a predefined threshold
  • Allows precision control for decimal value comparison
  • Supports KPI insights 

Prerequisites

  • Supported OS: Unix, Mac etc. (Windows not supported)
  • The system should have access to Internet and can access the OnPremise/Cloud Incorta URLs - both CMC as well as analytics
  • Users used in the test should have the permission to run the dashboards under test
  • Python 3.9+ (e.g. 3.9.7)
  • Python Modules: pandas

Setup Instructions

  • The tool can be run from the command line. It can be run from any machine with access to Incorta. The deployment is independent of the incorta server and its binaries.
  • Create a root directory for deploying this tool on your system
  • Download or copy the code file e.g. “data_validation_tool_yyyymmdd.zip” to the working directory
  • Unzip the package using the following command: unzip data_validation_tool_yyyymmdd.zip


bikash_rout_0-1751542817126.png

Folder Structure

  • Root Program Folder e.g. data_validation_tool
    • get_all_query_results_config.properties: configuration file for downloading insights
    • get_all_query_results_csv.py: shell script to download insights as CSVs
    • compare_csvs_config.properties: configuration file for comparing downloaded files
    • compare_csvs.py: python script to compare the downloaded CSV data
    • incorta.py: incorta CLI utility
    • input.csv: list of insights that are in validation scope
    • exports: this folder contains the downloaded CSVs.
    • logs: this folder contains the logs
    • results: this folder contains the comparison results

Configuration Properties

  • In the “get_all_query_results_config.properties” file update the following parameters.
    • The “env_nickname” should have descriptive text. The CSVs are downloaded to “exports” folder with following naming convention “env_nickname_%Y%m%d_%H%M%S”
    • “env_host_url” should have the host url as shown in the screenshot
    • env_tenant_name
    • env_username
    • “env_password” should contain the base64 encoded user credentials
    • “concurrent_thread_count” should contain suitable number threads for parallel processing.

 

bikash_rout_1-1751542816944.png

 


  • In the “compare_csvs_config.properties”, update the following parameters.
    • “actual_folder”: The folder containing downloaded insights for state 1 e.g. pre upgrade
    • “expected_folder”: The folder containing downloaded insights for state 2 e.g. post upgrade
    • “precision” variable should have an integer value. This parameter controls the number of decimal places to consider for comparison.
    • “merge_diff_csvs_flag”: This flag controls merging of individual diff files. The default recommended value is 0.
    • “concurrent_thread_count”: number of concurrent threads
    • “threshold_row_count”: skip comparing the files, if the row count exceeds certain threshold
bikash_rout_2-1751542816935.png

Execute the program

  • Update the input.csv as per the validation scope. Inspector tool outputs can be leveraged to prepare this input file. The columns are - Tenant Name, Dashboard Name, Dashboard GUID,  Tab GUID, Insight Name, Insight GUID, Insight Type, Bookmark Name.
  • Download the exports from instance1 or instance state 1
    • Update the parameters to instance1 in file get_all_query_results_config.properties
    • <<python3 get_all_query_results_csv.py>>
  • Download the exports from instance2 or instance state 2
    • Update the parameters to instance2 in file get_all_query_results_config.properties
    • <<python3 get_all_query_results_csv.py>>
  • Compare the download data
    • Update the parameters in file compare_csvs_config.properties
    • << python3 compare_csvs.py>>

Verify the Results

The comparison results are stored as follows

 

bikash_rout_3-1751542817223.png

Each comparison results in a timestamped folder. In this folder, we can find individual comparison reports for dashboard insights along with combined output for files having differences. The numeric prefix in the file name indicates the row number in the input.csv file.

The summary result provides a quick view of if the insights have been processed by our script or not. It also indicates if the output has differences.

 

bikash_rout_4-1751542816955.png

 


Code

Please contact the support team to obtain this code securely.

Additional Notes

  • Supports insights where data can be downloaded as CSVs (plus KPIs)
  • It's recommended to start with a small number of aggregated insights. Gradually increase the number of insights and insight types
  • Aggregated insights without headers are not supported
  • Aggregated insights with the "Merge Columns" option enabled may lead to inconsistencies as sorting among merged columns can vary in the downloaded dataset.

 


 

Best Practices Index
Best Practices

Just here to browse knowledge? This might help!

Contributors
Version history
Last update:
‎07-11-2025 09:35 AM
Updated by: