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.