User Tools

Site Tools


overview

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
overview [2018/05/09 19:38] – [Command-line execution] dmitryoverview [2022/07/22 04:36] (current) dmitry
Line 1: Line 1:
-===== EasyMorph Overview =====+=====Overview of EasyMorph ====== 
 +{{:screen-5.png?nolink&600|}}
  
-==== Data Import ==== +\\ 
-In order to start transforming data in EasyMorph, all data subject to manipulations has to be imported into EasyMorph as tables. As of version 3.EasyMorph supports the following data sources: +==== Data import ==== 
-  * Relational databases (Oracle, MS SQL Server, MySQL, PostgreSQL, SQLite+In order to start transforming data in EasyMorph, all data subject to manipulations has to be imported into EasyMorph. As of version 4.EasyMorph can import the following data sources/formats
-  * ODBC data sources (Oracle, MS SQL Server, MySQL, PostgreSQL, SQLite, Amazon Redshift, Vertica, SAP HANA, Apache Hive+  * Native and ODBC database drivers (see the [[connectors#database_connectors|full list of database drivers]]
-  * Text files with delimiters (e.g. CSV) +  * REST APIs (JSON/XML
-  * Text files with fixed with columns +  * File formats 
-  * Excel files (.xlsx, .xlsm, .xls) +    * Text files with delimiters (e.g. CSV) 
-  * Qlik data files (.qvd) +    * Text files with fixed width columns 
-  * SAS files (.sas7bdat) +    * Excel spreadsheets (.xlsx, .xlsm, .xls) 
-  * SPSS/PSPP files (.sav)+    * XML and JSON files 
 +    * Qlik data files (.qvd) 
 +    * SAS files (.sas7bdat) 
 +    * SPSS/PSPP files (.sav) 
 +    * EasyMorph datasets (.dset) 
 +  * Cloud applications 
 +    * Google Sheets 
 +    * Google Analytics 
 +    * SharePoint (lists) 
 +    * Airtable 
 +    * Pipedrive 
 +    * SalesForce 
 +    * Qlik Cloud 
 +  * and more...
  
-Once tables are loaded into EasyMorph they can further be modified using transformations that are applied one after another.+The full list of integrations is available here: [[https://easymorph.com/all-integrations.html]]
  
-Import is performed by import actions which are available in the Main menuby pressing "Add action".+Once tables are loaded into EasyMorphthey can be modified using actions (transformations) that are applied sequentially one after another.
  
-Databases can be queries using the Query Editor.+Databases can be queried using the visual Query Editor intended for users who don't know SQL.
  
-Files can be loaded by simply dragging them into EasyMorph.+Files can be loaded by simply dragging them into EasyMorph. It's possible to load and automatically append multiple files at once. 
 + 
 +[[https://easymorph.com/learn/load-file.html|Tutorial: Loading data from files]]\\ 
 +[[https://easymorph.com/learn/load-database.html|Tutorial: Loading data from databases]] 
 + 
 +\\
 ==== Actions ==== ==== Actions ====
-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. Actions can be one of types:+All manipulations with tables are done with the help of various [[[[transformations:start|actions]]. E.g. renaming a column is an action. Filtering, joining, aggregations -- all are actions. As of version 4.5, EasyMorph offers more than 120 various actions that can be divided into categories:
  
-  * Create -- actions that create or generate a table +  * [[transformations:start#create|Create]] -- actions that create or generate a table 
-  * Import -- actions that import data into EasyMorph +  * [[transformations:start#import|Import]] -- actions that import data into EasyMorph 
-  * Transform -- actions that transform previously loaded data +  * [[transformations:start#transform_basic|Transform]] -- actions that transform previously loaded data 
-  * Export -- actions that export data into files and databases +  * [[transformations:start#export|Export]] -- actions that export data into filesdatabases, applications and external systems 
-  * Workflow -- actions that help organize project workflow and perform various automation+  * [[transformations:start#workflow_internal|Workflow]] -- actions that organize project workflowperform various operations with files and external systems
  
-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).+{{::datamorphing.png?nolink|}}
  
-Final state (or result) of a table is the result of all actions of this table applied consequently, one after another.+Actions are executed consequently, step-by-step. One action is one step. An action is applied to the result (output) of its previous action. Therefore the order of actions is important. The same actions ordered differently would usually produce a different result (although not always).
  
-Some actions (e.g. [[transformations:append|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.+The final state (result) of table is the result of all actions of this table applied consequently, one after another.
  
-Here is full list of all [[transformations:start|actions]].+Some actions (e.g. [[transformations:append|Append Table]]) require another table. These actions have two inputs -- one input is the result of the previous action in the same table, and the other input is the final state (i.e. the result of the last action) of the other table.
  
 +\\
 ==== Expressions ==== ==== Expressions ====
-Some actions can use [[syntax:start|expressions]] in order to calculate new columns or filter rows. These expressions can be composed using arithmetical operations, column names and functions. Read more about [[syntax:start|expressions]].+Some actions can use [[syntax:start|expressions]] in order to calculate new columns or filter rows. These expressions can be composed using [[syntax:operators|arithmetical operators]], column names, [[parameters|parameters]] as well as [[syntax:functions|functions]].
  
 +EasyMorph has more than 150 functions can be used in expressions:
 +
 +  * [[syntax:functions#Number_functions|Number functions]]
 +  * [[syntax:functions#Text_functions|Text functions]]
 +  * [[syntax:functions#Logical_functions|Logical functions]]
 +  * [[syntax:functions#Date_time_functions|Date/time functions]]
 +  * [[syntax:functions#File_functions|File functions]]
 +  * [[syntax:functions#Web_functions|Web functions]]
 +  * [[syntax:functions#Special_functions|Special functions]]
 +
 +[[https://easymorph.com/learn/expressions.html|Tutorial: Type system and expressions]]
 +
 +\\
 ==== Derived tables ==== ==== Derived tables ====
-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 transformations.+Derived tables are a powerful feature that allows transforming data in a non-linear way. When one table is derived from another (source) tableit 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 tableand then keep transforming every derived table in its own way, you can create non-linear transformation 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.+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.
  
-Circular dependencies are not allowed in EasyMorphI.e. you can't append table A to table B if table A is derived from table B directly or indirectly.+Derived tables can be calculated //conditionally//, which allows designing conditionally branched workflowsFor instance, if a certain data quality check failed, send an email with bad records attached.
  
-==== Data Export ==== +[[https://easymorph.com/learn/derived-tables.html|Tutorial: Derived tables]]
-Exporting data is performed using export transformationsThey can be inserted at any point of transformation sequenceExport transformations do not modify tables, they just export them into specified file format. Therefore output of export transformation is the same as input. I.e. it contains exactly the same number of rows and columns in exactly the same order.+
  
-Exporting data to databases is done using [[transformations:sqlcommand|SQL Command]] transformation that instructs the target database to upload a file previously created in EasyMorph.+\\ 
 +==== Data export ==== 
 +Exporting data is performed using export actions. They can be inserted at any point of workflow. Export actions do not modify tables. They export them into specified file format or external system. Therefore the output of an export action is always the same as the input.
  
 +EasyMorh can export into the following data formats and systems:
 +
 +  * Native and ODBC database drivers (see the [[connectors#database_connectors|full list of database drivers]])
 +  * Web APIs (as JSON/XML payload)
 +  * Files
 +    * Text files with delimiters (e.g. CSV)
 +    * Excel spreadsheets (.xlsx)
 +    * XML files (.xml)
 +    * Tableau extracts (.tde, .hyper)
 +    * Qlik data files (.qvd)
 +    * EasyMorph datasets (.dset)
 +  * Cloud/enterprise applications
 +    * Google Sheets
 +    * Power BI
 +    * Tableau Server / Online
 +    * Airtable
 +    * EasyMorph Server
 +  * and more...
 +
 +The full list of integrations is available here: [[https://easymorph.com/all-integrations.html]]
 +
 +[[https://easymorph.com/learn/export-file.html|Tutorial: Exporting data into a file]]\\
 +[[https://easymorph.com/learn/export-database.html|Tutorial: Exporting data into a database]]
 +
 +\\
 +==== Workflow automation ====
 +EasyMorph workflows can perform external actions, for instance:
 +  * File and folder operations (copy/rename/delete/unzip/zip/download)
 +  * Running external applications, scripts and batch files
 +  * Execution of Windows shell commands
 +  * Embedded PowerShell scripting
 +
 +A workflow can be composed using advanced patterns:
 +  * FOR..EACH type of loops (iterations)
 +  * DO..WHILE/UNTIL type of loops (iterations)
 +  * IF..THEN..ELSE type of conditional branching
 +  * Subroutines
 +  * Error recovery
 +
 +Workflows can have a complex hierarchical structure when a project can consist of multiple modules, and each module can consist of multiple table groups. Such a structure allows designing and navigating workflows with hundreds of transformation steps (actions).
 +
 +\\
 +==== Integration with enterprise / cloud applications ====
 +EasyMorph workflows can also integrate and interact with external systems and applications.
 +
 +^ External system ^ Integration ^
 +| IMAP email server  | Send / receive emails |
 +| SSH server | Execute commands  |
 +| 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  |
 +| Power BI   | Publish push-datasets, refresh datasets, trigger flows  |
 +| Tableau Server / Online  | Publish extracts, trigger extract refreshes, trigger flows |
 +| Qlik Sense  | Trigger task reloads |
 +| Airtable    | Import, export, update, delete tables  |
 +
 +\\
 ==== Auto-documentation ==== ==== Auto-documentation ====
-EasyMorph can automatically generate documentation from current transformation project. Read more about [[documentation|Auto-documentation]].+EasyMorph can automatically generate human-readable documentation in plain English for the current project. Read more about [[documentation|Auto-documentation]].
  
 +\\
 +==== Scheduling ====
 +[[https://easymorph.com/scheduler.html|EasyMorph Launcher]] is a free complementary scheduling/triggering utility that comes with EasyMorph Desktop. The Launcher allows creating tasks with EasyMorph projects that are triggered manually when needed or scheduled on various schedules (Once, Continuous, Daily, Weekly). The Launcher resides in the system tray, starts on Windows start, and is tightly integrated with Desktop.
 +
 +[[https://easymorph.com/server.html|EasyMorph Server]] is used for robust, production-ready scheduling of heavy ETL workloads.
 +
 +[[https://easymorph.com/learn/scheduling.html|Tutorial: Scheduling]]
 +
 +\\
 ==== Command-line execution ==== ==== Command-line execution ====
-EasyMorph projects can be executed from command line thus allowing integration with third-party applications. Read more about [[command_line|command line parameters]].+EasyMorph projects can be executed from the command linethus allowing integration with third-party applications. Read more about [[command_line|command line parameters]]
 + 
 +A more robust integration option is the "ems-cmd" command-line utility that allows triggering EasyMorph Server tasks from external applications running on Windows or Linux. 
 + 
 +[[https://easymorph.com/learn/command-line.html|Tutorial: Running projects from the command line]] 
 + 
 +\\ 
 +==== EasyMorph Server ==== 
 +[[https://easymorph.com/server.html|EasyMorph Server]] is a Windows service with a web interface that employs under the hood the same [[https://easymorph.com/in-memory-engine.html|in-memory engine]] as EasyMorph Desktop. The 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. 
 + 
 +\\ 
 +==== EasyMorph Community ==== 
 + 
 +The [[https://community.easymorph.com|EasyMorph Community]] is an online forum for EasyMorph users. It contains hundreds of practical questions answered, frequently with downloadable, ready-to-use examples.
  
-**See also:*+==== See also ==== 
-  * [[https://easymorph.com/learn.html|Tutorial]] +  [[https://www.youtube.com/watch?v=1MtXLkJzKuI|10-minute video overview of EasyMorph 3.6]] 
-  * [[https://easymorph.com/examples.html|Examples]]+  * [[https://easymorph.com/learn.html|Illustrated tutorial]] 
 +  * [[https://easymorph.com/download.html|Download EasyMorph (free edition)]] 
 +  * [[https://easymorph.com|easymorph.com]]
overview.1525909121.txt.gz · Last modified: 2018/05/09 19:38 by dmitry

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki