Copying records out to a matching hub was a workaround for platforms that could not do the work. Yours can. Zingg runs entity resolution inside Databricks, Snowflake, Fabric, Google Cloud and AWS, on your compute, under your controls.
Move the matching to the data, not the data to the matching.
Your customers, suppliers and products already land in Databricks, Snowflake, Fabric, BigQuery or S3. Zingg reads those tables where they sit. Nothing is exported to a matching hub first.
No pipelines to copy records out, no second copy to store, no egress to pay, and no sync job to push golden records back. The cost of entity resolution is the compute it runs on.
Zingg runs as a job on your platform, so its runs, durations, failures and cost show up in the query history, job logs, lineage and alerts you already watch.
Schedule it with Airflow, Databricks Workflows, Snowflake Tasks, Fabric pipelines or dbt. Keep the configuration in Git and ship it through the CI/CD you already trust.
Names, emails, addresses and phone numbers never leave your account. Your access controls, masking, row-level security and data residency apply to matching exactly as they do to everything else.
Make resolution a step after every load. Incremental runs match only new and changed records against what is already resolved, so running hourly costs little more than running weekly.
Matching runs on the warehouse or Spark compute you size for the job, and stops when it is done. Millions of records need a bigger cluster, not a new platform.
Resolved entities and the ZINGG_ID are tables in your catalog, next to the data that references them. BI, AI agents, reverse ETL and apps join on them directly, with no sync lag.
Inputs and outputs stay in your account, in your formats, such as Delta, Iceberg, Parquet or Snowflake tables. Nothing is locked inside a vendor’s hub.
Resolution sits between transformation and serving, scheduled and monitored like the steps around it. Incremental runs keep each one small.
Each tick is a run: hourly, after every load, or whenever your orchestrator says.
| Copy-out MDM hub | Warehouse native Zingg | |
|---|---|---|
| Where matching runs | A separate MDM hub or SaaS service | Inside your warehouse or lakehouse |
| Data movement | Extract, load into the hub, sync results back | None. Zingg reads and writes your tables |
| Cost | ETL pipelines, a second copy, egress, hub licences | The compute the run uses |
| Privacy and access | PII copied to another system with its own controls | PII stays put under your existing controls |
| Observability | Another console to monitor | Your job logs, query history, lineage and alerts |
| Tooling | The hub’s scheduler and workflows | Airflow, dbt, Workflows, Tasks, Git and CI/CD |
| Freshness | As fresh as the last sync | As fresh as the last pipeline run |
| Where golden records live | In the hub, copied back on a schedule | In your catalog, beside the source data |
Matching runs inside your own data platform, on its compute, reading and writing its tables. Records are never copied to a separate matching system and synced back.
Databricks, Snowflake, Microsoft Fabric, Google Cloud and AWS. Zingg also reads and writes any source with a Spark connector.
Yes. Zingg runs on your compute with your credentials, and both its input and its output are tables or files in your account.
As often as your pipeline runs. With incremental runs, each run matches only new and changed records against the entities already resolved, and ZINGG_IDs stay stable.
The same way as any other job on your platform: job and query history, logs, lineage, cost reports and the alerting you already use.
Resolve every customer, supplier and product where your data already lives.