Overview of Frictionless Data Transformation
Transforming data in Frictionless involves modifying data and metadata from a source state (A) to a target state (B). Key characteristics include:
- Metadata Integration: Unlike many ETL frameworks, Frictionless treats metadata as a first-class citizen, ensuring type information and other metadata are preserved during pipeline evaluation.
- Data Streaming: Data is streamed rather than loaded entirely into memory, allowing the framework to handle very large files. For operations like sorting, it uses a memory threshold and offloads to the file system when necessary.
- Lazy Evaluation: Manipulations happen on-demand. For example, if only one table in a package is reshaped, the others are not read. CPU-intensive tasks like type casting only occur if a
normalizestep is explicitly added. - Underlying Technology: Frictionless uses the PETL library for its core transform functions to provide lazy-loading functionality, adding a bridge between PETL processors and Frictionless Package/Resource concepts.