Global Operational Data Store (ODS)
Nitro uses inbound connectors to capture data from multiple data sources, which includes multiple CRM orgs and data providers. This leaves data segmented at the connector level. The Global Operational Data Store (ODS) is the central repository in which both Veeva-delivered and customer-created multi-connector ODS tables are found. Tables in the Global ODS are sourced from ODS tables in specific connectors. Mappings are used to combine the source data into a single, standard table in the Global ODS. The Global ODS serves as the foundation for the Global DDS star schema spanning multiple connectors sourced for reporting.
All columns except Native ID are truncated to the expected length. If a column has been extended, the data is truncated in the Global ODS, but the full value remains in the source ODS.
Nitro is built in a ‘push’ format, meaning data is pushed from schema to schema, rather than pulled from one schema to another. Nitro has introduced jobs as the source connector level to push data from source connector to the Global ODS. Only one Load Global ODS job can be run at a time, due to how the swap logic works for inserting new records into the table with no downtime for users.
The following connectors have jobs that push data from a source connector to the Global ODS:
Connector |
Job |
---|---|
CRM |
CRM Load Global ODS |
Network |
Network Load Global ODS |
PromoMats |
Vault Load Global ODS |
MedComms |
Vault Load Global ODS |
Align |
Vault Load Global ODS |
Doximity |
Doximity Load Global ODS |
Medscape |
Medscape Load Global ODS |
Epocrates |
Epocrates Load Global ODS |
ICS |
ICS Load Global ODS |
Symphony | Symphony Load Global ODS |
Symphony Non-Retail |
Symphony Non-RetaiLoad Global ODS |
See Global ODS for data models and supported tables.
Configurable Dynamic Channels
Dynamic channels can be configured in the Global Customer Interaction Repository (CIR) to allow customers to use their own channel definition when populating the Global ODS. Any defined value on the source table can drive what overwrites the Nitro defined activity channel in the Global ODS.
In the nitro_reference_data__v connector, the table map_crm_cir_channel__v defines which fields in the crm ods connector are used to populate the field cir_gbl_ods__v.configurable_channel__v. When the field_value__v matches or is populated, Nitro uses the value in target_value. If no value matches or is not populated, Nitro uses default values.
CSV files should be loaded into the map_crm_cir_channel__v table with a header row, since the table is set to skip the header row.
Column |
Type |
Description |
Example |
---|---|---|---|
org_id__v |
varchar(18) |
18 digit CRM org ID for the source CRM org |
abc123efg456hig789 |
source_table_name__v |
varchar(255) |
Nitro Table Name that matches the value in cir_gbl_ods__v.source_table_name__v |
call2_vod_ods__v |
table_name__v |
varchar(255) |
Nitro Table Name where the field is located to drive the configurable_channel values |
call2_vod_ods__v |
field_name__v |
varchar(255) |
Column used to drive the values in configurable_channel__v |
verteo_channel__v |
field_value__v |
varchar(255) |
Values in field_name__v to identify which records need to be updated |
phone_vod |
target_value__v |
varchar(255) |
Value used in global CIR when corresponding record in source_table match field_value |
Phone |
In the example below, the customer is updating the values for in cir_gbl_ods__v.configurable_channel__v for records coming from the following tables:
- Call
- Sent Email
- Medical Inquiry
Demographic Cross Reference
The Demographic Cross Reference table (demographic_xref_gbl_ods_v) allows users to map multiple identifier fields to a single demographic dimension record. Data sources use multiple account identifier fields, for example, NPI and ME number. All key identifier fields from Network and CRM are then mapped to the Demographic Cross Reference table in the Global ODS.
Supporting Disabled Columns in Global ODS Tables
Inbound connectors feeding global ODS tables routinely have specific columns disabled either in the source system or the connector configuration directly. Nitro ETL jobs responsible for managing the global ODS now automatically insert null values for these disabled or missing columns in global ODS tables. This alleviates the need for changes to inbound connector configurations to support global ODS tables.