Licensing Policy

This licensing policy (“Policy”) defines specific licensing rules and conditions for MANTA Product. The use of the Product is subject to the Licensee’s compliance with the End User License Agreement (“EULA”) of which this Policy is a part.

1. DEFINITIONS

1.1. Script is a unique code element defined by the Product implementation, taking into account specifics of each particular technology.

1.2. MANTA Instance is the Licensed Software deployed, within the limits granted to the Licensee, to a computing resource where it is managed and accessed as a single unit.

1.3. Source Environment is a set of one or more systems, other than MANTA Instances, that contain Scripts to be processed by a MANTA Instance. One MANTA Instance can only be associated with one Source Environment.

1.4. Source Environment Set is a set of one or more Source Environments where all the scripts stored or executed within any of the Source Environments are used exclusively for the development and QA associated with a single Source Environment designated as a Production Source Environment. Each Source Environment Set may only contain one Production Source Environment.

1.5. MANTA Instance Set is one or more MANTA Instances where all the Scripts processed by any of the MANTA Instances are otherwise being stored or executed in Source Environments belonging to a single Source Environment Set.

1.6. Unique is a property of a Script meaning that no other Script in the context of the particular MANTA Instance exhibits both the same binary content and the same associated data flow as analyzed by the respective MANTA Instance.

1.7. Dataflow graph hash is computed as a result of a function which has a dataflow graph generated by Manta Flow dataflow analysis for the defined part of an input. This function returns the same outputs for the same inputs, but it can return different outputs for different inputs.

1.8 User Controlled Metadata is the set of metadata stored by any MANTA Instance that is under the control of the Licensee to keep or remove.

1.9. Instance Script Count is the amount calculated as the union of the amount of Unique Scripts for which User Controlled Metadata is stored in the repository of a MANTA Instance, and the amount of Unique Scripts processed by the MANTA Instance in the last 30 days.

1.10 Instance Set Script Count is the largest Instance Script Count of any MANTA Instance out of a MANTA Instance Set.

1.11 (Concurrent) Revision is a subset of User Controlled Metadata ingested on a particular date and time.

2. BASIC INFORMATION

A Licensed Configuration specifies usage parameters for a single MANTA Instance Set. Specifically, any limit on the number of scripts applies to an Instance Set Script Count.
The definitions below are intended for the purpose of estimating the number of Scripts in each particular technology. They do not replace or override the definition of Script as stated earlier in this Policy. MANTA made a substantial effort to make these definitions as accurate as possible, however, it is not feasible to make them conform exactly to the Product implementation.

The queries provided below give a total count; customers can choose what should be scanned, e.g. exclude system databases/schemas/folders/projects/packages that do not contain any interesting information so that they do not count against the licensed script limit.

For an updated Policy containing script definitions for newly introduced technologies and other updates, please contact your account executive or send an email to: legal@getmanta.com.

3. CURRENTLY SUPPORTED TECHNOLOGIES

Teradata – MANTA Flow supports data dictionaries, SQL, BTEQ, stored procedures, macros, TPT, and database query logs.

Definition of Script
These analyzed objects extracted from the database count as Scripts:
• Views
• Macros
• Stored procedures (only SQL)
Files that contain the following code provided to Manta Flow count as Scripts:
• SQL code
• BTEQ code
• TPT code

How to indicatively count the number of Scripts
SQL, BTEQ and TPT scripts should be counted as the number of files with SQL, BTEQ and TPT code on the filesystem. Customer can use this command to count in-database objects:

SELECT d.DatabaseName, t.TableKind, count(1)
FROM dbc.TVM as t JOIN dbc.DBase as d on t.DatabaseId = d.DatabaseId
WHERE t.TableKind in (‘V’,’M’,’P’)
GROUP BY d.DatabaseName, t.TableKind
;

Oracle – MANTA Flow supports data dictionaries, SQL, PL/SQL, stored procedures, packages, functions, and triggers.

Definition of “Script”
These analyzed objects extracted from the database count as Scripts:
• Views and Materialized views
• Procedures
• Functions (user defined)
• Triggers
• PL/SQL packages (body)
• PL/SQL types (body)
Files that contain the following code provided to Manta Flow count as Scripts:
• SQL code
• PL/SQL code

How to indicatively count the number of Scripts
SQL and PL/SQL scripts should be counted as the number of files with SQL and PL/SQL code on the filesystem. Customer can use this command to count in-database objects:

select owner, count(1)
from dba_objects
where object_name not like ‘SYS_PLSQL_%’
and (
(
object_type in (‘PROCEDURE’,’PACKAGE BODY’,’TRIGGER’,’VIEW’,’FUNCTION’,’TYPE BODY’)
and status = ‘VALID’
) or (
object_type = ‘MATERIALIZED VIEW’
)
)
group by owner;

Microsoft SQL Server – MANTA Flow supports Microsoft PDW, Azure SQL Database, Azure SQL Data Warehouse. Among those, it supports data dictionaries, SQL, T-SQL, stored procedures, functions, and triggers.

Definition of Script
These analyzed objects extracted from the database count as Scripts:
• Views
• Procedures
• Functions (user defined)
• Triggers
Files that contain the following code provided to Manta Flow count as Scripts:
• SQL code
• T-SQL code

How to indicatively count the number of Scripts
SQL and T-SQL scripts should be counted as the number of files with SQL and T-SQL code on the filesystem. Customer can use this command to count global objects (a need to run the query once for each SQL Server instance included):

select count(1) from sys.server_triggers WHERE type = ‘TR’

Customer can use this command to count database-bound objects (a need to run the query in every database included):

select
(select count(1) from INFORMATION_SCHEMA.ROUTINES where ROUTINE_TYPE in (‘PROCEDURE’, ‘FUNCTION’)) +
(select count(1) from INFORMATION_SCHEMA.VIEWS) +
(select count(1) from sys.triggers WHERE type = ‘TR’)

SAP ASE (former Sybase ASE) – MANTA Flow supports data dictionaries, SQL, T-SQL, stored procedures, functions, and triggers. Please note that we do not support SAP IQ.

Definition of Script
These analyzed objects extracted from the database count as Scripts:
• Views
• Procedures
• Functions (user defined)
• Triggers
Files that contain the following code provided to Manta Flow count as Scripts:
• SQL code
• T-SQL code

How to indicatively count the number of Scripts
SQL and T-SQL scripts should be counted as the number of files with SQL and T-SQL code on the filesystem. Customer can use this command to count database-bound objects (run the query in every database included):

select count(1) from sysobjects WHERE type in (‘V’, ‘P’, ‘TR’)

Hive – MANTA Flow supports data dictionaries and HiveQL.

Definition of Script
These analyzed objects extracted from the database count as Scripts:
• Views
Files that contain the following code provided to Manta Flow count as Scripts:
• SQL code
• Hive QL code

How to indicatively count the number of Scripts
SQL and Hive QL scripts should be counted as the number of files with SQL and Hive QL code on the filesystem.
To list views in Hive (2.3.0+):

SHOW VIEWS [in/from ]
To count views directly in the underlying metastore database:
select count(1) from tbls where tbl_type = ‘VIRTUAL_VIEW’

IBM Netezza – MANTA Flow supports NZPLSQL scripts, stored procedures, and views from IBM Netezza.

Definition of Script
These analyzed objects extracted from the database count as Scripts:
• Views
• Procedures
Files that contain the following code provided to Manta Flow count as Scripts:
• SQL code
• NZPLSQL code

How to indicatively count the number of Scripts
SQL and NZPLSQL scripts should be counted as the number of files with SQL and NZPLSQL code on the filesystem.
This is the command customer may use to count in-database objects (a need to run the query in every database included):

select (
(select count(distinct procedure) from _v_procedure where UPPER(OBJTYPE) = ‘PROCEDURE’ and BUILTIN = false) +
(select count(1) from _v_view where UPPER(OBJTYPE) in (‘VIEW’, ‘MATERIALIZED VIEW’))
)

IBM DB2 – MANTA Flow supports data dictionaries, scripts, stored procedures, SQL, modules, functions, triggers, and Oracle compatibility mode.

Definition of Script
These analyzed objects extracted from the database count as Scripts:
• Views
• Procedures
• Functions (stand-alone as well as module-and type-bound methods)
• Triggers
• Packages (body)
Files that contain the following code provided to Manta Flow count as Scripts:
• SQL code
• PL/SQL code

How to indicatively count the number of Scripts
SQL and PL/SQL scripts should be counted as the number of files with SQL and PL/SQL code on the filesystem.
This is the command customer may use to count in-database objects:

values (
(select count(1) from SYSCAT.ROUTINES where ORIGIN <> ‘S’ and OWNERTYPE <> ‘S’) +
(select count(1) from SYSCAT.TRIGGERS where OWNERTYPE <> ‘S’) +
(select count(1) from SYSCAT.TABLES where TYPE IN (‘V’, ‘W’) AND OWNERTYPE <> ‘S’) +
(select count(1) from SYSCAT.MODULES where OWNERTYPE <> ‘S’ and MODULETYPE = ‘P’)
)

PostgreSQL, Greenplum and Amazon Redshift – MANTA Flow supports data dictionaries, PLpgSQL scripts, views, triggers, functions, and stored procedures.

Definition of Script
These analyzed objects extracted from the database count as Scripts:
• Views
• Procedures
• Functions (user defined)
• Triggers
Files that contain the following code provided to Manta Flow count as Scripts:
• SQL code
• PLpgSQL code

How to indicatively count the number of Scripts
SQL and PLpgSQL scripts should be counted as the number of files with SQL and PLpgSQL code on the filesystem.
This command should be used in each database extracted to get the number of scripts:

SELECT schema_name, count(1) as count FROM (
SELECT n.nspname AS schema_name
FROM pg_namespace n
INNER JOIN pg_class c ON n.oid = c.relnamespace
WHERE c.relkind = ‘v’
UNION ALL
SELECT pn.nspname as schema_name
FROM pg_proc pp
LEFT JOIN pg_namespace pn on pn.oid = pp.pronamespace
INNER JOIN pg_language pl ON pp.prolang = pl.oid
WHERE lower(pl.lanname) in (‘sql’, ‘plpgsql’)
) dt
GROUP BY schema_name;

Informatica PowerCenter – MANTA Flow supports workflows, mappings, sessions, SQL overrides, repositories, and parameter files.

Definition of Script
Informatica PowerCenter Session Instance is a particular instance of a Session Definition used in a particular Workflow or Worklet definition. It is uniquely identified by its path: <Workflow name>/<Worklet Instance name 1>/<Worklet Instance name 2>/…<Worklet Instance name N>/<Session Instance name>.

Manta Flow counts each unique “Informatica PowerCenter Session Instance dataflow graph hash” in the whole environment as a Script. The dataflow graph generated from a session instance may be affected by the parameters supplied through parameter files in the workflows, parameters specified directly in the workflows or provided externally through parameter mappings and custom component mappings and others.

How to indicatively count the number of Scripts
Indicative Session Instance count can be obtained from the Informatica PowerCenter repository:

SELECT SUBJECT_AREA, COUNT(1) FROM INFA.REP_SESSION_INSTANCES GROUP BY SUBJECT_AREA;

Pig Latin – MANTA supports Pig Latin statements, relations, bags, tuples, and fields.

Definition of Script
These files provided to Manta Flow count as Scripts:
• Pig Latin script
• Pig Latin macro

How to indicatively count the number of Scripts
Customer can count number of files containing Pig Latin scripts and macros that should be analyzed by Manta.

Talend – MANTA Flow supports projects, jobs and subjobs, connectors, components, expressions, and SQL overrides.

Definition of Script
Manta Flow counts each unique “Talend Job dataflow graph hash” in the whole environment as a Script. The dataflow graph generated from a job may be affected by the parameters and context supplied to the job, parameters specified directly in the job or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
Customer can count Talend jobs in the repository via Talend Studio for Data Integration or by navigating to the repository root folder via file explorer and counting the number of files with .item extensions located in the process folder and its subfolders.
For example, using Windows Command Line customer can count the number of scripts by executing:

cd
dir /S /B process\*.item | find /C /V “”

Sqoop – MANTA Flow supports Sqoop import, export, and eval jobs.

Definition of Script
These Sqoop jobs (both extracted from a database and manually provided in form of files) count as Scripts:
• Import job
• Export job
• Eval job

How to indicatively count the number of Scripts
If customer manually provides files with Sqoop jobs, it is possible to count all the calls for these jobs inside those files. (This can easily be done by counting all the non-empty lines.) If customer provides a connection to a relational database where Sqoop jobs are stored, customer can use this statement to count them:

SELECT COUNT(DISTINCT job_name) FROM SQOOP_SESSIONS;

Oracle Data Integrator – MANTA Flow support scenarios, projects, packages, and mappings.

Definition of Script
Manta Flow counts each unique “ODI Mapping dataflow graph hash” in the whole environment as a Script. The dataflow graph generated from a job may be affected by the parameters and context supplied to the job, parameters specified directly in the job or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
This query can be used to indicatively count number of ODI Mappings in the ODI Repository:

SELECT COUNT(*) from SNP_MAPPING where is_reusable = ‘N’;

Microsoft SQL Server Integration Services – MANTA Flow supports SSIS project and packages.

Definition of Script
SSIS Task is a task contained in an SSIS Package. Manta Flow recognize these types of SSIS Tasks:
• SQL Task
• Bulk Insert Task
• File System Task
• Dataflow Task

Manta Flow counts each unique “Microsoft SSIS Task dataflow graph hash” in the whole environment as a Script. The dataflow graph may be affected by the parameters and context supplied, parameters specified directly in the job or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
To count the number of tasks the steps are: unzip all the project files (if using project deployment), find all the package (*.dtsx) files and count the number of occurrences of “</DTS:Executable>” inside those files, minus one for each package file.

Microsoft SQL Server Analysis Services – MANTA Flow supports tabular models, and multidimensional models.

Definition of Script
Manta Flow recognizes these objects:
• Dimension in a cube
• Table in a tabular model

Manta Flow counts each unique “Microsoft SSAS object dataflow graph hash” in the whole environment as a Script. The dataflow graph may be affected by the parameters and context supplied, parameters specified directly in the job or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
To count the number of dimensions in all cubes, it is necessary to count the number of occurrences of “Dimension” tag under the “Cube” tag inside *.xmla or *.bim files for SSAS multidimensional model:

xmllint –xpath “count(//*[local-name()=’Cube’]/*[local-name()=’Dimensions’]/*[local-name()=’Dimension’])” outputxml.xmla

To count the number of tables in all tabular models inside *.xmla or *.bim files for SSAS tabular model, customer can use this command:

cat outputjson.xmla | jq “first(..|select(.model?)).model.tables | length”
type outputjson.xmla | jq “first(..|select(.model?)).model.tables | length”

Microsoft SQL Server Reporting Services – MANTA Flow supports paginated reports.

Definition of Script
Manta Flow counts each unique “Microsoft SSRS Report dataflow graph hash” in the whole environment as a Script. The dataflow graph may be affected by the parameters and context supplied, parameters specified directly in the job or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
To count the number of reports, customer can run this query in customer´s SQL Server database where the SSRS catalog is stored:

SELECT count(*)
FROM dbo.Catalog catalog
WHERE type = 2;

Microsoft Excel – MANTA Flow supports XLSX and XLSM workbooks, sheets, defined names, charts, tables, pivot tables, database connections, and queries.

Definition of Script
These files provided to Manta Flow count as Scripts:
• XLSX workbook
• XLSM workbook

How to indicatively count the number of Scripts
Customer can count all XLSX and XLSM files in the repository root folder.

IBM Cognos – MANTA Flow supports reports and interactive reports (including queries with SQL), framework manager models, data modules, data sets, uploaded files and database connections.

Definition of Script
Manta Flow counts each unique “IBM Cognos Report dataflow graph hash” in the whole environment as a Script. The dataflow graph may be affected by the parameters and context supplied, parameters specified directly in the job or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
Customer can run the following script against the Content Store database to get an approximate number of scripts:

select count from .cmobjects where classid in (10,234)

ER/Studio – MANTA Flow supports physical models, logical models, and conceptual models.

Definition of Script
Manta Flow recognizes these ER/Studio models:
• Physical model
• Logical model

Manta Flow counts each unique “ER/Studio logical or physical model dataflow graph hash” in the whole environment as a Script.

How to indicatively count the number of Scripts
To count the number of logical and physical models in an ER/Studio file, customer can use this shell script:

#!/bin/bash
for i in “$@”
do
cat “$i” | tr -d ‘\015’ | # Convert CRLF Windows endings to the Unix ones
sed -ne ‘/^Model$/,/^$/p’ | # Get the CSV tables with models
sed -ne ‘/^[0-9]/p’ | # Get rid of headers, process entries. ModelType is at fourth position in the CSV, count only those models that we process (types 1,2 and 5)
awk -F’,’ ‘ BEGIN { count = 0; } { if ($4 == 1 || $4 == 2 || $4 == 5) count++ } END { print “Number of Data Models in file \”‘”$i”‘\” is ” count }’
done

SAP PowerDesigner – MANTA Flow supports physical, logical and conceptual models.

Definition of Script
Manta Flow recognizes these SAP PowerDesigner models:
• Physical model
• Logical model
• Conceptual model
Manta Flow counts each unique “SAP PowerDesigner model dataflow graph hash” in the whole environment as a Script.

How to indicatively count the number of Scripts
Customer can count number of .cdm, .pdm and .ldm files that should be analyzed by Manta.

Erwin – MANTA Flow supports physical, physical/logical and logical models.

Definition of Script
Manta Flow recognizes these Erwin models:
• Physical model
• Logical model
• Conceptual model
Manta Flow counts each unique “Erwin model dataflow graph hash” in the whole environment as a Script.

How to indicatively count the number of Scripts
To count total number of scripts used by Erwin look through all used model files (.xml) and find tag under under under (XML root) which specifies type of the model.
Type values:
1 = Logical model, counts as 1 script.
2 = Physical model, counts as 1 script.
3 = Logical/Physical model, counts as 2 scripts.

IBM InfoSphere DataStage – MANTA Flow supports parallel jobs.

Definition of Script
Manta Flow counts each unique “IBM InfoSphere DataStage Job dataflow graph hash” in the whole environment as a Script. The dataflow graph may be affected by the parameters and context supplied, parameters specified directly in the job or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
To count the number of jobs the steps are: find all the DataStage (*.xml) files and count the number of occurrences of “</Job>” inside those files.

Tableau – MANTA Flow supports workbooks.

Definition of Script
Manta Flow counts each unique “Tableau Workbook dataflow graph hash” in the whole environment as a Script. The dataflow graph may be affected by the parameters and context supplied, parameters specified directly in the job or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
Click Explore in the left menu and then select the drop-down menu next to the “Explore” heading. A brief statistics appears including the number of all workbooks.

PowerBI – MANTA Flow supports reports.

Definition of Script
Manta Flow counts each unique “PowerBI Report dataflow graph hash” in the whole environment as a Script.
The dataflow graph may be affected by the parameters and context supplied, parameters specified directly in
the job or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
In case the PowerBI report server is used to store reports, it is possible to get count of reports using REST API, for example by invoking this URL: http://<host_name>/BIReports/api/v2.0/PowerBIReports?$count=true

In case the PowerBI in Azure is used, it is possible to count reports by going through all workspaces and sum the number of reports in each of them via the user interface.

OBIEE – MANTA Flow supports reports, analyses, and dashboards.

Definition of Script
Manta Flow counts each unique “OBIEE Report or Analysis dataflow graph hash” in the whole environment as a Script. The dataflow graph may be affected by the parameters and context supplied, parameters specified directly in the job or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts

Go to the OBIEE Home page. You will see a search field at the top right corner of the page. Choose the type of item you want to find (Report or Analysis). Enter * symbol in the search field. Click the search icon. You will see a number of found items at the top right corner of the search result list (make sure, that the Show Hidden Items box is selected).

Cobol – MANTA Flow supports Cobol programs (IBM Cobol dialect), IBM JCL jobs, and JCL procedures.

Definition of Script
Each JCL job, JCL procedure, or Cobol script is considered to be a script for licensing purposes. If one Cobol script is called multiple times from different JCL jobs or procedures, it is considered to be one script. Cobol copybooks are not counted as scripts.

How to Indicatively Count the Number of Scripts
Count the number of JCL jobs, JCL procedures, and Cobol program files (excluding Cobol copybook files) in the input directory.

Custom Script Scanner – MANTA Flow supports Python script files with a .py suffix containing specific custom script scanner annotations.

Definition of a Script
These files provided to MANTA Flow count as scripts:
• Each Python script input that contains at least one specific custom script scanner annotation
• Script files in the specified directory referenced by the @MANTAInclude annotation are not counted as scripts

How to Indicatively Count the Number of Scripts
The customer can count all .py files in the repository root folder (excluding the Includes directory) containing @MANTA.

SAS – MANTA Flow supports SAS code programs.

Definition of a Script
Every file containing SAS code is considered as a script for licensing purposes.
How to Indicatively count the number of scripts
Count the number of files containing SAS code in the input directory.

StreamSets – MANTA Flow supports objects of the StreamSets Data Collector including pipelines, stages in general, various stage configurations, data source connections and most of the services related to stages.

Definition of Script
Manta Flow counts each unique “StreamSets Pipeline dataflow graph hash” in the whole environment as a Script. The dataflow graph may be affected by the parameters and context supplied, parameters specified directly in the pipeline or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
Number of all pipelines can be viewed directly in the StreamSets Data Collector GUI.

SAP BusinessObjects BI – MANTA Flow supports SAP BO documents, data providers, universes and their business objects, data foundations and processing of data source connection information.

Definition of Script
Manta Flow counts each unique “SAP BO Document dataflow graph hash” in the whole environment as a Script. Please note that SAP BO Documents are referred to as Reports in the MANTA visualization. The dataflow graph may be affected by the parameters and context supplied, parameters specified directly in the report or provided externally through mappings and custom component mappings and others.

How to indicatively count the number of Scripts
Using the Query Builder usually running at /AdminTools/querybuilder/ie.jsp (e.g. http://localhost:8080/AdminTools/querybuilder/ie.jsp), following queries can be run:

SELECT * from CI_INFOOBJECTS where SI_KIND = ‘Webi’

SELECT * from CI_INFOOBJECTS where SI_KIND = ‘Webi’ and SI_DSL_UNIVERSE.SI_TOTAL = ‘1’

The first query lists all Documents that are accessible.
The second query lists all Documents that use exactly one universe as a data source. Those documents are processed completely, including data flows from physical sources.

The result of said queries contains a header with a number of Documents returned. Example: ‘Number of InfoObject(s) returned: 19’.

Last update: July 1, 2020