Area: Ingestion Issues
Sub-Area: Looker Source Configuration & Privacy/Compliance
Issue
When ingesting Looker assets into DataHub, the "Created By" field on dashboards and charts captures the Looker dashboard owner's email address and stores it as ownership metadata. By default, this data persists indefinitely — there is no built-in scheduled purge or automatic anonymization. Additionally, Looker usage history ingestion records viewer email addresses against each dashboard by default. Organizations with privacy or compliance requirements (e.g., GDPR) may need to prevent future ingestion of these emails and retroactively remove email addresses that have already been ingested.
You Might Be Asking
- Do email addresses captured during Looker ingestion ever get automatically deleted or anonymized?
- How do I stop DataHub from ingesting user email addresses from Looker going forward?
- How do I remove email addresses that have already been ingested as Looker asset owners?
- Does Looker usage history also capture user emails?
Solution
The resolution has two parts: (1) updating your ingestion recipe to prevent future email capture, and (2) cleaning up email addresses that were previously ingested.
Part 1: Prevent Future Email Ingestion
-
Option A — Strip emails to usernames only. Set
strip_user_ids_from_email: truein your Looker ingestion recipe. This stores only the username portion of the email (before the@symbol) rather than the full address. The next ingestion run will overwrite existing owner values with the username-only format.source: type: looker config: # ... other config ... strip_user_ids_from_email: true -
Option B — Disable owner extraction entirely. Set
extract_owners: falseto prevent any owner/email data from being written during ingestion. Note that emails already on existing assets will not be removed automatically — see Part 2 for cleanup steps.source: type: looker config: # ... other config ... extract_owners: false -
Disable usage history email capture. Looker usage history ingestion also records the viewer's email address against each dashboard, and this is enabled by default. To prevent this, set
extract_usage_history: false:source: type: looker config: # ... other config ... extract_owners: false extract_usage_history: false
Part 2: Remove Previously Ingested Email Addresses
After updating your recipe and re-running ingestion, any email addresses that were ingested under a previous configuration will remain on existing assets until explicitly removed. Use the DataHub CLI to delete references to each ingested user email (corpuser entity) — this strips the owner reference from all assets pointing to that user.
-
Install or update the DataHub CLI if you have not already:
pip install --upgrade acryl-datahub -
Delete references for each ingested email address. Run the following command once per email address you wish to remove:
For example:datahub delete references --urn "urn:li:corpuser:<email-address>"
This removes the ownership association from all assets that reference that corpuser URN.datahub delete references --urn "urn:li:corpuser:jsmith@example.com" -
Identify which corpuser URNs to target. You can query your DataHub instance to retrieve the list of distinct owner emails associated with Looker assets. If you have a large number of addresses to process, consider scripting the deletion using the DataHub Python SDK:
import subprocess emails_to_remove = [ "user1@example.com", "user2@example.com", # add all addresses identified for removal ] for email in emails_to_remove: urn = f"urn:li:corpuser:{email}" subprocess.run(["datahub", "delete", "references", "--urn", urn], check=True)
Additional Notes
- No automatic purge: DataHub does not automatically expire or anonymize ownership metadata captured during ingestion. Data persists until explicitly overwritten or deleted.
- Deprovisioned users: If a user is deprovisioned in an identity provider (e.g., Okta), their DataHub user profile may be soft-deleted and then hard-deleted after a grace period, but historical asset ownership metadata (including "Created By" emails) is not retroactively removed from assets.
-
Caution with active DataHub accounts: Before deleting references for a corpuser URN, verify whether that email belongs to an active DataHub user account. Running
datahub delete referencesagainst an active account will strip that user's ownership from all assets across DataHub — not just Looker assets. Limit deletion to corpuser URNs that have no associated DataHub login profile and only appear as Looker-derived owners. -
Re-ingestion behavior: If
extract_ownersis set tofalseand ingestion is re-run, the owner field will not be overwritten — but previously ingested owner data must still be cleaned up manually as described in Part 2. - Retention policies: DataHub supports configurable retention policies that can delete old versions of metadata aspects, but these do not affect the current (latest) version. They are not a substitute for the delete-references approach described above.
- These settings are available in the DataHub Looker source connector. Ensure you are running a recent version of
acryl-datahubfor full compatibility.
Related Documentation
- Looker Ingestion Source Reference
- How to Delete Metadata in DataHub
- DataHub Metadata Aspects Overview
- DataHub Retention Policies
Tags: looker, ingestion, email, privacy, GDPR, ownership, corpuser, delete-references, strip_user_ids_from_email, extract_owners