Complete API surface of the Beep.Skia.ETL assembly: 38 public types with their documented members. Follow the family guide for usage patterns.

Types in this assembly

CdcMethod (enum)

ColumnProfile (class)

Statistical profile of a single column.

MemberKindDescription
string NamePropertyGets or sets the name.
int CountPropertyGets or sets the count.
int NullCountPropertyGets or sets the null count.
int DistinctCountPropertyGets or sets the distinct count.
object MinPropertyGets or sets the min.
object MaxPropertyGets or sets the max.
double? AveragePropertyGets or sets the average.
double? SumPropertyGets or sets the sum.
int? MinLengthPropertyGets or sets the min length.
int? MaxLengthPropertyGets or sets the max length.
List<object> SampleValuesPropertyGets or sets the sample values.
bool IsNumericPropertyGets or sets the is numeric.
bool IsDateTimePropertyGets or sets the is date time.
double NullPercentage(int rowCount)MethodGets or sets the null percentage.

DataPreviewFormatter (class)

Formats rows (dictionaries) as an aligned plain-text table for data previews.

MemberKindDescription
static string ToTable( IEnumerable<IDictionary<string, object>> rows, int maxRows = 20, int maxColumnWidth = 24)MethodRenders up to rows as a fixed-width text table. Long cell values are truncated to .

DataProfile (class)

Profile of a dataset: row count and per-column statistics.

MemberKindDescription
int RowCountPropertyGets or sets the row count.
List<ColumnProfile> ColumnsPropertyGets or sets the columns.
string Summary()MethodHuman-readable profile report.

DataProfiler (class)

Computes column-level statistics (counts, nulls, distinct, min/max, average, string lengths) over a set of rows represented as dictionaries.

MemberKindDescription
DataProfile Profile(IEnumerable<IDictionary<string, object>> rows, int sampleSize = 5)MethodProfiles the given rows. Column order follows first-seen order.

DestinationKind (enum)

ETLAggregate (class)

ETL Aggregate component that represents data aggregation operations in ETL workflows. Displays as an octagon shape indicating data summarization/grouping.

MemberKindDescription
ETLAggregate()MethodInitializes a new instance of the ETLAggregate class.

ETLCdcNode (class)

MemberKindDescription
CdcMethod MethodPropertyGets or sets the method.
string TrackingColumnPropertyGets or sets the tracking column.
string ChangeIndicatorPropertyGets or sets the change indicator.
ETLCdcNode()MethodInitializes a new instance of the ETLCdcNode class.

ETLConditionalSplit (class)

ETL Conditional Split component that routes rows to multiple outputs based on conditions. Displays as a diamond with multiple output ports. Evaluates conditions in order; first match wins. Unmatched rows go to default output.

MemberKindDescription
string ConditionsPropertySplit conditions (JSON array of SplitCondition)
bool HasDefaultOutputPropertyInclude default output for unmatched rows
ETLConditionalSplit()MethodInitializes a new instance of the ETLConditionalSplit class.

ETLControl (class)

Base visual for ETL nodes: rounded rectangle with a header/title and optional subtitle. Provides helpers to create and maintain input/output connection points along the left/right edges.

MemberKindDescription
string TitlePropertyGets or sets the title.
bool HasErrorOutputPropertyEnable error output port for rejected rows
int InPortCountPropertyGets or sets the in port count.
int OutPortCountPropertyGets or sets the out port count.

ETLDerivedColumn (class)

ETL Derived Column component for adding calculated columns to the data flow. Displays as a rectangle with expression builder support. Supports multiple derived columns with expressions using built-in function library.

MemberKindDescription
string DerivedColumnsPropertyDerived columns (JSON array of DerivedColumnDefinition)
string OutputSchemaPropertyOutput schema (JSON array of ColumnDefinition)
ETLDerivedColumn()MethodInitializes a new instance of the ETLDerivedColumn class.

ETLDestination (class)

ETL Destination component that represents data destinations in ETL workflows. Displays as a funnel shape indicating data output/storage.

MemberKindDescription
ETLDestination()MethodInitializes a new instance of the ETLDestination class.

ETLFilter (class)

ETL Filter component that represents data filtering operations in ETL workflows. Displays as a diamond shape indicating conditional data filtering.

MemberKindDescription
ETLFilter()MethodInitializes a new instance of the ETLFilter class.

ETLFuzzyLookupNode (class)

MemberKindDescription
FuzzyAlgorithm AlgorithmPropertyGets or sets the algorithm.
double ThresholdPropertyGets or sets the threshold.
string MatchColumnPropertyGets or sets the match column.
string ReferenceColumnPropertyGets or sets the reference column.
ETLFuzzyLookupNode()MethodInitializes a new instance of the ETLFuzzyLookupNode class.

ETLJoin (class)

ETL Join component that represents data joining operations in ETL workflows. Displays as a triangle shape indicating data merging/combining.

MemberKindDescription
ETLJoin()MethodInitializes a new instance of the ETLJoin class.

ETLLookup (class)

ETL Lookup component that enriches data by joining with reference data. Displays as a cylinder with two inputs (main data + reference data). Supports caching strategies for performance optimization.

MemberKindDescription
CacheMode CacheModePropertyCache strategy: None, Partial, Full
string MatchColumnsPropertyColumns to match (CSV: MainCol=RefCol,...)
string ReturnColumnsPropertyColumns to return from reference (CSV)
bool FailOnNoMatchPropertyFail if lookup finds no match
string OutputSchemaPropertyOutput schema (JSON array of ColumnDefinition)
ETLLookup()MethodInitializes a new instance of the ETLLookup class.

ETLMerge (class)

ETL Merge node: combines multiple input streams into one output (UNION ALL). Different from Join - simply concatenates rows from multiple sources.

MemberKindDescription
int InputCountPropertyGets or sets the input count.
bool RemoveDuplicatesPropertyGets or sets the remove duplicates.
ETLMerge()MethodInitializes a new instance of the ETLMerge class.

ETLMulticast (class)

ETL Multicast node: sends identical copy of data to multiple outputs. Used for parallel processing or feeding multiple destinations.

MemberKindDescription
int OutputCountPropertyGets or sets the output count.
ETLMulticast()MethodInitializes a new instance of the ETLMulticast class.

ETLPivot (class)

ETL Pivot node: rotates data from rows to columns (crosstab transformation). Converts row-based data into column-based aggregated view.

MemberKindDescription
string PivotColumnPropertyGets or sets the pivot column.
string GroupByColumnsPropertyGets or sets the group by columns.
string ValueColumnPropertyGets or sets the value column.
string AggregateFunctionPropertyGets or sets the aggregate function.
ETLPivot()MethodInitializes a new instance of the ETLPivot class.

ETLRowCount (class)

ETL Row Count node: counts rows passing through and optionally adds count column. Useful for auditing and debugging pipeline data flow.

MemberKindDescription
bool AddCountColumnPropertyGets or sets the add count column.
string CountColumnNamePropertyGets or sets the count column name.
ETLRowCount()MethodInitializes a new instance of the ETLRowCount class.

ETLScd (class)

ETL SCD (Slowly Changing Dimension) component for managing dimension updates. Displays as a special cylinder with historical tracking icon. Supports Type 1 (overwrite) and Type 2 (historical with effective dates).

MemberKindDescription
ScdType TypePropertySCD Type: Type1 (overwrite), Type2 (historical)
string BusinessKeysPropertyBusiness key columns (CSV) for matching existing records
string ChangeTrackingColumnsPropertyColumns to track for changes (CSV)
string EffectiveFromColumnPropertyColumn name for effective from date (Type 2 only)
string EffectiveToColumnPropertyColumn name for effective to date (Type 2 only)
string CurrentFlagColumnPropertyColumn name for current flag (Type 2 only)
string TableNamePropertyTarget dimension table name
ETLScd()MethodInitializes a new instance of the ETLScd class.

ETLScript (class)

ETL Script node: executes custom transformation script (SQL, Python, C#, etc). Allows arbitrary transformations beyond built-in operations.

MemberKindDescription
string ScriptLanguagePropertyGets or sets the script language.
string ScriptPropertyGets or sets the script.
ETLScript()MethodInitializes a new instance of the ETLScript class.

ETLSort (class)

ETL Sort node: orders rows by specified columns and direction.

MemberKindDescription
string SortColumnsPropertyGets or sets the sort columns.
string SortDirectionsPropertyGets or sets the sort directions.
bool RemoveDuplicatesPropertyGets or sets the remove duplicates.
ETLSort()MethodInitializes a new instance of the ETLSort class.

ETLSource (class)

ETL Source component that represents data sources in ETL workflows. Displays as a cylinder shape indicating data storage/retrieval.

MemberKindDescription
SourceKind KindPropertySource kind
string ConnectionStringPropertySource connection (masked)
string PathPropertyTable/File/Endpoint path
ETLSource()MethodInitializes a new instance of the ETLSource class.

ETLSurrogateKeyNode (class)

MemberKindDescription
string KeyColumnPropertyGets or sets the key column.
long StartValuePropertyGets or sets the start value.
long IncrementPropertyGets or sets the increment.
ETLSurrogateKeyNode()MethodInitializes a new instance of the ETLSurrogateKeyNode class.

ETLTarget (class)

ETL Target (Sink) node representing a destination like a table, file, or topic. Accepts one input, validates incoming schema vs ExpectedSchema, and shows warnings on mismatch.

MemberKindDescription
string ConnectionStringPropertyDestination connection string (masked in UI)
DestinationKind DestinationPropertyDestination kind
string TableNamePropertyTarget table or object name
WriteMode ModePropertyAppend/Overwrite/Upsert
bool PreCreateTablePropertyAuto-create table from expected schema
string ExpectedSchemaPropertyExpected schema (JSON array of ColumnDefinition)
string DataQualityRulesPropertyData quality validation rules (JSON array of DataQualityRule)
ETLTarget()MethodInitializes a new instance of the ETLTarget class.

ETLTransform (class)

ETL Transform node with basic operations: Select/Project, Filter, Map/Compute. Exposes OutputSchema (JSON of ColumnDefinition) for downstream nodes and lines.

MemberKindDescription
TransformKind KindPropertyTransform kind
string ExpressionPropertyFilter/Map expression (simple syntax)
string OutputSchemaPropertyOutput schema (JSON array of ColumnDefinition)
string GroupByPropertyAggregate group-by columns (CSV)
string JoinKeyLeftPropertyJoin key in left input
string JoinKeyRightPropertyJoin key in right input
ETLTransform()MethodInitializes a new instance of the ETLTransform class.
void InferOutputSchemaFromUpstreams(Func<int, string> getInputSchemaJson)MethodHelper used by external orchestrators or editor buttons to infer OutputSchema from upstream schemas for Aggregate and Join kinds. This is a lightweight heuristic.

ETLUnpivot (class)

ETL Unpivot node: rotates data from columns to rows (denormalization). Converts column-based data into row-based normalized format.

MemberKindDescription
string UnpivotColumnsPropertyGets or sets the unpivot columns.
string AttributeColumnPropertyGets or sets the attribute column.
string ValueColumnPropertyGets or sets the value column.
ETLUnpivot()MethodInitializes a new instance of the ETLUnpivot class.

ExpressionEngine (class)

Small SQL-like expression engine for ETL derived columns, conditional splits, filters, and custom data-quality rules. Supports: literals (number/string/TRUE/FALSE/NULL), column references ([Column], "Column", `Column`, or bare identifiers), arithmetic (+ - * / %), comparisons (= == != &lt;&gt; &lt; &lt;= &gt; &gt;=), logical operators (AND OR NOT), IS NULL / IS NOT NULL, LIKE, and a built-in function library. Unknown columns evaluate to null.

MemberKindDescription
static IReadOnlyCollection<string> FunctionsPropertyGets the names of all built-in functions.
object Evaluate(string expression, IDictionary<string, object> row)MethodEvaluates an expression against a row. Returns null when the result is NULL.
bool EvaluateBoolean(string expression, IDictionary<string, object> row)MethodEvaluates an expression as a boolean (null/0/empty/"false" are false).
IReadOnlyCollection<string> GetReferencedColumns(string expression)MethodReturns the column names referenced by the expression (excluding function names).

ExpressionException (class)

Raised when an expression cannot be parsed or evaluated.

MemberKindDescription
ExpressionException(string message) : base(message) { }MethodInitializes a new instance of the ExpressionException class.

FlattenOptions (class)

Options controlling flattening behavior.

MemberKindDescription
string SeparatorPropertySeparator used between nested field names (default ".").
int MaxDepthPropertyMaximum nesting depth to flatten.
bool IncludeNullsPropertyWhen true, JSON nulls are emitted as null values; otherwise omitted.

FuzzyAlgorithm (enum)

NodeRunMetrics (class)

Runtime metrics for a single pipeline node.

MemberKindDescription
string NodeNamePropertyGets or sets the node name.
int RowsInPropertyGets or sets the rows in.
int RowsOutPropertyGets or sets the rows out.
TimeSpan ElapsedPropertyGets or sets the elapsed.
string StatusPropertyGets or sets the status.
DateTime RecordedAtPropertyGets or sets the recorded at.
double RowsPerSecondPropertyGets or sets the rows per second.

PipelineMetrics (class)

Collects per-node runtime metrics for an ETL pipeline run.

MemberKindDescription
List<NodeRunMetrics> NodesPropertyGets or sets the nodes.
DateTime? StartedAtPropertyGets or sets the started at.
DateTime? CompletedAtPropertyGets or sets the completed at.
bool IsRunningPropertyGets or sets the is running.
TimeSpan TotalElapsedPropertyGets or sets the total elapsed.
void Start()MethodMarks the start of a pipeline run.
void Complete()MethodMarks the end of a pipeline run.
NodeRunMetrics Record(string nodeName, int rowsIn, int rowsOut, TimeSpan elapsed, string status = "Completed")MethodRecords a completed node execution.
int Measure(string nodeName, int rowsIn, Func<int> action)MethodMeasures a node action and records its metrics. Returns the action's row count.
void Reset()MethodClears all metrics and timing.
string Summary()MethodHuman-readable metrics report.

SourceKind (enum)

StructuredDataFlattener (class)

Flattens structured JSON/XML into tabular rows (dictionaries) for ETL processing, and infers a tabular schema from flattened rows. Nested objects become dot-separated columns (address.city); arrays are preserved as JSON text so no data is lost; XML attributes become "@name" columns.

MemberKindDescription
List<Dictionary<string, object>> FlattenJson(string json, string rootPath = null, FlattenOptions options = null)MethodFlattens a JSON document into rows. JSON text. Optional dot path to the array/object to flatten (e.g., "data.items"). Flattening options.
List<Dictionary<string, object>> FlattenXml(string xml, string rowElement = null, FlattenOptions options = null)MethodFlattens an XML document into rows. When is null, the most frequent child element of the root is used as the row element.
List<ColumnDefinition> InferSchema(IEnumerable<IDictionary<string, object>> rows, string stringType = "VARCHAR")MethodInfers a tabular schema from flattened rows. Numeric columns merge to FLOAT, mixed types fall back to STRING, and sparse/missing values mark the column nullable.

TransformKind (enum)

WriteMode (enum)