Stay organized with collections
Save and categorize content based on your preferences.
Introduction to the BigQuery entity resolution framework
This document describes the architecture of the BigQuery entity
resolution framework. Entity resolution is the ability to match records across
shared data where no common identifier exists or to augment shared data using an
identity service from a Google Cloud partner.
This document is intended for entity resolution end users (hereafter referred
to as end users) and identity providers. For implementation details, see
Configure and use entity resolution in
BigQuery.
You can use BigQuery entity resolution for any data that is
prepared before contributing data into a
data clean room.
Entity resolution is available in both the on-demand and capacity pricing
models and in all BigQuery editions.
Benefits
As an end user, you can benefit from entity resolution in the following ways:
You can resolve entities in place without invoking data transfer fees because
a subscriber or Google Cloud partner matches your data to their identity table
and writes the match results to a dataset in your project.
You don't need to manage extract, transform, and load (ETL) jobs.
As an identity provider, you can benefit from entity resolution in the
following ways:
You can offer entity resolution as a managed software as a service (SaaS)
offering on
Google Cloud Marketplace.
You can use your proprietary identity graphs and match logic without
revealing them to users.
Architecture
BigQuery implements entity resolution by using remote function
calls that activate entity resolution processes in an identity provider's
environment. Your data does not need to be copied or moved during this process.
The following diagram and explanation describe the workflow for entity
resolution:
The end user grants the identity provider's service account read access
to their input dataset, and write access to their output dataset.
The user calls the remote function that matches their input data with
the provider's identity graph data. Matching parameters are passed to the
provider with the remote function.
The provider's service account reads the input dataset and processes it.
The provider's service account writes the entity resolution results to
the user's output dataset.
The following sections describe the end-user components and provider projects.
End-user components
End-user components include the following:
Remote function call: a call that runs a procedure defined and
implemented by the identity provider. This call starts the entity resolution
process.
Input dataset: the source dataset that contains the data to be
matched. Optionally, the dataset can contain a metadata table with
additional parameters. Providers specify schema requirements for input
datasets.
Output dataset: the destination dataset where the provider stores
the matched results as an output table. Optionally, the provider can write
a job status table that contains entity resolution job details to this
dataset. The output dataset can be the same as the input dataset.
Identity provider components
Identity provider components include the following:
Control plane: contains a
BigQuery remote function
that orchestrates the matching process. This function can be implemented as
a Cloud Run job, or a
Cloud Run function. The
control plane can also contain other services, such as authentication and
authorization.
Data plane: contains the identity graph dataset and the stored
procedure that implements the provider matching logic. The stored procedure
can be implemented as a
SQL stored procedure
or an
Apache Spark stored procedure.
The identity graph dataset contains the tables that the end-user data is
matched against.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eBigQuery entity resolution matches records across shared data without common identifiers or augments data using an identity service from a Google Cloud partner.\u003c/p\u003e\n"],["\u003cp\u003eEnd users benefit from in-place entity resolution without data transfer fees or the need to manage ETL jobs, as the matching is done by a subscriber or Google Cloud partner.\u003c/p\u003e\n"],["\u003cp\u003eIdentity providers can offer entity resolution as a managed SaaS product on Google Cloud Marketplace and use their proprietary identity graphs without revealing them.\u003c/p\u003e\n"],["\u003cp\u003eBigQuery's entity resolution architecture uses remote function calls to activate processes in the identity provider's environment without moving the user's data.\u003c/p\u003e\n"],["\u003cp\u003eThe entity resolution process involves end users granting access to their datasets, calling a remote function, and the provider reading the input and writing the matched results to the user's output dataset.\u003c/p\u003e\n"]]],[],null,["# Introduction to the BigQuery entity resolution framework\n========================================================\n\nThis document describes the architecture of the BigQuery entity\nresolution framework. Entity resolution is the ability to match records across\nshared data where no common identifier exists or to augment shared data using an\nidentity service from a Google Cloud partner.\n\nThis document is intended for entity resolution end users (hereafter referred\nto as *end users* ) and identity providers. For implementation details, see\n[Configure and use entity resolution in\nBigQuery](/bigquery/docs/entity-resolution-setup).\n\nYou can use BigQuery entity resolution for any data that is\nprepared before contributing data into a\n[data clean room](/bigquery/docs/data-clean-rooms).\nEntity resolution is available in both the on-demand and capacity pricing\nmodels and in all BigQuery editions.\n\nBenefits\n========\n\nAs an end user, you can benefit from entity resolution in the following ways:\n\n- You can resolve entities in place without invoking data transfer fees because a subscriber or Google Cloud partner matches your data to their identity table and writes the match results to a dataset in your project.\n- You don't need to manage extract, transform, and load (ETL) jobs.\n\nAs an identity provider, you can benefit from entity resolution in the\nfollowing ways:\n\n- You can offer entity resolution as a managed software as a service (SaaS) offering on [Google Cloud Marketplace](/marketplace/docs/partners/integrated-saas).\n- You can use your proprietary identity graphs and match logic without revealing them to users.\n\nArchitecture\n------------\n\nBigQuery implements entity resolution by using remote function\ncalls that activate entity resolution processes in an identity provider's\nenvironment. Your data does not need to be copied or moved during this process.\nThe following diagram and explanation describe the workflow for entity\nresolution:\n\n1. The end user grants the identity provider's service account read access to their input dataset, and write access to their output dataset.\n2. The user calls the remote function that matches their input data with the provider's identity graph data. Matching parameters are passed to the provider with the remote function.\n3. The provider's service account reads the input dataset and processes it.\n4. The provider's service account writes the entity resolution results to the user's output dataset.\n\nThe following sections describe the end-user components and provider projects.\n\n### End-user components\n\nEnd-user components include the following:\n\n- **Remote function call**: a call that runs a procedure defined and implemented by the identity provider. This call starts the entity resolution process.\n- **Input dataset**: the source dataset that contains the data to be matched. Optionally, the dataset can contain a metadata table with additional parameters. Providers specify schema requirements for input datasets.\n- **Output dataset**: the destination dataset where the provider stores the matched results as an output table. Optionally, the provider can write a job status table that contains entity resolution job details to this dataset. The output dataset can be the same as the input dataset.\n\n### Identity provider components\n\nIdentity provider components include the following:\n\n- **Control plane** : contains a [BigQuery remote function](/bigquery/docs/remote-functions) that orchestrates the matching process. This function can be implemented as a [Cloud Run](/run/docs/overview/what-is-cloud-run) job, or a [Cloud Run function](/functions/docs/concepts/overview). The control plane can also contain other services, such as authentication and authorization.\n- **Data plane** : contains the identity graph dataset and the stored procedure that implements the provider matching logic. The stored procedure can be implemented as a [SQL stored procedure](/bigquery/docs/procedures) or an [Apache Spark stored procedure](/bigquery/docs/spark-procedures). The identity graph dataset contains the tables that the end-user data is matched against.\n\n| **Note:** Identity graphs can also be stored in some external databases.\n\nWhat's next\n-----------\n\n- To learn how to use entity resolution in your project, see [Configure and use entity resolution in BigQuery](/bigquery/docs/entity-resolution-setup)."]]