Mapping Principles
These principles must guide every mapping decision. Violating them leads to data quality problems, ETL complexity, and rework.
| Principle | Explanation |
|---|---|
| Map by business meaning first | Never map by column name similarity alone. A source column called "phone" might be a contact number that maps to ldz_party_contact — or it might be a branch phone that maps to ldz_branch_dtl. Always confirm the business meaning. |
| Identify the grain of the source table first | Before mapping a single column, determine: what does one row represent? One customer? One account? One daily balance? Mapping fails when grain is misunderstood. |
| One source table may produce multiple CDM entities | A "Customer Master" table typically produces rows in party_demographic, party_identity, and party_contact. Plan for this upfront — it requires separate mapping rows for each target. |
| Multiple source tables may populate one CDM entity | A bank may have separate KYC and CIF tables that both contribute to ldz_party_identity. This requires a union or join strategy — document it explicitly. |
| Distinguish data type by category | Before mapping each table, classify it: Is it master data? Reference data? Relationship data? Transactional or event data? The category determines the target entity family. |
| Separate attribute mapping from relationship mapping | Do not bury relationship data (who owns which account) inside a demographic target table. Relationship data goes into dedicated relationship entities like ldz_account_party. |
| Always preserve the source business key | The source natural key (e.g., CUST_ID from the source CRM) must flow into CDM. This becomes the natural key in the LDZ and drives hash key generation for the RDV layer. |
| Document transformation logic explicitly | Do not leave transformations as "implied". Every derivation, date format conversion, code mapping, or null handling rule must be written in the Transformation column of the MID. |
| Do not force-fit unclear fields | If you cannot confidently determine the business meaning of a field, do not guess. Mark it as PENDING CLARIFICATION and seek input from the client data SME. |
| Use attrib_* columns sparingly | LDZ tables contain flexible attribute columns (attrib_1 through attrib_n) for short-term extension. These are for controlled, approved use cases — not a dumping ground for fields that do not fit anywhere else. |