Skip to content

Commit 391122f

Browse files
committed
Updates on dimension pattern.
1 parent 966e8d4 commit 391122f

File tree

4 files changed

+51
-50
lines changed

4 files changed

+51
-50
lines changed

Virtual_EDW/CustomTabPage.cs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -620,8 +620,23 @@ private void GenerateFromPattern()
620620
{
621621
var conn = new SqlConnection {ConnectionString = localConnection.CreateSqlServerConnectionString(false)};
622622

623-
VdwUtility.CreateVdwSchema(conn);
624-
VdwUtility.ExecuteOutputInDatabase(conn, result);
623+
try
624+
{
625+
VdwUtility.CreateVdwSchema(conn);
626+
}
627+
catch
628+
{
629+
FormBase.VdwConfigurationSettings.VdwEventLog.Add(Event.CreateNewEvent(EventTypes.Error, $"There was an issue creating the schema {FormBase.VdwConfigurationSettings.VdwSchema} in database {conn.Database}."));
630+
}
631+
632+
try
633+
{
634+
VdwUtility.ExecuteOutputInDatabase(conn, result);
635+
}
636+
catch
637+
{
638+
FormBase.VdwConfigurationSettings.VdwEventLog.Add(Event.CreateNewEvent(EventTypes.Error, $"There was an issue executing the query {result} in database {conn.Database}."));
639+
}
625640
}
626641
else
627642
{

Virtual_EDW/LoadPatterns/loadPatternCollection.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@
9797
"loadPatternFilePath": "loadPatternDimSelect.handlebars",
9898
"loadPatternNotes": "Taken from earlier VDW versions, demonstrating one possible DIM / PIT template."
9999
},
100+
{
101+
"loadPatternName": "Persistent Staging Area 001 View Pattern",
102+
"loadPatternType": "PersistentStagingArea",
103+
"loadPatternConnectionKey": "PsaConnectionInternalId",
104+
"loadPatternFilePath": "loadPatternPersistentStagingView.handlebars",
105+
"loadPatternNotes": ""
106+
},
100107
{
101108
"loadPatternName": "Persistent Staging Area 001 Full Outer Join Insert Pattern",
102109
"loadPatternType": "PersistentStagingArea",
@@ -111,13 +118,6 @@
111118
"loadPatternFilePath": "loadPatternPersistentStagingViewSimplified.handlebars",
112119
"loadPatternNotes": "This PSA pattern does not contain a full row checksum and CDC operation check, but just inserts STG records if they haven't been processed already."
113120
},
114-
{
115-
"loadPatternName": "Persistent Staging Area 001 View Pattern",
116-
"loadPatternType": "PersistentStagingArea",
117-
"loadPatternConnectionKey": "PsaConnectionInternalId",
118-
"loadPatternFilePath": "loadPatternPersistentStagingView.handlebars",
119-
"loadPatternNotes": ""
120-
},
121121
{
122122
"loadPatternName": "Persistent Staging Area 001 View Pattern With Deduplication",
123123
"loadPatternType": "PersistentStagingArea",

Virtual_EDW/LoadPatterns/loadPatternDimSelect.Handlebars

Lines changed: 25 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -5,83 +5,69 @@
55
--
66

77
SELECT
8-
[PIT_EFFECTIVE_DATETIME],{{#each sourceDataObjects}}{{stringcompare dataObjectClassifications.0.classification 'CoreBusinessConcept'}}{{sourceData}}
8+
[PIT_EFFECTIVE_DATETIME],{{#each sourceDataObjects}}{{stringcompare dataObjectClassifications.0.classification 'CoreBusinessConcept'}}{{sourceData}}{{else}}
99
LEAD(PIT_EFFECTIVE_DATETIME,1,'9999-12-31') OVER (PARTITION BY [{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}] ORDER BY PIT_EFFECTIVE_DATETIME ASC) AS PIT_EXPIRY_DATETIME,
10-
COALESCE([{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}],0x00000000000000000000000000000000) AS [{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}],
11-
{{else}}
12-
COALESCE([{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}],0x00000000000000000000000000000000) AS [{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}],
13-
{{#each dataItems}}
14-
[{{../name}}.{{name}}],
15-
{{/each}}
16-
COALESCE([{{name}}.{{../../../metadataConfiguration.loadDateTimeAttribute}}],'1900-01-01') AS [{{name}}.{{../../../metadataConfiguration.loadDateTimeAttribute}}]{{#unless @last}},{{/unless}}
17-
{{/stringcompare}}
18-
{{/each}}
10+
{{/stringcompare}}{{/each}}
11+
*
1912
FROM
2013
(
2114
SELECT
22-
*,{{#each sourceDataObjects}}{{stringcompare dataObjectClassifications.0.classification 'CoreBusinessConcept'}}{{sourceData}}
15+
*,{{#each sourceDataObjects}}{{stringcompare dataObjectClassifications.0.classification 'CoreBusinessConcept'}}{{sourceData}}{{else}}
2316
LAG(ATTRIBUTE_CHECKSUM, 1, 0x00000000000000000000000000000000) OVER(PARTITION BY [{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}] ORDER BY PIT_EFFECTIVE_DATETIME ASC) AS PREVIOUS_ATTRIBUTE_CHECKSUM
24-
{{/stringcompare}}
25-
{{/each}}
17+
{{/stringcompare}}{{/each}}
2618
FROM
2719
(
2820
SELECT
29-
*,{{#each sourceDataObjects}}{{stringcompare dataObjectClassifications.0.classification 'CoreBusinessConcept'}}{{sourceData}}
30-
ISNULL(RTRIM(CONVERT(VARCHAR(100),[{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}])),'NA')+'|'+
31-
{{else}}
32-
ISNULL(RTRIM(CONVERT(VARCHAR(100),[{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}])),'NA')+'|'+
33-
{{#each dataItems}}
34-
ISNULL(RTRIM(CONVERT(VARCHAR(100),[{{../name}}.{{name}}])),'NA')+'|'+
35-
{{/each}}
36-
ISNULL(RTRIM(CONVERT(VARCHAR(100),[{{name}}.{{../../../metadataConfiguration.loadDateTimeAttribute}}])),'NA')+'|'{{#unless @last}}+{{/unless}}
37-
{{/stringcompare}}
21+
*,
22+
{{#each dataItemMappings}}
23+
ISNULL(RTRIM(CONVERT(VARCHAR(100),[{{targetDataItem.name}}])),'NA')+'|'{{#unless @last}}+{{/unless}}
3824
{{/each}}
3925
AS ATTRIBUTE_CHECKSUM
4026
FROM
4127
(
42-
SELECT{{#each sourceDataObjects}}{{stringcompare dataObjectClassifications.0.classification 'CoreBusinessConcept'}}{{sourceData}}
43-
{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}} AS [{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}],
44-
{{else}}
28+
SELECT{{#each sourceDataObjects}}{{stringcompare dataObjectClassifications.0.classification 'CoreBusinessConcept'}}{{sourceData}}{{else}}
4529
{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}} AS [{{name}}.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}],
46-
{{name}}.{{../../../metadataConfiguration.loadDateTimeAttribute}} AS [{{name}}.{{../../../metadataConfiguration.loadDateTimeAttribute}}],
47-
{{#each dataItems}}
48-
{{../name}}.{{name}} AS [{{../name}}.{{name}}],
49-
{{/each}}
50-
{{/stringcompare}}
51-
{{/each}}
30+
{{/stringcompare}}{{/each}}
31+
-- Data Item Mappings
32+
{{#each dataItemMappings}}
33+
{{sourceDataItems.0.name}} AS [{{targetDataItem.name}}],
34+
{{/each}}
35+
5236
PIT_EFFECTIVE_DATETIME
5337
FROM
5438
(
39+
-- Creation of time slices
5540
SELECT
5641
{{businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}},
5742
PIT_EFFECTIVE_DATETIME,
5843
LEAD(PIT_EFFECTIVE_DATETIME,1,'9999-12-31') OVER (PARTITION BY {{businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}} ORDER BY PIT_EFFECTIVE_DATETIME ASC) AS PIT_EXPIRY_DATETIME
5944
FROM
6045
(
46+
-- Selection of time ranges
6147
{{#each sourceDataObjects}}
6248
{{stringcompare dataObjectClassifications.0.classification 'CoreBusinessConcept'}}
63-
SELECT {{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}, CONVERT(DATETIME2(7), '1900-01-01') AS PIT_EFFECTIVE_DATETIME FROM {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}
64-
UNION
6549
SELECT {{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}, {{../../../metadataConfiguration.loadDateTimeAttribute}} AS PIT_EFFECTIVE_DATETIME FROM {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}
6650
{{else}}
51+
SELECT {{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}, CONVERT(DATETIME2(7), '1900-01-01') AS PIT_EFFECTIVE_DATETIME FROM {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}
52+
UNION
6753
SELECT {{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}, {{../../../metadataConfiguration.loadDateTimeAttribute}} AS PIT_EFFECTIVE_DATETIME FROM {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}
6854
{{/stringcompare}}
69-
{{#unless @last}} UNION{{/unless}}
70-
{{/each}}
55+
{{#unless @last}} UNION{{/unless}}{{/each}}
7156
) PIT
7257
) TimeRanges
7358
{{#each sourceDataObjects}}{{stringcompare dataObjectClassifications.0.classification 'CoreBusinessConcept'}}{{sourceData}}
74-
INNER JOIN {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}
75-
ON TimeRanges.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}} = {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}.[{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}]
76-
{{else}}
7759
LEFT OUTER JOIN {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}
7860
ON TimeRanges.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}} = {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}.[{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}]
7961
AND {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}.{{../../../metadataConfiguration.loadDateTimeAttribute}} <= TimeRanges.PIT_EFFECTIVE_DATETIME
8062
AND {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}.{{../../../metadataConfiguration.expiryDateTimeAttribute}} >= TimeRanges.PIT_EXPIRY_DATETIME
63+
{{else}}
64+
INNER JOIN {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}
65+
ON TimeRanges.{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}} = {{../../../metadataConfiguration.vdwSchemaName}}.{{name}}.[{{../../businessKeys.0.businessKeyComponentMapping.0.targetDataItem.name}}]
8166
{{/stringcompare}}
8267
{{/each}}
68+
8369
) SUB_TIMELINES
8470
) SUB_CHECKSUM
8571
) SUB_FINAL
8672
WHERE ATTRIBUTE_CHECKSUM <> PREVIOUS_ATTRIBUTE_CHECKSUM
87-
{{/each}}
73+
{{/each}}

Virtual_EDW/VdwUtility.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,13 +267,13 @@ public static void ExecuteOutputInDatabase(SqlConnection sqlConnection, string q
267267
}
268268
catch (Exception ex)
269269
{
270-
FormBase.VdwConfigurationSettings.VdwEventLog.Add(Event.CreateNewEvent(EventTypes.Error, "Issues occurred executing the SQL statement. SQL error: " + ex.Message + ""));
270+
FormBase.VdwConfigurationSettings.VdwEventLog.Add(Event.CreateNewEvent(EventTypes.Error, $"Issues occurred executing the SQL statement. SQL error {ex.Message} - {ex.InnerException.Message}."));
271271
}
272272
}
273273
}
274274
catch (Exception ex)
275275
{
276-
FormBase.VdwConfigurationSettings.VdwEventLog.Add(Event.CreateNewEvent(EventTypes.Error, "There was an issue executing the code against the database. The message is: " + ex.Message + ""));
276+
FormBase.VdwConfigurationSettings.VdwEventLog.Add(Event.CreateNewEvent(EventTypes.Error, $"There was an issue executing the code against the database. The message is {ex.Message} - {ex.InnerException.Message}."));
277277
}
278278
}
279279
}

0 commit comments

Comments
 (0)