Skip to main content

Session 7 data flow part 2

 






Data Flow Name: df_transform_hospital_admissions

Pipeline Steps:

  1. Source (HospitalAdmissionSource):

    • Pulls data from ds_raw_hospital_admission.

  2. SelectReqdFields:

    • Renames or selects specific fields: country, indicator, etc.

  3. LookupCountry:

    • Performs a lookup using CountrySource (likely from ds_country_lookup) to enrich the data.

  4. SelectReqdFields2:

    • Refines the result further with a new set of selected or renamed fields.

  5. Split into Weekly and Daily:

    • A Conditional Split divides the data into two branches:

      • Weekly (9 columns total)

      • Daily (filtering on indicator column, likely conditional logic)

Right Panel:

  • Shows general properties.

  • Name: df_transform_hospital_admissions.

  • Description: Empty.

Bottom Panel (Data preview):

  • Currently loading: “Fetching data…”.

  • Status: Data flow debug is enabled (green).

  • Operation counts like INSERT, UPDATE, DELETE, etc., are N/A, meaning this is likely a preview run or the data hasn’t loaded yet.


🔁 Complete Transformation Breakdown


🟦 1. Source (ds_raw_hospital_admission)

  • What it does:

    • Reads raw hospital admission data from a source dataset (e.g., CSV, database).

    • Fields: country, reported_date, hospital_occupancy_count, icu_occupancy_count, etc.


🟨 2. fields2 (Conditional Split)

  • What it does:

    • Splits incoming data into two branches: Weekly and Daily.

    • Based on a condition, likely using a flag or pattern in the data like:

      sql
      reported_granularity == 'weekly' => Weekly branch reported_granularity == 'daily' => Daily branch
  • Why:

    • Enables separate transformation logic for weekly and daily reporting formats.


🟩 3. Weekly Branch

🔷 a. JoinWithDate (Join)

  • What it does:

    • Joins raw data with a Date Dimension (likely AggDimDate).

    • Join keys: reported_date from source and date from the dimension.

  • Why:

    • Enriches records with derived values like year_week, week_start_date, etc.


🔷 b. PivotWeekly (Pivot)

  • What it does:

    • Pivots indicators (like hospital and ICU occupancy counts) into separate columns.

  • Group by:

    • Likely year_week, country

  • Values:

    • Transforms rows into a wider format with columns like:

      • hospital_occupancy_count

      • icu_occupancy_count

  • Why:

    • Aggregates and reshapes data for weekly reporting.


🔷 c. SortWeekly (Sort)

  • What it does:

    • Sorts the data by reported_year_week and country

  • Why:

    • Ensures data is consistently ordered before writing to sink.


🔷 d. SelectWeekly (Select)

  • What it does:

    • Keeps only required columns and renames as needed.

    • Final schema might include:

      • country, reported_year_week, hospital_occupancy_count, icu_occupancy_count

  • Why:

    • Cleans and prepares data for export.


🔷 e. WeeklySink (Sink)

  • What it does:

    • Writes the transformed weekly data to a target dataset.

    • Sink: ds_processed_hospital_admission_weekly

  • Why:

    • Makes weekly data available for reporting/analytics.


🟩 4. Daily Branch

🔷 a. PivotDaily (Pivot)

  • What it does:

    • Similar to PivotWeekly, but operates on daily granularity.

  • Group by:

    • reported_date, country

  • Why:

    • Converts long-format daily data into a wide format for daily analysis.


🔷 b. SortDaily (Sort)

  • What it does:

    • Sorts by reported_date and country

  • Why:

    • Ensures orderliness and data consistency in final output.


🔷 c. SelectDaily (Select)

  • What it does:

    • Selects relevant fields like:

      • country, reported_date, hospital_occupancy_count, icu_occupancy_count, population, source

  • Why:

    • Aligns with target schema and ensures only meaningful data is exported.


🔷 d. DailySink (Sink)

  • What it does:

    • Writes the final daily data to ds_processed_hospital_admission_daily

  • Why:

    • Makes daily data available for downstream use (dashboards, exports).

Transformation Type Description
ds_raw_hospital_admission Source Loads raw hospital admission data
fields2 Conditional Split Splits data into Daily and Weekly pipelines
JoinWithDate Join Adds weekly context by joining with date dimension
PivotWeekly Pivot Converts indicator rows into columns (weekly)
SortWeekly Sort Sorts by week and country
SelectWeekly Select Keeps/renames columns for export
WeeklySink Sink Outputs to weekly processed dataset
PivotDaily Pivot Converts indicator rows into columns (daily)
SortDaily Sort Sorts by date and country
SelectDaily Select Keeps/renames columns for export
DailySink Sink Outputs to daily processed dataset

Comments

Popular posts from this blog

Entity Relationship (ER) Diagram Model with DBMS Example

Reference :   Entity Relationship (ER) Diagram Model with DBMS Example What is ER Diagram? ER Diagram  stands for Entity Relationship Diagram, also known as ERD is a diagram that displays the relationship of entity sets stored in a database. In other words, ER diagrams help to explain the logical structure of databases. ER diagrams are created based on three basic concepts: entities, attributes and relationships. ER Diagrams contain different symbols that use rectangles to represent entities, ovals to define attributes and diamond shapes to represent relationships. At first look, an ER diagram looks very similar to the flowchart. However, ER Diagram includes many specialized symbols, and its meanings make this model unique. The purpose of ER Diagram is to represent the entity framework infrastructure. Entity Relationship Diagram Example Table of Content: What is ER Diagram? What is ER Model? History of ER models Why use ER Diagrams? Facts about ER Diagram Model ER Diagram...

SQL Joins and advanced joins and Subqueries

  Refernce :  Expert Guide to Advanced SQL Joins: What You Need to Know It's helpful to visualize how these different SQL joins work. Here's a breakdown in a table-like format, along with explanations: SQL Join Types Overview Join Type Description Key Characteristics Use Cases INNER JOIN Returns rows where there is a match in both tables. - Shows only matching records. - Excludes unmatched rows from both tables. - Retrieving related data that exists in both tables. - Finding records with corresponding entries in another table. LEFT OUTER JOIN (LEFT JOIN) Returns all rows from the left table, and the matched rows from the right table. - Includes all records from the left table. - Fills in NULL values for columns from the right table where there's no match. - Retrieving all records from one table and their related data from another, even if some records don't have matches. - Finding records in one table that don't have corresponding entries in another. RIGHT OUTER JO...

GIT BASH

  Bash Shell: Git Bash uses the Bash (Bourne Again SHell) command-line interpreter. This means you can use many of the same commands you'd find in a Linux or macOS terminal. Git Integration: Git Bash is tightly integrated with Git, making it easy to execute Git commands Essential Commands: Navigation: pwd : Prints the current working directory. ls : Lists files and directories in the current directory. cd <directory> : Changes the current directory. cd .. : Moves to the parent directory. File Management: mkdir <directory> : Creates a new directory. touch <file> : Creates a new file. rm <file> : Removes a file. rmdir <directory> : Removes an empty directory. Git Commands: git init : Initializes a new Git repository. git clone <repository URL> : Clones an existing Git repository. git status : Displays the status of your working directory. git add <file> : Adds a file to the staging area. git commit -m "commit message" : Commits chan...