Skip to content

Commit 6093b3f

Browse files
committed
Sample updates
1 parent 7ae0b06 commit 6093b3f

19 files changed

+277
-121
lines changed

Virtual_EDW/Templates/templateCollection.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,21 @@
2424
"TemplateNotes": ""
2525
},
2626
{
27-
"TemplateName": "100 Data Vault LinkSatellite View Template",
27+
"TemplateName": "100 Data Vault Link-Satellite View Template",
2828
"TemplateType": "NaturalBusinessRelationshipContext",
2929
"TemplateConnectionKey": "PsaConnectionInternalId",
3030
"TemplateOutputFileConvention": "{targetDataObject.name}.sql",
3131
"TemplateFilePath": "templateLinkSatelliteView.handlebars",
3232
"TemplateNotes": ""
3333
},
34+
{
35+
"TemplateName": "150 Data Vault Link-Satellite View Template With Zero Record",
36+
"TemplateType": "NaturalBusinessRelationshipContext",
37+
"TemplateConnectionKey": "PsaConnectionInternalId",
38+
"TemplateOutputFileConvention": "{targetDataObject.name}.sql",
39+
"TemplateFilePath": "templateLinkSatelliteViewZeroRecord.handlebars",
40+
"TemplateNotes": ""
41+
},
3442
{
3543
"TemplateName": "100 Data Vault Satellite View Template",
3644
"TemplateType": "Context",
@@ -46,7 +54,7 @@
4654
"TemplateOutputFileConvention": "{targetDataObject.name}.sql",
4755
"TemplateFilePath": "templateSatelliteViewWithDeliveryKey.handlebars",
4856
"TemplateNotes": "Regular Satellite pattern extended with delivery key concept."
49-
},
57+
},
5058
{
5159
"TemplateName": "100 Dimension / PIT Select Template",
5260
"TemplateType": "Presentation",

Virtual_EDW/Templates/templateLinkDirectRegistration.Handlebars

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
DECLARE @SOURCE_TABLE VARCHAR(1000);
2-
DECLARE @TARGET_TABLE VARCHAR(1000);
3-
DECLARE @SYSTEM_GROUP VARCHAR(100);
1+
--
2+
-- DIRECT registration template for the Link object {{targetDataObject.name}}.
3+
--
4+
5+
DECLARE @SOURCE_TABLE VARCHAR(1000);
6+
DECLARE @TARGET_TABLE VARCHAR(1000);
7+
DECLARE @SYSTEM_GROUP VARCHAR(100);
48

59
{{#each dataObjectMappings}}
610

Virtual_EDW/Templates/templateLinkInsertInto.Handlebars

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
-- Link Insert Into statement for {{targetDataObject.name}}
44
--
55

6-
INSERT INTO [{{targetDataObject.name}}]
6+
INSERT INTO [{{targetDataObject.dataObjectConnection.extensions.0.value}}].[{{targetDataObject.dataObjectConnection.extensions.1.value}}].[{{targetDataObject.name}}]
77
( {{#each businessKeys}}
88
[{{surrogateKey}}],{{/each}}{{#each dataItemMappings}}
99
[{{targetDataItem.name}}],{{/each}}
Lines changed: 46 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{{#each dataObjectMappings}}
22
--
3-
-- Link Satellite View definition for {{../generationSpecificMetadata.selectedDataObject.name}}
3+
-- Link Satellite View definition for {{../generationSpecificMetadata.selectedDataObject.name}}.
44
--
55

66
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[{{../metadataConfiguration.vdwSchemaName}}].[{{../generationSpecificMetadata.selectedDataObject.name}}]') AND type in (N'V'))
@@ -12,117 +12,104 @@ SELECT
1212
HASHBYTES('MD5', {{#each businessKeys}}{{#unless @first}} +{{/unless}}{{!-- Create the Surrogate Key using the Business Key and components --}}{{#each businessKeyComponentMapping}}
1313
ISNULL(RTRIM(CONVERT(NVARCHAR(100), {{targetDataItem.name}})), 'N/A') + '#~!'{{#unless @last}} +{{/unless}}{{/each}}{{/each}}{{#each businessKeys}}{{#if @first}}
1414
) AS {{surrogateKey}},{{/if}}{{/each}}
15-
DATEADD(mcs,[{{../metadataConfiguration.sourceRowIdAttribute}}], {{../metadataConfiguration.loadDateTimeAttribute}}) AS {{../metadataConfiguration.loadDateTimeAttribute}},
16-
COALESCE (
17-
LEAD (DATEADD(mcs,[{{../metadataConfiguration.sourceRowIdAttribute}}], {{../metadataConfiguration.loadDateTimeAttribute}}) ) OVER
18-
( PARTITION BY {{#each businessKeys}} {{!-- The Hub business key --}}{{#unless @first}},{{/unless}}
19-
{{#each businessKeyComponentMapping}}{{targetDataItem.name}}{{#unless @last}},{{/unless}}{{/each}}{{/each}}
20-
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../sourceDataItems.0.name}}{{/if}}{{/each}}{{/each}}
21-
ORDER BY {{../metadataConfiguration.loadDateTimeAttribute}}),
22-
CAST( '9999-12-31' AS DATETIME)
23-
) AS LOAD_END_DATETIME,
24-
CASE
25-
WHEN ( RANK() OVER (PARTITION BY {{#each businessKeys}}{{#unless @first}},{{/unless}}{{#each businessKeyComponentMapping}}
26-
{{targetDataItem.name}}{{#unless @last}},{{/unless}}{{/each}}{{/each}}
27-
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../sourceDataItems.0.name}}{{/if}}{{/each}}{{/each}}
28-
ORDER BY {{../metadataConfiguration.loadDateTimeAttribute}} desc )) = 1
29-
THEN 'Y'
30-
ELSE 'N'
31-
END AS CURRENT_RECORD_INDICATOR,
32-
-1 AS {{../metadataConfiguration.etlProcessAttribute}}, {{!-- List out the ETL Framework attributes --}}
15+
[{{../metadataConfiguration.loadDateTimeAttribute}}],
16+
[{{../metadataConfiguration.sourceRowIdAttribute}}],
17+
--COALESCE (
18+
-- LEAD (DATEADD(mcs,[{{../metadataConfiguration.sourceRowIdAttribute}}], {{../metadataConfiguration.loadDateTimeAttribute}}) ) OVER
19+
-- ( PARTITION BY {{#each businessKeys}} {{!-- The Hub business key --}}{{#unless @first}},{{/unless}}
20+
-- {{#each businessKeyComponentMapping}}{{targetDataItem.name}}{{#unless @last}},{{/unless}}{{/each}}{{/each}}
21+
-- {{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../sourceDataItems.0.name}}{{/if}}{{/each}}{{/each}}
22+
-- ORDER BY {{../metadataConfiguration.loadDateTimeAttribute}}),
23+
-- CAST( '9999-12-31' AS DATETIME)
24+
--) AS [{{../metadataConfiguration.expiryDateTimeAttribute}}],
25+
--CASE
26+
-- WHEN ( RANK() OVER (PARTITION BY {{#each businessKeys}}{{#unless @first}},{{/unless}}{{#each businessKeyComponentMapping}}
27+
-- {{targetDataItem.name}}{{#unless @last}},{{/unless}}{{/each}}{{/each}}
28+
-- {{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../sourceDataItems.0.name}}{{/if}}{{/each}}{{/each}}
29+
-- ORDER BY {{../metadataConfiguration.loadDateTimeAttribute}} desc )) = 1
30+
-- THEN 'Y'
31+
-- ELSE 'N'
32+
--END AS [CURRENT_RECORD_INDICATOR],
33+
-1 AS {{../metadataConfiguration.etlProcessAttribute}}, {{!-- List out the Control Framework attributes --}}
3334
{{../metadataConfiguration.changeDataCaptureAttribute}},
34-
{{../metadataConfiguration.sourceRowIdAttribute}},
35-
{{../metadataConfiguration.recordSourceAttribute}},
36-
CASE
37-
WHEN {{../metadataConfiguration.changeDataCaptureAttribute}} = 'Delete' THEN 'Y'
38-
ELSE 'N'
39-
END AS [DELETED_RECORD_INDICATOR],
35+
--{{../metadataConfiguration.recordSourceAttribute}},
36+
--CASE
37+
-- WHEN {{../metadataConfiguration.changeDataCaptureAttribute}} = 'Delete' THEN 'Y'
38+
-- ELSE 'N'
39+
--END AS [DELETED_RECORD_INDICATOR],
4040
HASHBYTES('MD5',
4141
ISNULL(RTRIM(CONVERT(NVARCHAR(100),{{../metadataConfiguration.changeDataCaptureAttribute}})), 'N/A') + '#~!' +{{#each dataItemMappings}}
42-
ISNULL(RTRIM(CONVERT(NVARCHAR(100),{{sourceDataItems.0.name}})), 'N/A') + '#~!'{{#unless @last}} +{{/unless}}{{/each}}
43-
) AS {{../metadataConfiguration.recordChecksumAttribute}},
42+
ISNULL(RTRIM(CONVERT(NVARCHAR(100),{{targetDataItem.name}})), 'N/A') + '#~!'{{#unless @last}} +{{/unless}}{{/each}}
43+
) AS [{{../metadataConfiguration.recordChecksumAttribute}}],
4444
{{#each dataItemMappings}}
45-
{{sourceDataItems.0.name}} AS {{targetDataItem.name}},
45+
[{{targetDataItem.name}}],
4646
{{/each}}
4747
ROW_NUMBER() OVER (PARTITION BY {{#each businessKeys}}{{#unless @first}},{{/unless}}{{#each businessKeyComponentMapping}} {{!-- Create a row number to enable selection only the earliest row, ordered by date/time --}}
4848
{{targetDataItem.name}}{{#unless @last}},{{/unless}}{{/each}}{{/each}}
49-
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../sourceDataItems.0.name}}{{/if}}{{/each}}{{/each}}
49+
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../targetDataItem.name}}{{/if}}{{/each}}{{/each}}
5050
ORDER BY {{#each businessKeys}}{{#each businessKeyComponentMapping}} {{!-- Create a row number to enable selection only the earliest row, ordered by date/time --}}
5151
{{targetDataItem.name}},{{/each}}{{/each}}
52-
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}}{{../sourceDataItems.0.name}},{{/if}}{{/each}}{{/each}}
52+
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}}{{../targetDataItem.name}},{{/if}}{{/each}}{{/each}}
5353
{{../metadataConfiguration.loadDateTimeAttribute}}
5454
) AS ROW_NUMBER
5555
FROM
5656
(
5757
SELECT
5858
[{{../metadataConfiguration.loadDateTimeAttribute}}],
5959
[{{../metadataConfiguration.eventDateTimeAttribute}}],
60-
[{{../metadataConfiguration.recordSourceAttribute}}],
60+
--[{{../metadataConfiguration.recordSourceAttribute}}],
6161
[{{../metadataConfiguration.sourceRowIdAttribute}}],
6262
[{{../metadataConfiguration.changeDataCaptureAttribute}}],{{#each businessKeys}}{{#each businessKeyComponentMapping}}
63-
{{targetDataItem.name}},{{/each}}{{/each}}
63+
[{{targetDataItem.name}}],{{/each}}{{/each}}
6464
{{#each dataItemMappings}}
65-
{{sourceDataItems.0.name}},
65+
[{{targetDataItem.name}}],
6666
{{/each}}
67-
COMBINED_VALUE,
67+
[COMBINED_VALUE],
6868
CASE
6969
WHEN LAG(COMBINED_VALUE,1,0x00000000000000000000000000000000) OVER (PARTITION BY {{#each businessKeys}}{{#unless @first}},{{/unless}}{{#each businessKeyComponentMapping}}
7070
{{targetDataItem.name}}{{#unless @last}},{{/unless}}{{/each}}{{/each}}
71-
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../sourceDataItems.0.name}}{{/if}}{{/each}}{{/each}}
71+
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../targetDataItem.name}}{{/if}}{{/each}}{{/each}}
7272
ORDER BY [{{../metadataConfiguration.loadDateTimeAttribute}}] ASC, [{{../metadataConfiguration.eventDateTimeAttribute}}] ASC, [{{../metadataConfiguration.changeDataCaptureAttribute}}] DESC) = COMBINED_VALUE
7373
THEN 'Same'
7474
ELSE 'Different'
75-
END AS VALUE_CHANGE_INDICATOR,
75+
END AS [VALUE_CHANGE_INDICATOR],
7676
CASE
7777
WHEN LAG([{{../metadataConfiguration.changeDataCaptureAttribute}}],1,'') OVER (PARTITION BY {{#each businessKeys}}{{#unless @first}},{{/unless}}{{#each businessKeyComponentMapping}}
7878
{{targetDataItem.name}}{{#unless @last}},{{/unless}}{{/each}}{{/each}}
79-
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../sourceDataItems.0.name}}{{/if}}{{/each}}{{/each}}
79+
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../targetDataItem.name}}{{/if}}{{/each}}{{/each}}
8080
ORDER BY [{{../metadataConfiguration.loadDateTimeAttribute}}] ASC, [{{../metadataConfiguration.eventDateTimeAttribute}}] ASC, [{{../metadataConfiguration.changeDataCaptureAttribute}}] ASC) = [{{../metadataConfiguration.changeDataCaptureAttribute}}]
8181
THEN 'Same'
8282
ELSE 'Different'
83-
END AS CDC_CHANGE_INDICATOR,
83+
END AS [CDC_CHANGE_INDICATOR],
8484
CASE
8585
WHEN LEAD([{{../metadataConfiguration.loadDateTimeAttribute}}],1,'9999-12-31') OVER (PARTITION BY {{#each businessKeys}}{{#unless @first}},{{/unless}}{{#each businessKeyComponentMapping}}
8686
{{targetDataItem.name}}{{#unless @last}},{{/unless}}{{/each}}{{/each}}
87-
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../sourceDataItems.0.name}}{{/if}}{{/each}}{{/each}}
87+
{{#each dataItemMappings}}{{#each targetDataItem.dataItemClassification}}{{#if classification}},{{../targetDataItem.name}}{{/if}}{{/each}}{{/each}}
8888
ORDER BY [{{../metadataConfiguration.loadDateTimeAttribute}}] ASC, [{{../metadataConfiguration.eventDateTimeAttribute}}] ASC, [{{../metadataConfiguration.changeDataCaptureAttribute}}] ASC) = [{{../metadataConfiguration.loadDateTimeAttribute}}]
8989
THEN 'Same'
9090
ELSE 'Different'
91-
END AS TIME_CHANGE_INDICATOR
91+
END AS [TIME_CHANGE_INDICATOR]
9292
FROM
9393
(
9494
SELECT
9595
[{{../metadataConfiguration.loadDateTimeAttribute}}],
9696
[{{../metadataConfiguration.eventDateTimeAttribute}}],
97-
[{{../metadataConfiguration.recordSourceAttribute}}],
97+
--[{{../metadataConfiguration.recordSourceAttribute}}],
9898
[{{../metadataConfiguration.sourceRowIdAttribute}}],
9999
[{{../metadataConfiguration.changeDataCaptureAttribute}}],{{#each businessKeys}} {{#each businessKeyComponentMapping}}
100100
CAST ({{sourceDataItems.0.name}} AS NVARCHAR(100)) AS [{{targetDataItem.name}}],{{/each}}{{/each}}
101101
{{#each dataItemMappings}}
102-
[{{sourceDataItems.0.name}}],
102+
[{{sourceDataItems.0.name}}] AS [{{targetDataItem.name}}],
103103
{{/each}}
104104
HASHBYTES('MD5',{{#each dataItemMappings}}
105-
ISNULL(RTRIM(CONVERT(NVARCHAR(100),{{sourceDataItems.0.name}})), 'N/A') + '#~!'{{#unless @last}} +{{/unless}}{{/each}}
106-
) AS COMBINED_VALUE
105+
ISNULL(RTRIM(CONVERT(NVARCHAR(100),[{{sourceDataItems.0.name}}])), 'N/A') + '#~!'{{#unless @last}} +{{/unless}}{{/each}}
106+
) AS [COMBINED_VALUE]
107107
FROM [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[{{sourceDataObjects.0.name}}]
108108
{{#if filterCriterion}}WHERE {{filterCriterion}} {{/if}}
109-
UNION
110-
SELECT DISTINCT
111-
'1900-01-01' AS [{{../metadataConfiguration.loadDateTimeAttribute}}],
112-
'1900-01-01' AS [{{../metadataConfiguration.eventDateTimeAttribute}}],
113-
'Data Warehouse' AS [{{../metadataConfiguration.recordSourceAttribute}}],
114-
0 AS [{{../metadataConfiguration.sourceRowIdAttribute}}],
115-
'N/A' AS [{{../metadataConfiguration.changeDataCaptureAttribute}}],{{#each businessKeys}} {{#each businessKeyComponentMapping}}
116-
CAST ({{sourceDataItems.0.name}} AS NVARCHAR(100)) AS [{{targetDataItem.name}}],{{/each}}{{/each}}
117-
{{#each dataItemMappings}}
118-
{{stringcompare targetDataItem.dataItemClassification.0.classification 'MultiActive'}}[{{sourceDataItems.0.name}}]{{else}}NULL{{/stringcompare}} AS [{{sourceDataItems.0.name}}],
119-
{{/each}}
120-
0x00000000000000000000000000000000 AS COMBINED_VALUE
121-
FROM [{{sourceDataObjects.0.dataObjectConnection.extensions.1.value}}].[{{sourceDataObjects.0.name}}]
122109
) sub
123110
) combined_value
124111
WHERE
125-
(VALUE_CHANGE_INDICATOR ='Different' and [{{../metadataConfiguration.changeDataCaptureAttribute}}] in ('Insert', 'Change'))
112+
([VALUE_CHANGE_INDICATOR] = 'Different' AND [{{../metadataConfiguration.changeDataCaptureAttribute}}] IN ('C'))
126113
OR
127-
( CDC_CHANGE_INDICATOR = 'Different' and TIME_CHANGE_INDICATOR = 'Different')
114+
([CDC_CHANGE_INDICATOR] = 'Different' AND [TIME_CHANGE_INDICATOR] = 'Different')
128115
{{/each}}

0 commit comments

Comments
 (0)