This article describes how to reset a Reltio Data Sharing with Databricks configuration by deleting an existing Databricks Data Share adapter, recreating the adapter, provisioning the Databricks Data Sharing resources, performing the required initial synchronization, and validating the new Data Pipeline.
This procedure is appropriate when a Databricks Data Share must be rebuilt—for example, when replacing an existing adapter configuration, changing the Data Share name, or reprovisioning the Data Share resources.
Important: Deleting and recreating a Data Share is an administrative operation. Verify the tenant, environment, adapter name, and Databricks sharing identifier before executing the procedure. The source procedure specifically requires confirmation that the adapter being deleted is the intended adapter before issuing the DELETE request.
Prerequisites
Before beginning, collect the following information:
- Reltio tenant ID
- Reltio environment hostname
- Data Pipeline Hub (DPH) hostname
- Existing Databricks Data Share adapter name
- New unique adapter name
- Databricks sharing identifier for the target environment
- Required
ovOnlysetting - Appropriate authorization for the Reltio and Data Pipeline Hub APIs
- Environment-appropriate
taskPartsCountif distributed synchronization will be used
Do not copy environment-specific values such as Databricks identifiers, timestamps, pipeline IDs, or task identifiers from another environment.
The Data Share name must be unique, and the adapter configuration contains the Databricks identifier and ovOnly configuration.
Procedure
Step 1 — Delete the Existing Databricks Data Share Adapter
First, remove the existing adapter configuration.
DELETE https://<DPH_HOST>/api/tenants/<TENANT_ID>/adapters/<EXISTING_ADAPTER_NAME>
Before submitting the request, confirm:
<DPH_HOST>belongs to the intended environment.<TENANT_ID>is the correct tenant.<EXISTING_ADAPTER_NAME>is the Data Share adapter that should be removed.
The source procedure uses this operation to remove the previous adapter configuration before creating the replacement adapter.
Step 2 — Create the New Databricks Data Share Adapter
Create the replacement adapter:
POST https://<DPH_HOST>/api/tenants/<TENANT_ID>/adapters
A configuration based on the validated procedure has the following structure:
{
"type": "datashare-databricks",
"enabled": true,
"dataFilteringEnabled": false,
"sparkJobVersion": "v2",
"name": "<NEW_UNIQUE_ADAPTER_NAME>",
"databricksConfig": {
"identifier": "<DATABRICKS_SHARING_IDENTIFIER>",
"ovOnly": true
},
"createdBy": "<USER>",
"createdOn": "<CURRENT_UTC_TIMESTAMP>",
"nativeDeltaProcessing": false
}
Replace all placeholders with values appropriate for the target environment.
In particular:
namemust contain the intended unique Data Share adapter name.identifiermust be the Databricks sharing identifier for the target environment.ovOnlymust reflect the required sharing configuration.- Do not reuse another environment's
createdOntimestamp or Databricks identifier.
The reviewed implementation used a datashare-databricks adapter with sparkJobVersion: "v2" and retained ovOnly: true and the applicable Databricks identifier.
Step 3 — Provision the Databricks Data Sharing Resources
Creating the adapter configuration does not complete the setup. Run the Data Share setup action for the newly created adapter:
POST https://<DPH_HOST>/api/tenants/<TENANT_ID>/adapters/<NEW_ADAPTER_NAME>/actions/setup-databricks-datashare
A successful response should indicate:
{
"status": "SUCCESS",
"message": "[<TENANT_ID>/<NEW_ADAPTER_NAME>] Databricks Data Sharing resources created successfully"
}
Do not begin the initial synchronization until this operation completes successfully. The validated procedure explicitly requires a successful setup result before proceeding.
Step 4 — Synchronize the Tenant Data
After provisioning the Data Share, perform the initial synchronization.
The reviewed procedure requires the data types to be synchronized sequentially, completing and validating one synchronization before starting the next.
Use this sequence:
- Entities
- Relations
- Merges
- Matches
- Interactions
- Activities
The general request is:
POST https://<RELTIO_HOST>/reltio/api/<TENANT_ID>/syncToDataPipeline?dataTypes=<DATA_TYPE>&distributed=true&taskPartsCount=<TASK_PARTS_COUNT>&options=parallelExecution
For Entities:
POST https://<RELTIO_HOST>/reltio/api/<TENANT_ID>/syncToDataPipeline?dataTypes=entities&distributed=true&taskPartsCount=<TASK_PARTS_COUNT>&options=parallelExecution
When the request is accepted, Reltio schedules a background task. Capture the createdTime returned by each synchronization request because it can be used to locate that specific task.
Important:
taskPartsCountshould be determined for the applicable tenant/environment. Values used for one tenant should not be assumed to be Reltio defaults. The source procedure explicitly identifies its task-part values as tenant-specific. Check the physical tenant maxTaskCount to determine the appropriate task count. Consider other activity that may be occuring on the tenant during a synchronization
Step 5 — Monitor the Synchronization
Use the createdTime returned from the synchronization request to locate the active task:
GET https://<RELTIO_HOST>/reltio/<TENANT_ID>/tasks?showHidden=true&filter=equals(createdTime,<CREATED_TIME>)
Continue monitoring until the task completes and is no longer active. Then retrieve the completed task from task history:
GET https://<RELTIO_HOST>/reltio/<TENANT_ID>/tasks/history?showHidden=true&filter=equals(createdTime,<CREATED_TIME>)
Step 6 — Validate Each Synchronization Before Continuing
Review the task's currentState.
A successful synchronization should have values equivalent to:
{
"numberOfFailedToPublishEvents": 0,
"skippedEntitiesCount": 0,
"errors": [],
"status": "Completed"
}
Before proceeding to the next data type, confirm:
status = CompletednumberOfFailedToPublishEvents = 0skippedEntitiesCount = 0errors = []
If skipped objects or errors are reported, stop and investigate before starting the next synchronization.
Repeat the synchronization, monitoring, and validation process sequentially for:
entities
↓
relations
↓
merges
↓
matches
↓
interactions
↓
activities
The source procedure explicitly requires that each preceding data type be completed and pass validation before the next one begins.
Step 7 — Check Pipeline Status
After recreating the Data Share, retrieve its Data Pipeline status:
GET https://<DPH_HOST>/api/tenants/<TENANT_ID>/pipelines/status
Locate the pipeline associated with:
<TENANT_ID>/<NEW_ADAPTER_NAME>
Confirm that the new pipeline is running and capture its returned:
pipeline_id
Pipeline IDs are environment-specific and generated as part of the pipeline configuration. Do not reuse a pipeline ID from another environment.
Step 8 — Review Pipeline Events
Using the newly returned pipeline_id:
GET https://<DPH_HOST>/api/tenants/<TENANT_ID>/pipelines/<PIPELINE_ID>/events
Review the pipeline state and errors.
A healthy result in the validated procedure included:
{
"current_state": "RUNNING",
"latest_update_state": "RUNNING",
"errors": []
}
In particular, verify:
"errors": []
Step 9 — Review Data Pipeline Event Monitoring
Event processing can also be reviewed through the Data Pipeline Hub Event Monitoring API:
GET https://<DPH_HOST>/api/tenants/<TENANT_ID>/monitoring/_eventMonitoring
Review the results for incomplete or unsuccessful event processing before considering the Data Share reset complete.
Troubleshooting
The adapter was created, but the Data Share is not available
Confirm that the following setup action was executed successfully:
POST https://<DPH_HOST>/api/tenants/<TENANT_ID>/adapters/<ADAPTER_NAME>/actions/setup-databricks-datashare
Do not start synchronization until the setup action succeeds.
The synchronization task reports skipped objects or errors
Do not continue to the next data type.
Review:
status numberOfFailedToPublishEvents skippedEntitiesCount errors
The reset procedure requires successful validation before moving to the next synchronization stage.
The expected pipeline cannot be found
Run:
GET https://<DPH_HOST>/api/tenants/<TENANT_ID>/pipelines/status
Confirm that adapter_id corresponds to the newly created adapter and use the pipeline_id returned for that environment.
The Data Share exists, but expected data is missing in Databricks
Verify all three layers:
- The applicable
syncToDataPipelinetask completed successfully. - The new Data Pipeline is running and its events endpoint reports no errors.
_eventMonitoringdoes not show incomplete or failed processing.
Customer-side Databricks validation should then confirm that the expected shared data is available.
Comments
Please sign in to leave a comment.