Fragment 25194 (Actor 121979,121980)
StreamMaterialize { columns: [party_id, portfolio_id], stream_key: [party_id, portfolio_id], pk_columns: [party_id, portfolio_id], pk_conflict: NoCheck }
├── output: [ party_involvements_dm.party_id, party_involvements_dm.entity_id ]
├── stream key: [ party_involvements_dm.party_id, party_involvements_dm.entity_id ]
└── StreamProject { exprs: [party_involvements_dm.party_id, party_involvements_dm.entity_id] }
├── output: [ party_involvements_dm.party_id, party_involvements_dm.entity_id ]
├── stream key: [ party_involvements_dm.party_id, party_involvements_dm.entity_id ]
└── StreamHashAgg { group_key: [party_involvements_dm.party_id, party_involvements_dm.entity_id], aggs: [count] }
├── output: [ party_involvements_dm.party_id, party_involvements_dm.entity_id, count ]
├── stream key: [ party_involvements_dm.party_id, party_involvements_dm.entity_id ]
└── MergeExecutor
├── output:
│ ┌── party_involvements_dm.party_id
│ ├── party_involvements_dm.entity_id
│ ├── party_involvements_dm.id
│ ├── $src
│ ├── party_involvements_dm.customer_relationship_id
│ └── customer_relationships_next.id
└── stream key: [ party_involvements_dm.id, $src, party_involvements_dm.customer_relationship_id ]
Fragment 25195 (Actor 121981,121982)
StreamSyncLogStore
├── output:
│ ┌── party_involvements_dm.party_id
│ ├── party_involvements_dm.entity_id
│ ├── party_involvements_dm.id
│ ├── $src
│ ├── party_involvements_dm.customer_relationship_id
│ └── customer_relationships_next.id
├── stream key: [ party_involvements_dm.id, $src, party_involvements_dm.customer_relationship_id ]
└── StreamHashJoin { type: Inner, predicate: party_involvements_dm.customer_relationship_id = customer_relationships_next.id }
├── output:
│ ┌── party_involvements_dm.party_id
│ ├── party_involvements_dm.entity_id
│ ├── party_involvements_dm.id
│ ├── $src
│ ├── party_involvements_dm.customer_relationship_id
│ └── customer_relationships_next.id
├── stream key: [ party_involvements_dm.id, $src, party_involvements_dm.customer_relationship_id ]
├── MergeExecutor
│ ├── output:
│ │ ┌── party_involvements_dm.party_id
│ │ ├── party_involvements_dm.customer_relationship_id
│ │ ├── party_involvements_dm.entity_id
│ │ ├── party_involvements_dm.id
│ │ └── $src
│ └── stream key: [ party_involvements_dm.id, $src ]
└── MergeExecutor { output: [ customer_relationships_next.id ], stream key: [ customer_relationships_next.id ] }
Fragment 25196 (Actor 121984,121983)
StreamUnion { all: true }
├── output:
│ ┌── party_involvements_dm.party_id
│ ├── party_involvements_dm.customer_relationship_id
│ ├── party_involvements_dm.entity_id
│ ├── party_involvements_dm.id
│ └── $src
├── stream key: [ party_involvements_dm.id, $src ]
├── MergeExecutor
│ ├── output:
│ │ ┌── party_involvements_dm.party_id
│ │ ├── party_involvements_dm.customer_relationship_id
│ │ ├── party_involvements_dm.entity_id
│ │ ├── party_involvements_dm.id
│ │ └── 0:Int32
│ └── stream key: [ party_involvements_dm.id ]
└── MergeExecutor
├── output:
│ ┌── party_involvements_dm.party_id
│ ├── party_involvements_dm.customer_relationship_id
│ ├── party_involvements_dm.entity_id
│ ├── party_involvements_dm.id
│ └── 1:Int32
└── stream key: [ party_involvements_dm.id ]
Fragment 25197 (Actor 121988,121987)
StreamProject { exprs: [party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.id, 0:Int32] }
├── output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.id, 0:Int32 ]
├── stream key: [ party_involvements_dm.id ]
└── StreamDynamicFilter { predicate: ($expr2 > now), output_watermarks: [[$expr2]], output: [party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, $expr2, party_involvements_dm.id], cleaned_by_watermark: true }
├── output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, $expr2, party_involvements_dm.id ]
├── stream key: [ party_involvements_dm.id ]
├── StreamProject { exprs: [party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, AtTimeZone(party_involvements_dm.effective_to::Timestamp, 'UTC':Varchar) as $expr2, party_involvements_dm.id] }
│ ├── output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, $expr2, party_involvements_dm.id ]
│ ├── stream key: [ party_involvements_dm.id ]
│ └── StreamFilter { predicate: IsNotTrue(IsNull(party_involvements_dm.effective_to)) }
│ ├── output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.effective_to, party_involvements_dm.id ]
│ ├── stream key: [ party_involvements_dm.id ]
│ └── MergeExecutor { output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.effective_to, party_involvements_dm.id ], stream key: [ party_involvements_dm.id ] }
└── MergeExecutor { output: [ now ], stream key: [] }
Fragment 25198 (Actor 121990,121989)
StreamProject { exprs: [party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.effective_to, party_involvements_dm.id] }
├── output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.effective_to, party_involvements_dm.id ]
├── stream key: [ party_involvements_dm.id ]
└── StreamDynamicFilter { predicate: ($expr1 <= now), output: [party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.effective_to, $expr1, party_involvements_dm.id], cleaned_by_watermark: true }
├── output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.effective_to, $expr1, party_involvements_dm.id ]
├── stream key: [ party_involvements_dm.id ]
├── StreamProject { exprs: [party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.effective_to, AtTimeZone(party_involvements_dm.effective_from::Timestamp, 'UTC':Varchar) as $expr1, party_involvements_dm.id] }
│ ├── output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.effective_to, $expr1, party_involvements_dm.id ]
│ ├── stream key: [ party_involvements_dm.id ]
│ └── StreamFilter { predicate: (IsNotTrue(IsNull(party_involvements_dm.effective_to)) OR IsNull(party_involvements_dm.effective_to)) AND (party_involvements_dm.entity_type = 'PORTFOLIO':Varchar) AND (party_involvements_dm.involvement_type = 'PORTFOLIO_HOLDER':Varchar) AND (party_involvements_dm.status = 'ACTIVE':Varchar) AND IsNull(party_involvements_dm.disabled_at) }
│ ├── output:
│ │ ┌── party_involvements_dm.party_id
│ │ ├── party_involvements_dm.customer_relationship_id
│ │ ├── party_involvements_dm.entity_id
│ │ ├── party_involvements_dm.effective_from
│ │ ├── party_involvements_dm.effective_to
│ │ ├── party_involvements_dm.id
│ │ ├── party_involvements_dm.involvement_type
│ │ ├── party_involvements_dm.entity_type
│ │ ├── party_involvements_dm.status
│ │ └── party_involvements_dm.disabled_at
│ ├── stream key: [ party_involvements_dm.id ]
│ └── StreamTableScan { table: party_involvements_dm, columns: [party_id, customer_relationship_id, entity_id, effective_from, effective_to, id, involvement_type, entity_type, status, disabled_at] }
│ ├── output:
│ │ ┌── party_involvements_dm.party_id
│ │ ├── party_involvements_dm.customer_relationship_id
│ │ ├── party_involvements_dm.entity_id
│ │ ├── party_involvements_dm.effective_from
│ │ ├── party_involvements_dm.effective_to
│ │ ├── party_involvements_dm.id
│ │ ├── party_involvements_dm.involvement_type
│ │ ├── party_involvements_dm.entity_type
│ │ ├── party_involvements_dm.status
│ │ └── party_involvements_dm.disabled_at
│ ├── stream key: [ party_involvements_dm.id ]
│ ├── Upstream { output: [ party_id, customer_relationship_id, entity_id, effective_from, effective_to, id, involvement_type, entity_type, status, disabled_at ], stream key: [] }
│ └── BatchPlanNode { output: [ party_id, customer_relationship_id, entity_id, effective_from, effective_to, id, involvement_type, entity_type, status, disabled_at ], stream key: [] }
└── MergeExecutor { output: [ now ], stream key: [] }
Fragment 25199 (Actor 121985)
StreamNow { output: [ now ], stream key: [] }
Fragment 25200 (Actor 121986)
StreamNow { output: [ now ], stream key: [] }
Fragment 25201 (Actor 121992,121991)
StreamProject { exprs: [party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.id, 1:Int32] }
├── output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.id, 1:Int32 ]
├── stream key: [ party_involvements_dm.id ]
└── StreamFilter { predicate: IsNull(party_involvements_dm.effective_to) } { output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.effective_to, party_involvements_dm.id ], stream key: [ party_involvements_dm.id ] }
└── MergeExecutor { output: [ party_involvements_dm.party_id, party_involvements_dm.customer_relationship_id, party_involvements_dm.entity_id, party_involvements_dm.effective_to, party_involvements_dm.id ], stream key: [ party_involvements_dm.id ] }
Fragment 25202 (Actor 121994,121993)
StreamProject { exprs: [customer_relationships_next.id] } { output: [ customer_relationships_next.id ], stream key: [ customer_relationships_next.id ] }
└── StreamFilter { predicate: (customer_relationships_next.type = 'CUSTOMER':Varchar) AND (customer_relationships_next.status = 'ACTIVE':Varchar) AND IsNull(customer_relationships_next.disabled_at) }
├── output: [ customer_relationships_next.id, customer_relationships_next.type, customer_relationships_next.status, customer_relationships_next.disabled_at ]
├── stream key: [ customer_relationships_next.id ]
└── StreamTableScan { table: customer_relationships_next, columns: [id, type, status, disabled_at] } { output: [ customer_relationships_next.id, customer_relationships_next.type, customer_relationships_next.status, customer_relationships_next.disabled_at ], stream key: [ customer_relationships_next.id ] }
├── Upstream { output: [ id, type, status, disabled_at ], stream key: [] }
└── BatchPlanNode { output: [ id, type, status, disabled_at ], stream key: [] }