The Data Virtuality Server Connector Architecture (DVSCA) provides Data Virtuality Server with a robust mechanism for integrating with external systems. The DVSCA defines a common client interface between Data Virtuality Server and an external system that includes metadata as to what SQL constructs are supported for pushdown and the ability to import metadata from the external system. A Translator is the heart of the DVSCA and acts as the bridge logic between Data Virtuality Server and an external system. It has its own translation properties, which are described in the following Connector descriptions. Connectors can have a number of configurable properties. These are broken down into translator properties, which determine aspects of how data is retrieved, and import settings, which determines what metadata is read for import. The translator properties for a translator typically have reasonable defaults. For specific translator types, e.g. the Derby translator, base translator properties are already tuned to match the source. In most cases, the user will not need to adjust their values.

Translator Properties shared by all Connectors

Name

Description

Default

Immutable

Set to true to indicate that the source never changes.

false

RequiresCriteria

Set to true to indicate that source SELECT/UPDATE/DELETE queries require a where clause.

false

SupportsOrderBy

Set to true to indicate that the ORDER BY clause is supported.

true for

false for

  • JDBC Connectors
    • access
    • jdbc-simple
  • others

SupportsOuterJoins

Set to true to indicate that OUTER JOINs are supported.

false

SupportsFullOuterJoins

If outer joins are supported, true indicates that FULL OUTER JOINs are supported.

false

SupportsInnerJoins

Set to true to indicate that INNER JOINs are supported.

false

SupportedJoinCriteria

If joins are supported, defines what criteria may be used as the join criteria. May be one of (ANY, THETA, EQUI, or KEY).

ANY

MaxInCriteriaSize

If in criteria are supported, defines what the maximum number of in entries are per predicate. -1 indicates no limit.

-1

MaxDependentInPredicates

If in criteria are supported, defines what the maximum number of predicates that can be used for a dependent join. Values less than 1 indicate to use only one in predicate per dependent value pushed (which matches the pre-7.4 behaviour).

-1

useDoubleSlashToEscapeRegexthis property is used to change the default escaping behaviour in LIKE_REGEX expressions.
  • true for Redshift
  • false for others
ThreadBoundSet to true to indicate the translator's Executions should be processed by only a single thread.false
supportsMultipleOpenExecutionsSet to true to indicate that multiple executions may be open against a single connection at a time.

false for:

  • Redshift
  • MySQL
  • Netezza

true for all others


columnNameType

The value determines the way table column names are presented in the Data Virtuality Server:

  • NONE: all column names are presented in the lower case
  • PRESERVE: column names appear in the same way they appear in the source (e.g. coLuMnName)
  • UPPERCASE: all column names are presented in the upper case
NONE


The following capabilities are exposed as translator properties:


Name

Description

supportsSelectExpression

Support indicates connector can accept expressions other than element symbols in the SELECT clause.  Specific support for the expression type are still checked.

supportsAliasedTable

Support indicates connector can accept groups with aliases.
supportsSelfJoinsSupport indicates connector can accept self-joins where a group is joined to itself with aliases.  The connector must also support.
supportsInlineViewsSupport indicates connector can accept inline views (subqueries in the FROM clause).
supportsCompareCriteriaEqualsSupport indicates connector accepts criteria of form (element = constant).
supportsCompareCriteriaOrderedSupport indicates connector accepts criteria of form (element <= | >= constant). The query engine will may pushdown queries containing < or > if NOT is also supported. 
supportsLikeCriteriaSupport indicates connector accepts criteria of form (element LIKE constant).
supportsLikeCriteriaEscapeCharacterSupport indicates connector accepts criteria of form (element LIKE constant ESCAPE char).
supportsInCriteriaSupport indicates connector accepts criteria of form (element IN set).
supportsInCriteriaSubquerySupport indicates connector accepts IN criteria with a subquery on the right side.
supportsIsNullCriteriaSupport indicates connector accepts criteria of form (element IS NULL).
supportsOrCriteriaSupport indicates connector accepts logical criteria connected by OR.
supportsNotCriteriaSupport indicates connector accepts logical criteria NOT.
supportsExistsCriteriaSupport indicates connector accepts the EXISTS criteria.
supportsQuantifiedCompareCriteriaSomeSupport indicates connector accepts the quantified comparison criteria that use SOME.
supportsQuantifiedCompareCriteriaAllSupport indicates connector accepts the quantified comparison criteria that use ALL.
supportsOrderByUnrelatedSupport indicates connector accepts ORDER BY clause with columns not from the select.
supportsOrderByNullOrderingReturns whether the database supports explicit join ordering.
supportsGroupByWhether the source supports an explicit GROUP BY clause.
supportsOnlySingleTableGroupByWhether the source supports grouping only over a single table.
supportsHavingWhether the source supports the HAVING clause.
supportsAggregatesSumSupport indicates connector can accept the SUM aggregate function.
supportsAggregatesAvgSupport indicates connector can accept the AVG aggregate function.
supportsAggregatesMinSupport indicates connector can accept the MIN aggregate function.
supportsAggregatesMaxSupport indicates connector can accept the MAX aggregate function.
supportsAggregatesCountSupport indicates connector can accept the COUNT aggregate function.
supportsAggregatesCountStarSupport indicates connector can accept the COUNT(*) aggregate function.
supportsAggregatesDistinctSupport indicates connector can accept DISTINCT within aggregate functions.
supportsAggregatesEnhancedNumericSupport indicates connector can accept STDDEV_POP, STDDEV_VAR, VAR_POP, VAR_SAMP.
supportsScalarSubqueriesSupport indicates connector can accept scalar subqueries in the SELECT, WHERE, and HAVING clauses.
supportsCorrelatedSubqueriesSupport indicates connector can accept correlated subqueries wherever subqueries are accepted.
supportsSearchedCaseExpressionsSupport indicates connector can accept queries with searched CASE WHEN <criteria> ... END
supportsUnionsSupport indicates that the connector supports the UNION of two queries.
supportsSetQueryOrderBySupport indicates that the connector supports an ORDER BY on a SetQuery.
supportsIntersectSupport indicates that the connector supports the INTERSECT of two queries.
supportsExceptSupport indicates that the connector supports the EXCEPT of two queries.
supportsFunctionsInGroupBySupport indicates that the connector supports non-column expressions in GROUP BY, such as: SELECT dayofmonth(theDate), COUNT(*) FROM table GROUP BY dayofmonth(theDate).
supportsRowLimitGets whether the connector can limit the number of rows returned by a query.
supportsRowOffsetGets whether the connector supports a SQL clause (similar to the LIMIT with an offset) that can return result sets that start in the middle of the resulting rows returned by a query.
supportsCommonTableExpressionsReturns true if the WITH clause is supported
supportsAdvancedOlapOperationsReturns true if Advanced OLAP operations are supported including the aggregate function filter clause.
supportsElementaryOlapOperationsReturns true if Elementary OLAP operations are supported including window functions and inline window specifications that include simple expressions in partitioning and ordering
supportsArrayAggReturns true if array_agg is supported
supportsSimilarToReturns true if the SIMILAR TO predicate is supported
supportsLikeRegexReturns true if the LIKE_REGEX predicate is supported
supportsAggregatesLeadLagFirstLastValueIndicates whether the source supports lead(), lag(), firstValue(), and lastValue() aggregation symbols.