Pattern - Basic 1:1¶
Description¶
The basic 1:1 pattern is the default building block for most lakehouse pipelines. Use it whenever one streaming source maps to one target table and you only need row-level transforms—no joins, no multi-source merges, no stream-static semantics.
This pattern covers the situations teams hit most often:
Bronze / source ingest — stream or batch load from staging or raw sources into bronze tables using append or auto CDC flows.
Silver / conformed basic entities — promote one upstream streaming table (typically bronze) into a source-aligned silver entity, or apply light transformation and conformance (schema enforcement, cleansing, typing) before serving downstream gold layers.
The same flow shape repeats at both layers: an input view over a single CDF-enabled stream, an append or auto CDC flow, and one streaming target table defined in the data flow spec. Most new projects implement this pattern many times across bronze and silver before adopting Advanced composition patterns.
Use when:
You are ingesting data or performing one-to-one loads.
You are promoting one upstream table into a conformed entity table.
You need append-only, SCD1, or SCD2 behavior on the target.
You only need basic single-row transforms (data type conversion, formatting, cleansing, data quality).
Layers: Bronze and Silver
Models (silver): 3NF / ODS, Data Vault hubs and satellites, conformed dimensions
Data Flow Components:
No. |
Component |
Description |
M / O |
|---|---|---|---|
1 |
Input View |
Input view over the streaming source table (raw/staging at bronze, upstream bronze or silver at silver). Optionally reads CDF when the source has change data feed enabled. |
M |
2 |
Flow |
Append or auto CDC flow to the target streaming table (SCD1/2 via |
M |
3 |
Target Table |
Streaming table defined in the data flow spec. |
M |
Feature Support¶
Supported |
Not Supported |
|---|---|
|
|
Sample¶
Bronze
Bundle:
samples/pattern-samplesPipeline:
Lakeflow Framework - Pattern - Base Bronze Samples PipelineSamples:
samples/pattern-samples/src/dataflows/base_samples/bronze/dataflowspec/customer_main.jsonsamples/pattern-samples/src/dataflows/base_samples/bronze/dataflowspec/customer_address_main.json
Silver
Pipeline:
Lakeflow Framework - Pattern - Base Silver Samples PipelineSamples:
samples/pattern-samples/src/dataflows/base_samples/silver/dataflowspec/customer_main.json(SCD2)samples/pattern-samples/src/dataflows/base_samples/silver/dataflowspec/customer_address_main.json(SCD2)
Example Data Flow¶
Day 1 Load¶
Source Table (Append-Only)¶
CUSTOMER
customer_id |
first_name |
last_name |
load_timestamp |
|
|---|---|---|---|---|
1 |
John |
Doe |
2023-01-01 10:00 |
|
2 |
Jane |
Smith |
2023-01-01 10:00 |
Target Table¶
Append-Only Scenario¶
customer_id |
first_name |
last_name |
load_timestamp |
|
|---|---|---|---|---|
1 |
John |
Doe |
2023-01-01 10:00 |
|
2 |
Jane |
Smith |
2023-01-01 10:00 |
SCD1 Scenario¶
customer_id |
first_name |
last_name |
load_timestamp |
|
|---|---|---|---|---|
1 |
John |
Doe |
2023-01-01 10:00 |
|
2 |
Jane |
Smith |
2023-01-01 10:00 |
SCD2 Scenario¶
customer_id |
first_name |
last_name |
_START_AT |
_END_AT |
|
|---|---|---|---|---|---|
1 |
John |
Doe |
2023-01-01 10:00 |
NULL |
|
2 |
Jane |
Smith |
2023-01-01 10:00 |
NULL |
Day 2 Load¶
Day 2 Source Table (Append-Only)¶
CUSTOMER
| customer_id | first_name | last_name | load_timestamp | |
|---|---|---|---|---|
| 1 | John | Doe | john.doe@example.com | 2023-01-01 10:00 |
| 2 | Jane | Smith | jane.smith@example.com | 2023-01-01 10:00 |
| 1 | John | Doe | jdoe@example.com | 2023-01-02 10:00 |
| 3 | Alice | Green | alice.green@example.com | 2023-01-02 10:00 |
| 4 | Joe | Bloggs | joe.bloggs@example.com | 2023-01-02 10:00 |
Day 2 Target Table¶
Day 2 Append-Only Scenario¶
| customer_id | first_name | last_name | load_timestamp | |
|---|---|---|---|---|
| 1 | John | Doe | john.doe@example.com | 2023-01-01 10:00 |
| 2 | Jane | Smith | jane.smith@example.com | 2023-01-01 10:00 |
| 1 | John | Doe | jdoe@example.com | 2023-01-02 10:00 |
| 3 | Alice | Green | alice.green@example.com | 2023-01-02 10:00 |
| 4 | Joe | Bloggs | joe.bloggs@example.com | 2023-01-02 10:00 |
Day 2 SCD1 Scenario¶
| customer_id | first_name | last_name | load_timestamp | |
|---|---|---|---|---|
| 1 | John | Doe | jdoe@example.com | 2023-01-01 10:00 |
| 2 | Jane | Smith | jane.smith@example.com | 2023-01-01 10:00 |
| 3 | Alice | Green | alice.green@example.com | 2023-01-02 10:00 |
| 4 | Joe | Bloggs | joe.bloggs@example.com | 2023-01-02 10:00 |
Day 2 SCD2 Scenario¶
| customer_id | first_name | last_name | _START_AT | _END_AT | |
|---|---|---|---|---|---|
| 1 | John | Doe | jdoe@example.com | 2023-01-02 10:00 | NULL |
| 1 | John | Doe | john.doe@example.com | 2023-01-01 10:00 | 2023-01-02 10:00 |
| 2 | Jane | Smith | jane.smith@example.com | 2023-01-01 10:00 | 2023-01-02 10:00 |
| 3 | Alice | Green | alice.green@example.com | 2023-01-01 10:00 | NULL |
| 4 | Joe | Bloggs | joe.bloggs@example.com | 2023-01-01 10:00 | NULL |