DataAI ETL Tableau — Production Installation Guide
DataAI ETL for Tableau
DataAI ETL is proprietary, source-available commercial software from Yanbor LLC, built with open-source technologies including Apache Spark.
This folder is the complete customer-side Tableau integration for DataAI ETL.
It is not a hosted service and it does not install a server, send telemetry, or
transmit customer data. The Java adapter converts DataAiResult into stable
Spark DataFrames; the customer chooses where and how to persist them. Tableau
then connects with its native Spark SQL or Databricks connector.
The included Accelerator (accelerator/DataAI_ETL_Accelerator.twbx) opens with
fictional embedded data for a fast, no-credential product overview. It can then be
repointed to the customer's DataAI output tables.
Contents
| Path | Purpose |
|---|---|
src/ |
Optional com.dataai:dataai-spark-tableau Java adapter and tests |
accelerator/ |
Tableau workbook source and packaged Accelerator |
sample-data/ |
Fictional CSV data and a generated Tableau Hyper extract |
mapping/ |
Stable output schemas, relationships, and complete function coverage |
examples/ |
Java persistence, Spark SQL, and Databricks connection examples |
listing/ |
Tableau Exchange listing copy and submission checklist |
assets/, screenshots/ |
Listing icon and fictional-data design previews |
scripts/ |
Deterministic asset generator and offline package validator |
manifest.json |
Package identity, compatibility, and artifact inventory |
LICENSE.md, COMMERCIAL_LICENSE_TEMPLATE.md |
Production distribution notice and non-binding commercial sample copied from the repository root |
1. Prerequisites
- DataAI ETL Spark
1.0.0production-candidate build - Java 17
- Apache Spark 3.5.0 with Scala 2.12
- Tableau Desktop or Tableau Cloud/Server for workbook use
- One of:
- Spark Thrift Server reachable through Tableau's Spark SQL connector; or
- a Databricks SQL warehouse reachable through Tableau's Databricks connector
1.0.0 is an immutable production candidate. Commercial deployment requires
Yanbor release authorization and the customer's applicable entitlement.
2. Extract and verify the package
Extract DataAIETL-Tableau-1.0.0.zip to a customer-controlled directory. Verify the adapter JAR checksum against CHECKSUMS.sha256 included in the package:
Get-FileHash <extract-root>\lib\dataai-spark-tableau-1.0.0.jar -Algorithm SHA256
Spark and Hadoop are provided by the customer runtime and are not bundled in the adapter JAR.
3. Add the adapter to a customer Spark application
Publish the licensed version to the customer's private Maven repository, then add:
<dependency>
<groupId>com.dataai</groupId>
<artifactId>dataai-spark-tableau</artifactId>
<version>1.0.0</version>
</dependency>
The Tableau artifact brings dataai-spark-functions transitively, including
all ETL, quality, analytics, time, business, market, map, matrix, and insight
APIs. Spark remains a provided dependency.
4. Create and persist Tableau outputs
DataAiResult result = DataAiPipeline.fromDataset(input)
.normalize()
.recordKey("order_id")
.profile()
.validate(RuleSpec.required("customer-required", "customer_id"))
.execute();
TableauOutputBundle tableau = TableauOutputs.from(result);
tableau.dashboardMetrics().write()
.format("delta")
.mode(SaveMode.Append)
.saveAsTable("analytics.dataai_dashboard_metrics");
tableau.qualityFindings().write()
.format("delta")
.mode(SaveMode.Append)
.saveAsTable("analytics.dataai_quality_findings");
tableau.fieldProfiles().write()
.format("delta")
.mode(SaveMode.Append)
.saveAsTable("analytics.dataai_field_profiles");
The adapter itself performs no writes. The complete example is
examples/java/TableauSparkExample.java; exact schemas are in
mapping/TABLEAU_OUTPUT_SCHEMA.md.
5. Use all DataAI functions, including matrix balancing
All function results can be prepared for Tableau with the universal adapter:
Dataset<Row> tableauResult = TableauFunctionOutputs.withRunMetadata(
dataAiFunctionResult,
"market_demand",
runId,
completedAt,
libraryVersion);
Matrix balancing has a dedicated helper that carries convergence information into the Tableau table:
MatrixBalanceResult balance = MatrixFunctions.balance(
cells, "region", "category", "value",
rowTargets, columnTargets, "target_total", 50, 0.001);
Dataset<Row> tableauMatrix = TableauFunctionOutputs.matrixBalance(
balance, runId, Instant.now(), libraryVersion);
See mapping/FUNCTION_OUTPUTS_FOR_TABLEAU.md for the complete family mapping
and examples/java/TableauMatrixBalancingExample.java for persistence.
6. Validate the Tableau experience
- Copy
accelerator/DataAI_ETL_Accelerator.twbxto a computer with Tableau Desktop. - Open it. The workbook uses fictional weekly DataAI run metrics included in the package, so no database credentials are required.
- Review the run trend, acceptance/rejection totals, quality score, and finding-severity views.
- When ready, replace the sample data source with the customer's
dataai_dashboard_metricstable using Tableau's Replace Data Source command. - Add
dataai_quality_findingsanddataai_field_profilesfor drill-down dashboards, relating them byrun_id. - Validate field mappings, refresh behavior, row-level security, and workbook permissions in a non-production Tableau project.
The packaged workbook was generated and structurally validated without Tableau Desktop. Before commercial publication, open it in the supported Tableau Desktop versions, repair any version-specific metadata, refresh the extract, and complete visual/accessibility QA.
7. Connect Tableau to production outputs
Spark SQL
- Persist the DataAI outputs as Spark catalog tables.
- Make them visible to a Spark Thrift Server session.
- In Tableau, select Spark SQL and enter the server, port, authentication, and transport settings supplied by the customer platform team.
- Select the catalog/schema and the
dataai_*tables. - Relate the run, findings, and profiles tables on
run_id.
See examples/spark-sql/README.md and the official Tableau Spark SQL connector
documentation: https://help.tableau.com/current/pro/desktop/en-us/examples_sparksql.htm
Databricks
- Persist the outputs as governed Unity Catalog tables or views.
- In Tableau, select Databricks and supply the server hostname and HTTP path for a SQL warehouse.
- Use the customer's approved OAuth, personal access token, or service principal policy.
- Select the output views and replace the Accelerator's sample source.
See examples/databricks/README.md and the official connector documentation:
https://help.tableau.com/current/pro/desktop/en-us/examples_databricks.htm
8. Licensing and support boundary
LICENSE.md is the production distribution notice. Commercial use is governed
by an executed agreement, order form, or license certificate from Yanbor LLC.
The generator copies the canonical notice and commercial template from the
repository root so the Tableau folder is self-contained for production
packaging. DataAI software is provided AS IS, with no obligations except
those expressly accepted in a signed commercial agreement.
Customers remain responsible for deployment, adapter, connector, performance, security, and suitability testing in their target environment.