All Interzoid products and tools from a single launch point: Quickly solve data challenges - better ROI for everything your data flows into -> Launch Now!

🧱 Databricks Data Matching Wizard

Connect directly to a Databricks SQL warehouse and find matching clusters, no file exports needed

The Databricks Data Matching Wizard is a browser-based, step-by-step tool that connects directly to a SQL warehouse in your Databricks workspace and uses Interzoid's AI-powered similarity algorithms to identify and cluster matching records within your tables. Whether you need to deduplicate company names, match individual names, or find address variations, the wizard walks you through the entire process: connecting to the database, selecting a table and columns, estimating the cost, running the match, and reviewing the results in a sortable, searchable spreadsheet view.

It works with Databricks on AWS, Azure, and Google Cloud, with any Unity Catalog table or view your access token can read, including Delta tables, external tables, and Delta Sharing tables. The wizard supports 17 languages and guides you through a cascading connection flow: connect, then select from your catalogs, schemas, and tables using dropdown menus populated directly from the warehouse. No need to manually look up or type object names.

1Prerequisites

Before using the Databricks Data Matching Wizard, you will need:

  • An Interzoid API Key: Register for an account and obtain your unique API license key. This key authenticates your requests and tracks usage credits.
  • A running SQL warehouse and a personal access token: The token must belong to a user or service principal with SELECT on the tables you want to match (and USE CATALOG and USE SCHEMA on their parents). A dedicated service principal with read-only grants is recommended; see Connect to Databricks.
  • Network access from Interzoid: Most workspaces accept connections from anywhere. If yours has an IP access list, add Interzoid's addresses to it first; see Network Access.
  • Available Credits: Each record processed consumes one API credit. The wizard counts the rows in your table and shows an estimate before you run, so you can confirm your balance covers the job.

2Launch the Wizard and Enter Your API Key

Open the Databricks Data Matching Wizard in your browser. Before beginning, enter your Interzoid API key in the top-right area of the header bar. Your key will be saved in your browser for future sessions.

  • API Key Field: Type or paste your API key into the input field in the header. Click the lock/eye icon to toggle visibility. The API Key label links to your account page.
  • Check Credits: Click the Credits button to see your current credit balance. The balance is also used for the cost estimate on the Run tab. Approved accounts may run a negative balance: the wizard shows a negative balance in amber with a note, not as an error, and the job proceeds with usage beyond the balance billed to the account.
  • Language Selection: Click the language dropdown in the navigation bar to switch between any of the 17 supported languages. You can also set the language via URL parameter: ?lang=fr for French, ?lang=ja for Japanese, and so on.
  • Resources & Support: The Resources menu links to this guide, a sample match report, Interzoid Central Command, and support.

Once your API key is entered, click Get Started on the introduction screen to begin the wizard.

3Select a Matching Function

The wizard presents six matching functions. Choose the one that matches your data and use case. Each card shows a description, the credit cost per record, how many input columns the function needs, and the column parameters it requires. The function you used most recently is marked Last used and pre-selected the next time you open the wizard.

Single-Column Functions

These functions analyze one column of data to find matches:

Function Use Case Column Required
Company Name Matching Match variations like "IBM", "I.B.M. Corp", "International Business Machines" Company Name
Individual Name Matching Match "James Johnston", "Jim Johnston", "J. Johnston" as the same person Full Name
Street Address Matching Match "400 E Broadway St" with "400 East Broadway Street" Address

Combination Functions

These functions use two columns together for higher matching precision:

Function Use Case Columns Required
Company + Address Higher precision matching using both company name and street address Company Name, Address
Company + Full Name Contact deduplication using company and individual name Company Name, Full Name
Address + Full Name Person-at-address matching using address and individual name Address, Full Name

Click on the card for your chosen function (or select it with the keyboard), then click Next to proceed.

4Connect to Databricks

Enter the SQL warehouse details, click Connect, and then use the cascading dropdown menus to navigate to your data. The wizard connects to the warehouse in real time and presents the available objects at each level. The warehouse itself is identified by its HTTP path, so there is no separate warehouse selection step.

Connection Flow

Workspace, HTTP Path & Token → Catalog → Schema

Two Ways to Enter the Connection

The toggle at the top of the form switches between them:

  • Connection Fields: Enter the workspace hostname, the warehouse HTTP path, and a personal access token. There is no port or SSL setting: Databricks is always reached over HTTPS on port 443. The catalog is chosen from a dropdown after connecting.
  • Connection String: Paste a complete DSN in the Databricks Go driver form: token:dapi...@dbc-a1b2c3d4-e5f6.cloud.databricks.com:443/sql/1.0/warehouses/abc123?catalog=main. The token, workspace, and warehouse path all travel inside it. When the string names a catalog the wizard goes straight to schema selection. A copy button and a show/hide toggle sit next to the field.

Where to Find Each Value

Everything the wizard needs is on two pages of the Databricks workspace UI. The same values work on AWS, Azure, and Google Cloud.

Value Where to find it Notes
Server hostname SQL Warehouses, open the warehouse, Connection details tab Looks like dbc-a1b2c3d4-e5f6.cloud.databricks.com (AWS), adb-1234567890123456.7.azuredatabricks.net (Azure), or 1234567890123456.7.gcp.databricks.com (Google Cloud). Enter it without https://.
HTTP path Same Connection details tab Looks like /sql/1.0/warehouses/abc123def456. It identifies the SQL warehouse, so this is also where you choose which warehouse pays for the queries. The warehouse must be running or set to auto-start.
Personal access token Your user menu, Settings, Developer, Access tokens, Generate new token Starts with dapi. Copy it when it is created; it is not shown again. Give it a lifetime and a comment such as "Interzoid matching". Tokens for a service principal are created with the Databricks CLI or REST API instead.
Catalog Chosen from a dropdown after connecting Only Unity Catalog catalogs the token can see are listed. The legacy hive_metastore catalog appears when the workspace still exposes it.

Network Access

The wizard does not run in your browser's network. The matching API connects to your SQL warehouse from Interzoid's servers. Most workspaces accept connections from any address, in which case nothing needs to change. If your workspace has an IP access list enabled, connections from unlisted addresses are refused with a 403 error, so add the following addresses to the allow list (Admin settings, Security, IP access list, or the ip-access-lists API):

Interzoid outbound addresses: 203.0.113.10, 203.0.113.11

Workspaces with Private Link only (no public front end) cannot be reached from outside your network; use a workspace with a public endpoint, or contact support about a dedicated connector.

Recommended Setup: a Read-Only Service Principal

For ongoing use, create a service principal (or a dedicated user) that can read the tables you want to match and nothing else, generate its token, and grant it access to the warehouse. Access can be revoked at any time by revoking the token or the grants. Run these in a SQL editor as a metastore or catalog admin:

-- Unity Catalog grants for the principal that owns the token
GRANT USE CATALOG ON CATALOG main TO `interzoid-reader`;
GRANT USE SCHEMA  ON SCHEMA  main.sales TO `interzoid-reader`;
GRANT SELECT      ON SCHEMA  main.sales TO `interzoid-reader`;   -- every table in the schema

-- Or a single table instead of the whole schema
GRANT SELECT ON TABLE main.sales.customers TO `interzoid-reader`;

-- The principal also needs CAN USE on the SQL warehouse (Permissions button on the warehouse page)

Enter the principal's token in the wizard. SELECT granted at the schema level covers tables created later; USE CATALOG and USE SCHEMA are what make the catalog and schema appear in the dropdowns.

After Connecting

  • Connect Button: Click Connect to sign in. If the connection succeeds, the wizard loads your catalogs (or, in connection string mode, the schemas of the catalog named in the string). If it fails, the message says which part went wrong: a hostname that could not be resolved, an invalid or expired token, an HTTP path that does not match a warehouse, an address blocked by an IP access list, or a warehouse that is still starting (wait a minute and try again).
  • Catalog: Select the catalog containing the table you want to match against. The wizard then loads the schemas within that catalog.
  • Schema: Select the schema that contains your target table. default is pre-selected when it exists.
Remembering the connection: The Remember these connection details on this browser checkbox is off by default. When on, the hostname, HTTP path, token, and connection string are stored in this browser's local storage only, so you can reconnect without retyping them. Turning it off erases them. Leave it off on shared computers.
Security Note: Your access token (or a connection string that contains one) is sent to the matching API over HTTPS in the body of each request, never in a URL, and is not retained by Interzoid after the request completes. Processing is read-only: the API issues SELECT statements against the table and columns you choose and nothing else. Every query is also recorded in your warehouse's query history, so you can audit exactly what was read.

Once you have selected a catalog and schema, click Next to proceed to table and column selection. To connect to a different warehouse, click Disconnect.

5Select Table, Columns, and Options

Choose the table to match against, confirm which columns hold the data to match on, and decide what the output should contain.

Table Selection

The wizard presents a dropdown of all tables and views in the schema you selected, including external tables, materialized views, and tables shared with you through Delta Sharing. Choosing one does three things at once: it loads the column names, fetches the first five rows as a preview, and counts the rows so the Run tab can show a cost estimate. The row count appears directly under the table dropdown.

Match Columns

For each matching parameter required by your chosen function, the wizard looks at the column names and pre-selects the most likely one (a column named company_name for Company Name, street_address for Address, and so on). Pre-selected columns are marked, and you can change any of them from the dropdown. Under each selection the wizard shows what the first record will actually send to the matching engine, so a wrong guess is obvious before you run.

  • Single-column functions: Select one column for the matching parameter.
  • Combination functions: Select two different columns, one for each parameter. The two columns must be different.

Table Preview

Below the column selectors, a preview of the first rows of the table highlights the columns you have mapped, so you can see the data in context. Every column type is rendered as text, including struct, array, map, decimal, and timestamp columns. If a preview cannot be loaded for a table, the mapping still works from the column names.

Output Columns

Use the checkboxes to choose which columns from the table appear in the match report. The match columns are always included and show as checked and locked, so you only need to tick the additional columns you want. Select all and Select none buttons are available for wide tables.

Tip: Include identifying columns (a primary key, city, state, and so on) to make the match report more useful for downstream analysis. Including the primary key is what lets you load the similarity keys back into Databricks and join them to the original rows.

Output Options

These settings are remembered in your browser across sessions.

  • Include header row in output: When enabled (default), the first line of the output lists the column names, with simkey as the last name when similarity keys are shown. The spreadsheet view uses this row to label its columns.
  • Show similarity keys in output: When enabled (default), each output record includes the generated similarity key as the last column. Records with the same key are matches. Disable this for clean output with only the selected data columns (the spreadsheet view can then no longer group matched records).
  • Show matching records only: When enabled (default), only records that have at least one other matching record are returned, grouped into clusters. Disable it to see every record in the table after processing.
  • Keep original record order: Available only when all records are returned. When enabled, output row 1 is table row 1 and so on, which is what you want if you plan to load the similarity keys back alongside the original data. When disabled, similar records are sorted together by similarity key.

Click Next when your selections and options are configured.

6Review and Run

The final screen shows a summary of all your selections: matching function, workspace, HTTP path, catalog, schema, table, column assignments, and output options. Below the summary are the number of records to process and the estimated cost in credits, with a banner comparing the estimate to your current balance:

  • Green: your balance covers the run.
  • Amber: your balance is below the estimate.
  • Blue: your balance is negative. Approved accounts may run a negative balance; the job proceeds and usage beyond the balance is billed to the account.
  • Grey: the balance has not been checked yet; click Check Credits.

Click the green Run Match button to start processing. The wizard will:

  • Validate your API key and check your account's credit position for the job.
  • Connect to the SQL warehouse and read the selected columns from your table.
  • Process each record through the selected matching algorithm using concurrent workers for performance.
  • Generate the match report with records sorted and grouped into clusters of matching entries.

A progress indicator is shown while the job runs. Processing time depends on the number of records: most tables complete within seconds, while very large tables (up to 500,000 records) may take a minute or more. If a run fails, the reason (a rejected job size, a credit limit, a dropped connection) is shown in a red banner above the results area.

Large tables: The run reads the selected columns in one SELECT. For tables well beyond the 500,000-record limit, create a view that filters to the rows you want to match (a region, a date range, active records only) and match the view instead. A warehouse that is set to auto-stop may need a minute to start before the first query runs.

7Review the Results

When the run completes, a summary line reports how many records came back and, when similarity keys are included, how many match groups they form. The results panel below it shows the first 1,000 rows of the output; for larger results a note says how many rows there are in total, and the Spreadsheet View, Open as Text File, and Save Results buttons always work on the complete output.

Spreadsheet View

Click Spreadsheet View to open the results in a grid designed for reviewing match reports:

  • Grouping: matched records are tinted in alternating shades per similarity group and boxed, so each cluster reads as a unit. When all records are returned, records with no match partner stay plain.
  • Search: filters every row by any cell value.
  • Sort: click a column header to sort ascending, again for descending, and a third time to restore the original order. Sorting by the similarity key column regroups the records.
  • Columns: drag a header edge to resize, double-click it to fit the content, or use the fit-all button. The key column is highlighted.
  • Paging and full screen: large results are shown 500 rows per page (search and sort still cover every row), and the grid can expand to fill the window. Press Escape to close it.

Example Output

For a company name match on a table with columns id, company, address, city, state, with similarity keys and the header row enabled:

id,company,address,city,state,simkey
1041,IBM Corporation,1 New Orchard Rd,Armonk,NY,d477E1d7sG6dja3hDNsk9P
2288,I.B.M. Corp,1 New Orchard Road,Armonk,NY,d477E1d7sG6dja3hDNsk9P

1107,Microsoft Inc.,1 Microsoft Way,Redmond,WA,k8Rp2mNx4wQjL9vB3cYh7T
1932,Microsoft Corporation,One Microsoft Way,Redmond,WA,k8Rp2mNx4wQjL9vB3cYh7T
3015,MSFT Corp,1 Microsoft Way,Redmond,WA,k8Rp2mNx4wQjL9vB3cYh7T

In this example, the first cluster contains two records identified as variations of IBM, and the second cluster contains three records identified as variations of Microsoft. The last column in each row is the similarity key; all records sharing the same key are considered matches.

Loading the Keys Back into Databricks

With the primary key and the similarity key in the output, consolidation becomes ordinary SQL. Upload the saved file with the Catalog Explorer "Create or modify table" uploader, or stage it in a volume and use COPY INTO, then join on the primary key:

CREATE TABLE main.sales.company_simkeys (id INT, simkey STRING);

COPY INTO main.sales.company_simkeys
FROM '/Volumes/main/sales/uploads/company-name-only_databricks_matches.csv'
FILEFORMAT = CSV
FORMAT_OPTIONS ('header' = 'true', 'inferSchema' = 'true');

-- Every record with at least one match partner, with its group
SELECT c.*, k.simkey,
       COUNT(*) OVER (PARTITION BY k.simkey) AS group_size
FROM   main.sales.customers c
JOIN   main.sales.company_simkeys k ON k.id = c.id
ORDER  BY k.simkey, c.id;

Run the match with Show matching records only turned off and Keep original record order on if you want a key for every row rather than only the matched ones.

8Save Your Results

Click Save Results above the results panel (or in the spreadsheet view) to download the complete match report as a CSV file. On supported browsers, a save dialog lets you choose the file name and location; on other browsers, the file downloads automatically. Open as Text File opens the complete output in a new browser tab instead.

The saved file is clean, delimited text that can be imported directly into spreadsheets, databases, or other data processing tools for further analysis.

Data Pipeline Integration: With the header row turned off, the output contains only data rows and blank-line cluster separators, which suits automated pipelines. With the header row on, the output opens cleanly in a spreadsheet or loads with COPY INTO ... ('header' = 'true'). The underlying REST API can be called directly for fully automated matching workflows; see the next step.

9API Access for Developers

The Databricks Data Matching Wizard is powered by a REST API that can also be called directly from your own applications, notebooks, or Databricks Workflows. The /match and /discover endpoints accept the same parameters either as a GET query string or, recommended, as a JSON body in a POST request. Use POST so the access token never appears in a URL or a server log.

Example: Match (POST)

$ curl -X POST "https://match.interzoid.com/match" \
       -H "Content-Type: application/json" \
       -d '{
    "driver": "databricks",
    "db_host": "dbc-a1b2c3d4-e5f6.cloud.databricks.com",
    "db_http_path": "/sql/1.0/warehouses/abc123def456",
    "db_token": "dapiXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "db_database": "main",
    "db_schema": "sales",
    "table": "customers",
    "columns": "id,company,address,city,state",
    "function": "company-name-only",
    "company_column_name": "company",
    "apikey": "YOUR_API_KEY",
    "showkeys": "true",
    "matchesonly": "true",
    "includeheaders": "true"
  }'

Example: Match with a Connection String (GET)

A complete DSN can be passed in db_host, in which case db_token, db_http_path and (when present as ?catalog=) db_database are taken from the string. It must be URL-encoded in a query string:

$ curl "https://match.interzoid.com/match?\
driver=databricks&\
db_host=token%3AdapiXXXXXXXX%40dbc-a1b2c3d4-e5f6.cloud.databricks.com%3A443%2Fsql%2F1.0%2Fwarehouses%2Fabc123def456%3Fcatalog%3Dmain&\
db_schema=sales&\
table=customers&\
columns=id,company,address,city,state&\
function=company-name-only&\
company_column_name=company&\
apikey=YOUR_API_KEY&\
showkeys=true&\
matchesonly=true&\
includeheaders=true"

Databricks Match API Parameters

Parameter Required Description
driver Yes Set to databricks
db_host Yes Workspace hostname without https://, or a complete DSN in the token:...@host:443/sql/1.0/warehouses/... form
db_http_path Unless in db_host The SQL warehouse HTTP path, for example /sql/1.0/warehouses/abc123def456
db_token Unless in db_host Personal access token (dapi...). Send it in a POST body.
db_database Unless in db_host Unity Catalog catalog name (for example main)
db_schema Yes Schema name (for example default)
table Yes Name of the table or view to read from. schema.table and catalog.schema.table are also accepted.
columns Yes Comma-separated list of column names to include in the output
function Yes One of: company-name-only, fullname-only, address-only, company-and-address, company-and-fullname, address-and-fullname
apikey Yes Your Interzoid API license key
company_column_name When applicable Name of the column containing company names
fullname_column_name When applicable Name of the column containing individual names
address_column_name When applicable Name of the column containing street addresses
showkeys No true (default) or false: append the similarity key to each output record
matchesonly No true (default) or false: return only matching clusters, or every record
includeheaders No true (default) or false: write a header row of column names as the first line
preserveorder No false (default) or true: keep table order instead of sorting by similarity key. Applies only when matchesonly=false.

Catalog, schema, table, and column names are backtick-quoted by the API. Databricks stores them in lower case and matches them case-insensitively, so pass them as /discover returns them.

Discovery API

The wizard's dropdown menus, table preview, and row count are powered by a /discover endpoint that you can also call directly. It takes the same connection parameters as /match plus a resource. The warehouse is fixed by the HTTP path, so resource=warehouses returns an empty list and a shared client can skip ahead; resource=databases lists Unity Catalog catalogs:

# List catalogs (also validates the token and warehouse). Shown as GET for brevity;
# POST a JSON body with the same fields to keep the token out of the URL.
$ curl "https://match.interzoid.com/discover?driver=databricks&db_host=dbc-a1b2c3d4-e5f6.cloud.databricks.com&db_http_path=/sql/1.0/warehouses/abc123def456&db_token=dapiXXXX&resource=databases"

# List schemas within a catalog
$ curl "https://match.interzoid.com/discover?...&db_database=main&resource=schemas"

# List tables and views within a schema
$ curl "https://match.interzoid.com/discover?...&db_database=main&db_schema=sales&resource=tables"

# List columns within a table
$ curl "https://match.interzoid.com/discover?...&db_database=main&db_schema=sales&table=customers&resource=columns"

# Count the rows in a table (for a cost estimate; served from Delta statistics)
$ curl "https://match.interzoid.com/discover?...&db_database=main&db_schema=sales&table=customers&resource=rowcount"

# First five rows of a table, as column names plus rows
$ curl "https://match.interzoid.com/discover?...&db_database=main&db_schema=sales&table=customers&resource=preview"

The list resources and rowcount return a JSON object with the names (or the count) in items; preview adds a rows array:

{"resource":"databases","items":["main","analytics","hive_metastore"]}

{"resource":"rowcount","items":["12480"]}

{"resource":"preview","items":["id","company","city"],"rows":[["1041","IBM Corporation","Armonk"],["2288","I.B.M. Corp","Armonk"]]}

The /match API returns plain text output identical to what the wizard displays, making it suitable for piping into other tools or storing directly as a file.

The Databricks Data Matching Wizard makes it easy to discover hidden duplicates, inconsistent values, and matching records directly within your lakehouse, on whichever cloud your workspace runs. Whether you use it interactively through the browser-based wizard or programmatically through the API, it delivers clean, actionable match reports that help you improve the quality, consistency, and value of your data, without ever exporting a file. If you have any questions or need assistance, don't hesitate to reach out to our support team.