Use DataAI ETL from SSIS

Execution model: SSIS orchestrates a DataAI Spark job. DataAI is not an SSIS Data Flow component, MSI, or GAC assembly. The DataAI job reads and writes customer Spark/catalog tables, and later SSIS tasks consume the approved results.

1. Prepare the package variables

SSIS variableExample purpose
User::SparkSubmitFull path to spark-submit.cmd or an approved command
User::DataAiCliJarInstalled shaded dataai-spark-cli-<version>.jar
User::DataAiConfigCustomer-owned JSON configuration path
User::WorkingDirectoryRestricted working directory visible to the execution identity

The JSON selects the source table, optional output tables, normalization, record keys, rules, and optional minimum quality score. Keep credentials in SSIS, Spark, or the customer's secret facility—not in the JSON.

2. Configure an Execute Process Task

  1. Add an Execute Process Task to the Control Flow.
  2. Set Executable to User::SparkSubmit.
  3. Build the argument string from controlled variables:
--class com.dataai.etl.spark.cli.DataAiJob
"C:\approved\dataai\dataai-spark-cli-.jar"
--config "C:\approved\dataai\customer-orders.json"
  1. Set the working directory to the approved package/configuration directory.
  2. Require return code 0; configure the task to fail on any other return code.
  3. Use a timeout appropriate for the Spark job and configure SSIS cancellation according to customer policy.

3. Connect downstream SSIS work

  1. Add a success precedence constraint from the Execute Process Task.
  2. On success, use the customer's existing database/Spark connector to read clean rows, findings, profiles, or run outputs.
  3. Do not assume that an output table exists when its name was blank in the DataAI configuration.
  4. On failure, route to the customer's logging/notification task and retain the Spark application identifier.
  5. Do not register the DataAI JARs in the GAC.

4. Validate the first run

5. Use advanced functions

The included Java libraries also provide analytics, time series, business and market functions, map readiness, insights, and matrix balancing. Those functions require a customer Java/Spark wrapper job. Invoke that wrapper from another Execute Process Task or the customer's Spark scheduler; they are not native SSIS transformations.

Usage is successful when: SSIS receives exit code 0, downstream tasks start only after Spark success, expected output tables reconcile, and failures follow the package's error path.