Wolfgang.Etl.Abstractions
1.0.0-rc2
dotnet add package Wolfgang.Etl.Abstractions --version 1.0.0-rc2
NuGet\Install-Package Wolfgang.Etl.Abstractions -Version 1.0.0-rc2
<PackageReference Include="Wolfgang.Etl.Abstractions" Version="1.0.0-rc2" />
<PackageVersion Include="Wolfgang.Etl.Abstractions" Version="1.0.0-rc2" />
<PackageReference Include="Wolfgang.Etl.Abstractions" />
paket add Wolfgang.Etl.Abstractions --version 1.0.0-rc2
#r "nuget: Wolfgang.Etl.Abstractions, 1.0.0-rc2"
#:package Wolfgang.Etl.Abstractions@1.0.0-rc2
#addin nuget:?package=Wolfgang.Etl.Abstractions&version=1.0.0-rc2&prerelease
#tool nuget:?package=Wolfgang.Etl.Abstractions&version=1.0.0-rc2&prerelease
Wolfgang.Etl.Abstractions
This package contains interfaces and base classes for building ETLs using a specific design pattern
The ETL design pattern is a common approach in data processing that involves three main stages:
- Extract: Retrieving data from various sources.
- Transform: Processing and transforming the extracted data into a desired format.
- Load: Storing the transformed data into a target system.
The abstractions in this package provide a way to define and implement these stages in a flexible and reusable manner. Each stage can be implemented with or without support for cancellation and progress reporting, allowing for greater control over the ETL process.
To build an ETL using this package, you would typically need to create 5 classes:
- One class for each of the three stages: Extract, Transform, and Load.
- One class representing the source data.
- One class representing the target data.
- One class that acts as the ETL orchestrator, coordinating the execution of the three stages.
The design uses lazy loading and lazy evaluation to ensure that data is processed only when needed. This allows for efficient memory usage and can handle large datasets without loading everything into memory at once.
The process uses a pull method rather than a push method to move data through the pipeline.
The process starts when the ETL orchestrator calls the LoadAsyc
method of the Loader
class.
The loader will start enumerating through the list of items passed into its LoadAsync
method.
This will intern trigger the TransformAsync
method of the Transformer
class, which will process each item
and yield the transformed results. The process of transformation will also trigger the ExtractAsync
method of the Extractor
class,
which will retrieve the necessary data from the source.
For more information check out the documentation
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 is compatible. net481 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.7)
- System.ComponentModel.Annotations (>= 5.0.0)
-
.NETFramework 4.7.2
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.7)
- System.ComponentModel.Annotations (>= 5.0.0)
-
.NETFramework 4.8
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.7)
- System.ComponentModel.Annotations (>= 5.0.0)
-
.NETFramework 4.8.1
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.7)
- System.ComponentModel.Annotations (>= 5.0.0)
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.7)
- System.ComponentModel.Annotations (>= 5.0.0)
-
.NETStandard 2.1
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.7)
- System.ComponentModel.Annotations (>= 5.0.0)
-
net8.0
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.7)
- System.ComponentModel.Annotations (>= 5.0.0)
-
net9.0
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.7)
- System.ComponentModel.Annotations (>= 5.0.0)
GitHub repositories
This package is not used by any popular GitHub repositories.