This document covers the steps to take to discover, diagnose, and resolve commonly known issues with egress of federal assessments data for the ar-evaluator
service.
To understand commonly known issues with egress of assessment data, it's important to understand the architecture of ar-evaluator
and where egress occurs.
Every day, when the daily cron job runs to produce evaluations data, the following occurs in commercial:
ar-evaluator
(i.e. per unique asset and per assessment ran) the service produces a streamhub event.engex-asset-readiness
) and commercial Classic (zone_ar
) tables.In federal, a similar process happens:
ar-evaluator
(i.e. per unique asset and per assessment ran) the service produces a streamhub event.engex-asset-readiness
) tables.streamhub-relay
.engex-asset-readiness
) and commercial Classic (zone_ar
) tables.Issues most commonly occur in steps 3 and 4 of the federal assessment evaluation process.
control_key
ends in -FR
) is not present in the commercial evaluation_v1
or evaluation_v2
tables AND/OR commercial assessment evaluation data has suddenly stopped appearing in commercial tables.-FR
controls on that same day.com.databricks.sql.transaction.tahoe.schema.DeltaInvariantViolationException: [DELTA_NOT_NULL_CONSTRAINT_VIOLATED] NOT NULL constraint violated for column: <COL-NAME>.
This error typically occurs when federal assessment data that was sent to commercial has null values for a non-nullable field on the table, like asset_id
. Most of the time, this is due to the event specified not properly matching up with the transit policy for the event type. In particular, when the transit policy does not match up properly with an event that should be sent cross boundary, fields from the event can be dropped when the event is sent to commercial, causing federal data to be correctly present in federal Socrates but missing/breaking flows in commercial Socrates.
If malformed data makes it to the commercial tables, resolution can be an arduous process, mainly because the Socrates job will refuse to process well-formed data after seeing malformed data, even if the transit policy is fixed. Below are the steps required to first unblock Socrates from processing data and then remove the malformed data.
asset_class
in the events you are sending are accepted by the transit policy.
streamhub-relay
.evaluation_v1
and evaluation_v2
fluid/schema-evolution
pipeline to run the query against the production tables.
evaluation_v1
and evaluation_v2
nullable: false
(see this sample PR).developers
access level on the Socrates Data Product Engex Asset Readiness SSAM container.Jobs & Pipelines
.engex_asset_readiness
. Click on the job you want to examine, typically ends in source_evaluation_v1
or source_evaluation_v2
.View Details
option under Compute
on the right hand bar of the screen to see more detailed logs from the job.vNext tables for ar-evaluator
are defined here.
Socrates Stream registrations are defined here.
Rate this page: