In order to start transforming data in EasyMorph, all data subject to manipulations has to be imported into EasyMorph. As of version 4.0 EasyMorph can import the following data sources/formats:
Once tables are loaded into EasyMorph they can further be modified using actions (transformations) that are applied sequentially one after another.
Databases can be queried using the visual Query Editor which is intended for users that don't know SQL.
Files can be loaded by simply dragging them into EasyMorph. In many cases, it's possible to load and automatically append multiple files at once.
All manipulations with tables are done with the help of various actions. E.g. renaming a column is an action. Filtering, joining, aggregations – all are actions. As of version 4.0 EasyMorph offers more than 110 various actions that can be divided into 5 categories:
Actions are executed consequently, step-by-step. One action is one step. Every action is applied to the result (output) of previous action. Therefore sequence of actions is important. The same actions in different order would usually produce a different result (although not always).
The final state (or result) of a table is the result of all actions of this table applied consequently, one after another.
Some actions (e.g. Append Table) require another table. These actions have two inputs – one input is the result of previous action in the same table and the other input is the final state (i.e. the result of last action) of the other table.
Derived tables is a powerful feature that allows transforming data in a non-linear way. When one table is derived from another (source) table it replicates the final result of the latter. So if the source table changes, the derived table changes automatically. In everything else derived tables is just a regular table and can further be modified using various actions.
Since you can derive any number of tables from a table, and then keep transforming every derived table in its own way, you can create non-linear action chains. For instance, you can produce two derived tables from a table, transform each of them in its own way and then append or merge them back into one table.
Derived tables can be calculated conditionally which allows designing conditionally branched workflows. For instance, if a certain data quality check failed, send and email with bad records attached.
Exporting data is performed using export actions. They can be inserted at any point of workflow. Export actions do not modify tables, they just export them into specified file format or external system. Therefore the output of an export action is always exactly the same as the input.
As of version 4.0 EasyMorh can export into the following data formats and systems:
EasyMorph workflows can have following automation:
EasyMorph workflows can also integrate and interact with external systems and applications.
|IMAP email server||Send / receive emails|
|Microsoft Exchange||Send / receive emails|
|SFTP/SCP||Download / upload files|
|REST API||Send HTTP requests and receive responses|
|Microsoft SharePoint||Download / upload files|
|Google Drive||Download / upload files|
|Amazon S3||Download / upload files|
|Tableau Server / Online||Publish extracts, trigger extract refreshes|
|Qlik Sense||Trigger task reloads|
EasyMorph can automatically generate human-readable documentation in plain English for current project. Read more about Auto-documentation.
EasyMorph Launcher is a complementary scheduling/triggering utility that comes with EasyMorph Desktop. Launcher allows creating tasks with EasyMorph projects that triggered manually when needed, or scheduled on various schedules (Once, Continuous, Daily, Weekly). Launcher resides in the system tray, starts on Windows start and is tightly integrated with Desktop.
EasyMorph projects can be executed from command line thus allowing integration with third-party applications. Read more about command line parameters.
EasyMorph Server is a Windows service with a web interface that employs the same in-memory engine as EasyMorph Desktop under the hood. Server allows scheduled execution of projects, sharing files and datasets between users, and hosting connector repositories. It also provides a REST API for programmatic integration with external systems.