This document provides an overview of the two main Google Cloud Platform (GCP) services leveraged in this project: BigQuery and Dataplex. These services work together to enable efficient data storage, processing, and quality monitoring.

Project Hierarchy

The project structure within GCP has been organized to ensure clear separation between domains and environments, while supporting an efficient data ingestion and data quality validation process.

Domain-specific Projects

For each domain within the Data Quality Monitoring Tool (DQMT), a dedicated GCP project exists for every environment:

Each project serves as the location where:

Domain Projects List

Domain\Environment

Development

Testing

Pre-Production

Production

Human Resourcesprj-data-dm-hr-devprj-data-dm-hr-testprj-data-dm-hr-ppdprj-data-dm-hr-prod
Structure & Sharedprj-data-dm-structure-devprj-data-dm-structure-testprj-data-dm-structure-ppdprj-data-dm-structure-prod
Financeprj-data-dm-finance-devprj-data-dm-finance-testprj-data-dm-finance-ppdprj-data-dm-finance-prod
Marketingprj-data-dm-marketing-devprj-data-dm-marketing-testprj-data-dm-marketing-ppdprj-data-dm-marketing-prod
Procurementprj-data-dm-procurement-devprj-data-dm-procurement-testprj-data-dm-procurement-ppdprj-data-dm-procurement-prod

Data Quality & Final Views Projects

In addition to the domain-specific projects, a separate set of projects is used to:

Environment

Project

Developmentprj-data-dq-selfservice-dev
Testingprj-data-dq-selfservice-test
Pre-Productionprj-data-dq-selfservice-ppd
Productionprj-data-dq-selfservice-prod

Project Support Teams

The successful implementation and maintenance of the DQMT solution is supported by a dedicated team, each contributing with specialized skills across different areas of the project:

Name

Role

Scope

Ahmed ElsayedData ArchitectArchitecture and design of data pipelines and models
Maria João PimentaData EngineerData ingestion, transformation, and automation
Ram AtirajyamData EngineerData ingestion, transformation, and automation
Ibrahim ManseyVisualization EngineerData visualization and dashboard development
Mohamed HazemVisualization EngineerData visualization and dashboard development
Rawan ShehabFunctional AnalystBusiness analysis and functional requirements

Project Access and Service Accounts

Google Groups

The following Google Groups have access to the DQMT GCP projects, organized by role:

Group

Purpose

Email

Data Architects GroupAccess for Data Architectsgcp-da-prj-data-dq-selfservice-nonprod@solvay.com
Data Engineers GroupAccess for Data Engineersgcp-de-prj-data-dq-selfservice-nonprod@solvay.com
Data Analysts / Business AnalystsNo specific group
Data Developers GroupAccess for Data Developersgcp-dv-prj-data-dq-selfservice@solvay.com

Note: No new Google Groups were specifically created for this project.


Service Accounts

The following Service Accounts are used within the DQMT project for process automation and integration:

Service Account

Description

sbs-is-appli-qlikview.support@solvay.comQlikView integration and support
sa-talend@prj-data-dq-selfservice-dev.iam.gserviceaccount.comTalend jobs execution
sa-cloudfunction@prj-data-dq-selfservice-dev.iam.gserviceaccount.comCloud Functions automation

BigQuery

Datasets, Tables and Views

Domain Projects

Projects

View

Source Tables/Views

prj-data-dm-hr-[env]DS_prj_dqkpi.V_BusinessUnitODS.ODS_SFC_0000_F001_F_W_FOBusinessUnit
DS_prj_dqkpi.V_CcHrFinODS.ODS_SFC_0000_F001_F_W_FOCostCenter
ODS.ODS_BWH_0000_F001_F_W_BW_QRY_C_COSTCTR_0001
DS_prj_dqkpi.V_CompanyODS.ODS_SFC_0000_F001_F_W_FOCompany
DS_prj_dqkpi.V_CostCenterODS.ODS_SFC_0000_F001_F_W_FOCostCenter
DS_prj_dqkpi.V_EmpBusinessDS_prj_dqkpi.V_EmpJob
DS_prj_dqkpi.V_BusinessUnit
DS_prj_dqkpi.V_EmpCompensationODS.ODS_SFC_0000_F001_F_W_EmpCompensation
DS_prj_dqkpi.V_PickListValueV2
DS_prj_dqkpi.V_EmpCompensationJobDS_prj_dqkpi.V_EmpCompensation
DS_prj_dqkpi.V_EmpJob
DS_prj_dqkpi.V_EmpJobDS_prj_dqkpi.V_PickListValueV2
DS_prj_dqkpi.V_FOLocation
DS_prj_dqkpi.V_EmpJobCoded
DS_prj_dqkpi.V_EmpJobCodedODS.ODS_SFC_0000_F001_F_D_EmpJob
DS_prj_dqkpi.V_EmpJob_CCDS_prj_dqkpi.V_EmpJob
DS_prj_dqkpi.V_CostCenter 
DS_prj_dqkpi.V_EmpJob_CompensationGroupSumCalcODS.ODS_SFC_0000_F001_F_W_empCompensationGroupSumCalculatedNav
DS_prj_dqkpi.V_EmpJob
DS_prj_dqkpi.V_EmpJob_LocGroupDS_prj_dqkpi.V_EmpJob
DS_prj_dqkpi.V_LocationGroup
DS_prj_dqkpi.V_EmpJob_LocationDS_prj_dqkpi.V_EmpJob
DS_prj_dqkpi.V_FOLocation
DS_prj_dqkpi.V_FOLocationODS.ODS_SFC_0000_F001_F_W_FOLocation
DS_prj_dqkpi.V_LocationGroupODS.ODS_SFC_0000_F001_F_W_FOLocationGroup
DS_prj_dqkpi.V_PickListValueV2ODS.ODS_SFC_0000_F001_F_W_PickListValueV2
DS_prj_dqkpi.V_Position

ODS.ODS_SFC_0000_F001_F_W_Position
DS_prj_dqkpi.V_FOLocation
ODS.ODS_SFC_0000_F001_F_W_Position

DS_prj_dqkpi.V_PositionJobInfo

DS_prj_dqkpi.V_EmpJob
DS_prj_dqkpi.V_Position

prj-data-dm-structure-[env]
DS_prj_sls_dataquality_kpi.V_PF1

ODS.ODS_SPF_0000_F001_F_W_T001W
ODS.ODS_SPF_0000_F001_F_W_T001K

DS_prj_sls_dataquality_kpi.V_PF1_MVKE_T001W_TVKOT_T001K
ODS.ODS_SPF_0000_F001_F_W_MVKE
ODS.ODS_SPF_0000_F001_F_W_T001W
ODS.ODS_SPF_0000_F001_F_W_TVKOT
DS_prj_sls_dataquality_kpi.V_PF1_MVKE_T001W_TVKOT_T001K_U
DS_prj_sls_dataquality_kpi.V_PF1_MVKE_T001W_TVKOT_T001K
DS_prj_sls_dataquality_kpi.V_WP1
ODS.ODS_SPW_0000_F001_F_W_T001W
ODS.ODS_SPW_0000_F001_F_W_T001K
DS_prj_sls_dataquality_kpi.V_WP1_MVKE_T001W_TVKOT_T001K
ODS.ODS_SPW_0000_F001_F_W_MVKE
ODS.ODS_SPW_0000_F001_F_W_T001W
ODS.ODS_SPW_0000_F001_F_W_TVKOT
DS_prj_sls_dataquality_kpi.V_WP1_MVKE_T001W_TVKOT_T001K_UDS_prj_sls_dataquality_kpi.V_WP1_MVKE_T001W_TVKOT_T001K
prj-data-dm-finance-[env]DS_prj_sls_dataquality_kpi.V_COSTCTR_0001

ODS.ODS_BWH_0000_F001_F_W_BW_QRY_C_COSTCTR_0001

prj-data-dm-marketing-[env]
DS_prj_sls_dataquality_kpi.V_PF1_KNA1

ODS.ODS_SPF_0000_F001_F_W_KNA1

DS_prj_sls_dataquality_kpi.V_WP1_KNA1

ODS.ODS_SPW_0000_F001_F_W_KNA1

prj-data-dm-procurement-[env]

DS_sls_dataquality_kpi.V_PF1_MARC

ODS.ODS_SPF_0000_F001_F_W_MARC
STG.log_tables

DS_sls_dataquality_kpi.V_WP1_MARC

ODS.ODS_SPW_0000_F001_F_W_MARC
STG.log_tables

Selfservice Project

Project

Table/View

Source Tables/Views

prj-data-dm-selfservice-[env]

DM.DIM_date

-

DM.DIM_domain

-

DM.DIM_kpi_dimension

-

DM.DIM_quality_rule

-

DM.Dataplex_quality

-

DM.FACT_data_quality

-

DM.FACT_failed_records

-

DPL.V_DIM_DATE

prj-data-dm-selfservice-[env].DM.DIM_date

DPL.V_DIM_DOMAIN

prj-data-dm-selfservice-[env].DM.DIM_domain

DPL.V_DIM_KPI_DIMENSION

prj-data-dm-selfservice-[env].DM.DIM_kpi_dimension

DPL.V_FACT_QUALITY

prj-data-dm-selfservice-[env].DM.FACT_data_quality
prj-data-dm-selfservice-[env].DM.FACT_failed_records

DPL.V_RULE_QUALITY

prj-data-dm-selfservice-[env].DM.DIM_quality_rule
prj-data-dm-selfservice-[env].DM.DIM_domain

prj-data-dm-selfservice-[env].DM.DIM_kpi_dimension

DataOcean_dataquality_kpi.V_ActiveEmployeeInActiveLegalEntity

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob
prj-data-dm-hr-[env].DS_prj_dqkpi.V_Company

DataOcean_dataquality_kpi.V_COSTCTR_0001

prj-data-dm-finance-[env].DS_prj_sls_dataquality_kpi.V_COSTCTR_0001

DataOcean_dataquality_kpi.V_COSTCTR_0001_ProfitCenter

prj-data-dm-finance-[env].DS_prj_sls_dataquality_kpi.V_COSTCTR_0001

DataOcean_dataquality_kpi.V_EmpBusiness

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpBusiness

DataOcean_dataquality_kpi.V_EmpCompensationJob

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpCompensationJob

DataOcean_dataquality_kpi.V_EmpJob_CC

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob_CC

DataOcean_dataquality_kpi.V_EmpJob_Cadres

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob

DataOcean_dataquality_kpi.V_EmpJob_Compensation_AIS

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob_CompensationGroupSumCalc

DataOcean_dataquality_kpi.V_EmpJob_Compensation_AIS_ANSG

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob_CompensationGroupSumCalc

DataOcean_dataquality_kpi.V_EmpJob_Compensation_ANSG

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob_CompensationGroupSumCalc

DataOcean_dataquality_kpi.V_EmpJob_External_Pay

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob

DataOcean_dataquality_kpi.V_EmpJob_External_Position

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob

DataOcean_dataquality_kpi.V_EmpJob_LocGroup

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob_LocGroup

DataOcean_dataquality_kpi.V_EmpJob_Location

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob_Location

DataOcean_dataquality_kpi.V_EmpJob_Supervisor

prj-data-dm-hr-[env].DS_prj_dqkpi.V_EmpJob

DataOcean_dataquality_kpi.V_FOLocation

prj-data-dm-hr-[env].DS_prj_dqkpi.V_FOLocation

DataOcean_dataquality_kpi.V_PF1

prj-data-dm-structure-[env].DS_prj_sls_dataquality_kpi.V_PF1

DataOcean_dataquality_kpi.V_PF1_KNA1

prj-data-dm-marketing-[env].DS_prj_sls_dataquality_kpi.V_PF1_KNA1

DataOcean_dataquality_kpi.V_PF1_MARC

prj-data-dq-selfservice-[env].DataOcean_dataquality_kpi.V_proc_PF1_MARC

prj-data-dq-selfservice-[env].DataOcean_dataquality_kpi.V_PF1

DataOcean_dataquality_kpi.V_PF1_MVKE_T001W_TVKOT_T001K_U

prj-data-dm-structure-[env].DS_prj_sls_dataquality_kpi.V_PF1_MVKE_T001W_TVKOT_T001K_U

DataOcean_dataquality_kpi.V_PositionJobInfo

prj-data-dm-hr-[env].DS_prj_dqkpi.V_PositionJobInfo

DataOcean_dataquality_kpi.V_PositionJobInfo_BU

prj-data-dm-hr-[env].DS_prj_dqkpi.V_PositionJobInfo

DataOcean_dataquality_kpi.V_PositionJobInfo_CC

prj-data-dm-hr-[env].DS_prj_dqkpi.V_PositionJobInfo

DataOcean_dataquality_kpi.V_WP1

prj-data-dm-structure-[env].DS_prj_sls_dataquality_kpi.V_WP1

DataOcean_dataquality_kpi.V_WP1_KNA1

prj-data-dm-marketing-[env].DS_prj_sls_dataquality_kpi.V_WP1_KNA1

DataOcean_dataquality_kpi.V_WP1_MARC

prj-data-dq-selfservice-[env].DataOcean_dataquality_kpi.V_proc_WP1_MARC
prj-data-dq-selfservice-[env].DataOcean_dataquality_kpi.V_WP1

DataOcean_dataquality_kpi.V_WP1_MVKE_T001W_TVKOT_T001K_U

prj-data-dm-structure-[env].DS_prj_sls_dataquality_kpi.V_WP1_MVKE_T001W_TVKOT_T001K_U

DataOcean_dataquality_kpi.V_proc_PF1_MARC

prj-data-dm-procurement-[env].DS_sls_dataquality_kpi.V_PF1_MAR

DataOcean_dataquality_kpi.V_proc_WP1_MARC

prj-data-dm-procurement-[env].DS_sls_dataquality_kpi.V_WP1_MARC

Routines

Project

Routine

Output

prj-data-dm-selfservice-[env]DM.insert_DIM_Domain

Populates the Data Model Dimension Table DM.DIM_domain

DM.insert_DIM_kpi_dimension

Populates the Data Model Dimension Table DM.DIM_kpi_dimension

DM.RT_DPtoDMmapping_Datespecific

Populates the Data Model Fact Tables:
DM.DIM_date
DM.DIM_quality_rule
DM.FACT_data_quality
DM.FACT_failed_records