DataWarehouseAutomation 2.1.0

dotnet add package DataWarehouseAutomation --version 2.1.0                
NuGet\Install-Package DataWarehouseAutomation -Version 2.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DataWarehouseAutomation" Version="2.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DataWarehouseAutomation --version 2.1.0                
#r "nuget: DataWarehouseAutomation, 2.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DataWarehouseAutomation as a Cake Addin
#addin nuget:?package=DataWarehouseAutomation&version=2.1.0

// Install DataWarehouseAutomation as a Cake Tool
#tool nuget:?package=DataWarehouseAutomation&version=2.1.0                

Schema for Data Solution Automation

Intent

To provide a collaborative space to discuss an exchange format concerning data logistics ('ETL') generation metadata, supporting Data Warehouse Automation. This adapter should contain all metadata necessary to generate the transformation logic for a Data Warehouse solution.

Why is this relevant?

Many, many, people have developed their own Data Warehouse automation and /or code generation solution to suit their specific needs. These tools often reinvent the wheel to a certain extent. Some of these are built inside existing tools (i.e. ERwin, Powerdesigner) using SDKs or macros. Others use different development frameworks (.net, Java) and most use differently modelled repositories or file formats to persist data on disk.

This is in addition to the many off-the-shelf DWA platforms, each of which has their own repository and format as well.

Rather than focusing on which solution is ‘best’, there might be a way where everyone can use different tools and technologies while still collaborating on an data warehouse automation ecosystem.

This means that various functions in this ecosystem need to be decoupled. The interface schema could potentially be used for this – as an agreement on how source-to-target (mapping) metadata can be captured for used by different tools in an ecosystem.

In the broader sense of meritocracy, it is worth pursuing if a common exchange format for metadata can be defined in a way that any developer can develop to in whatever technology or way their passion drives them.

Requirements

The interface schema has the following requirements:

  • Needs to be able to generate transformation logic using and externally applied template based on metadata available in the JSON.
  • Needs to encompass all known Ensemble Modelling use-cases (see checklist for Data Vault conformance) in a single object.
  • Make sure business keys are created in collections, to support concatenation and composition.
  • Allow for flexibility in source usage, including code to support complex definitions.

Structure

The following directories have been set up:

  • Generic interface, containing the JSON schema definition.
  • Class Library (DataWarehouseAutomation) containing the object model for deserialization, as well as various utility classes such as validation of files against the JSON schema definition.
  • Code examples (examples_handlebars), containing C# examples using the generic interface for various purposes.
  • Regression test project (test_project)

Across most, if not all, metadata models there is a core set of information that is required for any generation of data logistics code. If we can separate this from the UI / management of metadata we could have an exchange format that allows anyone to 'plug in' their own desired technology.

Working guidelines

For any change, create a new branch (no direct commits to main branch).

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.1.0 112 7/8/2024
2.0.3 136 4/21/2024
2.0.2 279 11/12/2023
2.0.1 143 11/7/2023
2.0.0 155 9/17/2023
1.3.4 239 8/18/2023
1.3.3 168 8/16/2023
1.3.2 168 8/16/2023
1.3.1 172 5/15/2023
1.2.5 313 3/10/2023
1.2.4 260 2/22/2023
1.2.3 385 10/31/2022
1.2.2 382 10/26/2022
1.2.1 365 10/26/2022
1.2.0 383 10/13/2022