diff --git a/SetUpAggs/AggsConfig.json b/SetUpAggs/AggsConfig.json index 893c7c1..80f6451 100644 --- a/SetUpAggs/AggsConfig.json +++ b/SetUpAggs/AggsConfig.json @@ -1,33 +1,37 @@ { - "database": { - "name": "AdventureWorksAggsProvider_PH", - "tables": [ - { - "name": "DimGeography", - "mode": "DirectQuery" - }, - { - "name": "DimCustomer", - "mode": "DirectQuery" - }, - { - "name": "DimDate", - "mode": "DirectQuery" - }, - { -Products -Getting things ready ... - "name": "DimProductSubcategory", - "mode": "DirectQuery" - }, - { - "name": "DimProductCategory", - "mode": "DirectQuery" - }, - { - "name": "FactInternetSalesAgg", - "mode": "DirectQuery" - } - ] - } + "database": { + "name": "AdventureWorksAggsProvider", + "tables": [ + { + "name": "DimGeography", + "mode": "DirectQuery", + "refreshType": "Full" + }, + { + "name": "DimCustomer", + "mode": "DirectQuery", + "refreshType": "Full" + }, + { + "name": "DimDate", + "mode": "DirectQuery", + "refreshType": "Full" + }, + { + "name": "DimProductSubcategory", + "mode": "DirectQuery", + "refreshType": "Full" + }, + { + "name": "DimProductCategory", + "mode": "DirectQuery", + "refreshType": "Full" + }, + { + "name": "FactInternetSalesAgg", + "mode": "DirectQuery", + "refreshType": "Full" + } + ] + } } \ No newline at end of file diff --git a/SetUpAggs/AggsConfig_SetAggs1.json b/SetUpAggs/AggsConfig_SetAggs1.json index 72c6cf7..9247171 100644 --- a/SetUpAggs/AggsConfig_SetAggs1.json +++ b/SetUpAggs/AggsConfig_SetAggs1.json @@ -2,68 +2,74 @@ "database": { "name": "AdventureWorksAggsProvider_PH", "tables": [ - { - "name": "DimGeography", - "mode": "Dual" - }, - { - "name": "DimCustomer", - "mode": "Dual" - }, - { - "name": "DimDate", - "mode": "Dual" - }, - { - "name": "DimProductSubcategory", - "mode": "Dual" - }, - { - "name": "DimProductCategory", - "mode": "Dual" - }, - { - "name": "FactInternetSalesAgg", - "mode": "Import", - "aggregationRules": [ - { - "aggTableColumn": "OrderDateKey", - "summarization": "GroupBy", - "detailTable": "FactInternetSales", - "detailTableColumn": "OrderDateKey" + { + "name": "DimGeography", + "mode": "Dual", + "refreshType": "Full" + }, + { + "name": "DimCustomer", + "mode": "Dual", + "refreshType": "Full" + }, + { + "name": "DimDate", + "mode": "Dual", + "refreshType": "Full" + }, + { + "name": "DimProductSubcategory", + "mode": "Dual", + "refreshType": "Full" + }, + { + "name": "DimProductCategory", + "mode": "Dual", + "refreshType": "Full" + }, + { + "name": "FactInternetSalesAgg", + "mode": "Import", + "refreshType": "Full", + "aggregationRules": [ + { + "aggTableColumn": "OrderDateKey", + "summarization": "GroupBy", + "detailTable": "FactInternetSales", + "detailTableColumn": "OrderDateKey" }, - { - "aggTableColumn": "CustomerKey", - "summarization": "GroupBy", - "detailTable": "FactInternetSales", - "detailTableColumn": "CustomerKey" + { + "aggTableColumn": "CustomerKey", + "summarization": "GroupBy", + "detailTable": "FactInternetSales", + "detailTableColumn": "CustomerKey" }, - { - "aggTableColumn": "ProductSubcategoryKey", - "summarization": "GroupBy", - "detailTable": "DimProduct", - "detailTableColumn": "ProductSubcategoryKey" + { + "aggTableColumn": "ProductSubcategoryKey", + "summarization": "GroupBy", + "detailTable": "DimProduct", + "detailTableColumn": "ProductSubcategoryKey" }, - { - "aggTableColumn": "SalesAmount_Sum", - "summarization": "Sum", - "detailTable": "FactInternetSales", - "detailTableColumn": "SalesAmount" + { + "aggTableColumn": "SalesAmount_Sum", + "summarization": "Sum", + "detailTable": "FactInternetSales", + "detailTableColumn": "SalesAmount" }, - { - "aggTableColumn": "UnitPrice_Sum", - "summarization": "Min", - "detailTable": "FactInternetSales", - "detailTableColumn": "UnitPrice" + { + "aggTableColumn": "UnitPrice_Sum", + "summarization": "Min", + "detailTable": "FactInternetSales", + "detailTableColumn": "UnitPrice" }, - { - "aggTableColumn": "UnitPrice_Count", - "summarization": "Count", - "detailTable": "FactInternetSales", - "detailTableColumn": "UnitPrice" + { + "aggTableColumn": "UnitPrice_Count", + "summarization": "Count", + "detailTable": "FactInternetSales", + "detailTableColumn": "UnitPrice" } - ] - } + ] + } ] } } \ No newline at end of file diff --git a/SetUpAggs/AggsConfig_SetAggs2.json b/SetUpAggs/AggsConfig_SetAggs2.json index eec08c1..797513a 100644 --- a/SetUpAggs/AggsConfig_SetAggs2.json +++ b/SetUpAggs/AggsConfig_SetAggs2.json @@ -2,67 +2,73 @@ "database": { "name": "AdventureWorksAggsProvider_PH", "tables": [ - { - "name": "DimGeography", - "mode": "Dual" - }, - { - "name": "DimCustomer", - "mode": "Dual" - }, - { - "name": "DimDate", - "mode": "Dual" - }, - { - "name": "DimProductSubcategory", - "mode": "Dual" - }, - { - "name": "DimProductCategory", - "mode": "Dual" - }, - { - "name": "FactInternetSalesAgg", - "mode": "Import", - "aggregationRules": [ - { - "aggTableColumn": "OrderDateKey", - "summarization": "GroupBy", - "detailTable": "FactInternetSales", - "detailTableColumn": "OrderDateKey" - }, - { - "aggTableColumn": "CustomerKey", - "summarization": "GroupBy", - "detailTable": "FactInternetSales", - "detailTableColumn": "CustomerKey" - }, - { - "aggTableColumn": "ProductSubcategoryKey", - "summarization": "GroupBy", - "detailTable": "DimProduct", - "detailTableColumn": "ProductSubcategoryKey" - }, - { - "aggTableColumn": "SalesAmount_Sum", - "summarization": "Sum", - "detailTable": "FactInternetSales", - "detailTableColumn": "SalesAmount" - }, - { - "aggTableColumn": "UnitPrice_Sum", - "summarization": "Sum", - "detailTable": "FactInternetSales", - "detailTableColumn": "UnitPrice" - }, - { - "aggTableColumn": "FactInternetSales_Count", - "summarization": "CountTableRows", - "detailTable": "FactInternetSales" - } - ] - } + { + "name": "DimGeography", + "mode": "Dual", + "refreshType": "Full" + }, + { + "name": "DimCustomer", + "mode": "Dual", + "refreshType": "Full" + }, + { + "name": "DimDate", + "mode": "Dual", + "refreshType": "Full" + }, + { + "name": "DimProductSubcategory", + "mode": "Dual", + "refreshType": "Full" + }, + { + "name": "DimProductCategory", + "mode": "Dual", + "refreshType": "Full" + }, + { + "name": "FactInternetSalesAgg", + "mode": "Import", + "refreshType": "Full", + "aggregationRules": [ + { + "aggTableColumn": "OrderDateKey", + "summarization": "GroupBy", + "detailTable": "FactInternetSales", + "detailTableColumn": "OrderDateKey" + }, + { + "aggTableColumn": "CustomerKey", + "summarization": "GroupBy", + "detailTable": "FactInternetSales", + "detailTableColumn": "CustomerKey" + }, + { + "aggTableColumn": "ProductSubcategoryKey", + "summarization": "GroupBy", + "detailTable": "DimProduct", + "detailTableColumn": "ProductSubcategoryKey" + }, + { + "aggTableColumn": "SalesAmount_Sum", + "summarization": "Sum", + "detailTable": "FactInternetSales", + "detailTableColumn": "SalesAmount" + }, + { + "aggTableColumn": "UnitPrice_Sum", + "summarization": "Sum", + "detailTable": "FactInternetSales", + "detailTableColumn": "UnitPrice" + }, + { + "aggTableColumn": "FactInternetSales_Count", + "summarization": "CountTableRows", + "detailTable": "FactInternetSales" + } + ] + } ] } } \ No newline at end of file diff --git a/SetUpAggs/AggsConfig_SetDQ.json b/SetUpAggs/AggsConfig_SetDQ.json index f2195c8..7c0f9e5 100644 --- a/SetUpAggs/AggsConfig_SetDQ.json +++ b/SetUpAggs/AggsConfig_SetDQ.json @@ -2,30 +2,36 @@ "database": { "name": "AdventureWorksAggsProvider_PH", "tables": [ - { - "name": "DimGeography", - "mode": "DirectQuery" - }, - { - "name": "DimCustomer", - "mode": "DirectQuery" - }, - { - "name": "DimDate", - "mode": "DirectQuery" - }, - { - "name": "DimProductSubcategory", - "mode": "DirectQuery" - }, - { - "name": "DimProductCategory", - "mode": "DirectQuery" - }, - { - "name": "FactInternetSalesAgg", - "mode": "DirectQuery" - } - ] + { + "name": "DimGeography", + "mode": "DirectQuery", + "refreshType": "Full" + }, + { + "name": "DimCustomer", + "mode": "DirectQuery", + "refreshType": "Full" + }, + { + "name": "DimDate", + "mode": "DirectQuery", + "refreshType": "Full" + }, + { + "name": "DimProductSubcategory", + "mode": "DirectQuery", + "refreshType": "Full" + }, + { + "name": "DimProductCategory", + "mode": "DirectQuery", + "refreshType": "Full" + }, + { + "name": "FactInternetSalesAgg", + "mode": "DirectQuery", + "refreshType": "Full" + } + ] } } \ No newline at end of file diff --git a/SetUpAggs/Program.cs b/SetUpAggs/Program.cs index 7a5e16b..23a9bf5 100644 --- a/SetUpAggs/Program.cs +++ b/SetUpAggs/Program.cs @@ -66,6 +66,9 @@ namespace SetUpAggs [JsonProperty("mode")] public string Mode { get; set; } + [JsonProperty("refreshType")] + public string RefreshType { get; set; } + [JsonProperty("aggregationRules", NullValueHandling = NullValueHandling.Ignore)] public AggregationRule[] AggregationRules { get; set; } } @@ -411,7 +414,11 @@ namespace SetUpAggs { Console.ForegroundColor = ConsoleColor.White; Console.Write($"Refreshing table [{tableObj.Name}] "); - tableObj.RequestRefresh(RefreshType.Full); + + Table tableConfig = aggsConfig.Database.Tables.First(x => x.Name == tableObj.Name); + var refreshType = (RefreshType)Enum.Parse(typeof(RefreshType), tableConfig.RefreshType); + tableObj.RequestRefresh(refreshType); + Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("COMPLETE"); } diff --git a/SetUpAggs/README.md b/SetUpAggs/README.md index a4ff850..50de83c 100644 --- a/SetUpAggs/README.md +++ b/SetUpAggs/README.md @@ -29,27 +29,33 @@ SetUpAggs.exe apply -Server asazure://server/instance -ConfigFile AggsConfig.jso "tables": [ { "name": "DimGeography", - "mode": "Dual" + "mode": "Dual", + "refreshType": "Full" }, { "name": "DimCustomer", - "mode": "Dual" + "mode": "Dual", + "refreshType": "Full" }, { "name": "DimDate", - "mode": "Dual" + "mode": "Dual", + "refreshType": "Full" }, { "name": "DimProductSubcategory", - "mode": "Dual" + "mode": "Dual", + "refreshType": "Full" }, { "name": "DimProductCategory", - "mode": "Dual" + "mode": "Dual", + "refreshType": "Full" }, { "name": "FactInternetSalesAgg", "mode": "Import", + "refreshType": "Full", "aggregationRules": [ { "aggTableColumn": "OrderDateKey",