Installing a self hosted Windows build agent
In the last 2 months the .NET team has been migrating our codebase for our clients from Gitlab and TeamCity to Azure Devops. I wrote this blog piece for future documentation of installing extra build…
March 23, 2020
ETL (Extract-Transform-Load) and ELT (Extract-Load-Transform) are necessary because information sources seldomly use the same or compatible formats. Therefore you have to transform and clean your data sources before integrating them into analyzable chunks of data.
Whether it’s ETL or ELT the data transformation/integration process involves the following steps:
ETL is an abbreviation of Extract, Transform and Load. An ETL tool extracts the data from different source systems; it then transforms the data (for example by applying calculations, concatenations, etc.). After this it loads the data into the data warehouse, such as Azure Synapes or Azure SQL managed instance.
ELT is a different method of approaching data movement. Instead of transforming the data before it’s written in the target location, ELT lets the target system do the transformation. That means the data is moved to the target location and then transformed at that location.
Below you can see a simplified version of the processes:
|Adoption of the technology and availability of tools and experts||ETL is a well-developed process used for over 20 years, and ETL experts are readily available.||ELT is a new technology, so it can be difficult to locate experts and more challenging to develop an ELT pipeline compared to an ETL pipeline.|
|Availability of data in the system||ETL only transforms and loads the data that you decide is necessary when creating the data warehouse and ETL process. Therefore, only this information will be available.||ELT can load all data immediately, and users can determine later which data to transform and analyze.|
|Can you add calculations?||Calculations will either replace existing columns, or you can append the dataset to push the calculation result to the target data system.||ELT adds calculated columns directly to the existing dataset.|
|Compatible with data lakes?||ETL is not normally a solution for data lakes. It transforms data for integration with a structured relational data warehouse system.||ELT offers a pipeline for data lakes to ingest unstructured data. Then it transforms the data on an as-needed basis for analysis.|
|Compliance||ETL can redact and remove sensitive information before putting it into the data warehouse or cloud server. This makes it easier to satisfy GDPR, HIPAA, and CCPA compliance standards. It also mitigate data leakage from hacks and inadvertent exposure.||ELT requires you to upload the data before redacting/removing sensitive information. This could violate GDPR, HIPAA, and CCPA standards. Sensitive information will be more vulnerable to hacks and inadvertent exposure. You could also violate some compliance standards if the cloud-server is in another country.|
|Data size vs. complexity of transformations||ETL is best suited for dealing with smaller data sets that require complex transformations.||ELT is best when dealing with massive amounts of structured and unstructured data.|
|Data warehousing support||ETL works with cloud-based and onsite data warehouses. It requires a relational or structured data format.||ELT works with cloud-based data warehousing solutions to support structured, unstructured, semi-structured, and raw data types.|
|Hardware requirements||Cloud-based ETL platforms (like Xplenty) don’t require special hardware. Legacy, onsite ETL processes have extensive and costly hardware requirements, but they are not as popular today.||ELT processes are cloud-based and don’t require special hardware.|
|How are aggregations different?||Aggregation becomes more complicated as the dataset increases in size.||As long as you have a powerful, cloud-based target data system, you can quickly process massive amounts of data.|
|Implementation Complexity||ETL is a more mature process. A lot of knowledge is known. There is a more full eco system around ETL||As a new technology, ELT is more cutting edge and it is still evolving.|
|Maintenance requirement||Automated, cloud-based ETL solutions, like Xplenty, require little maintenance. However, an onsite ETL solution that uses a physical server will require frequent maintenance.||ELT is cloud-based and generally incorporates automated solutions, so very little maintenance is required.|
|Order of the extract, transform, load process||Data transformations happen immediately after extraction within a staging area. After transformation, the data is loaded into the data warehouse.||Data is extracted, then loaded into the target data system first. the required data is transformed at a later stageon as-needed basis|
|Costs||On-premises ETL systems require extensive and costly hardware, but they are seen as a legacy. There are good cloud-based ETL platforms.||ELT processes are build on cloud platforms so they dont require initiale investments on hardware.|
|Transformation process||Transformations happen within a staging area outside the data warehouse.||Transformations happen inside the data system itself, and no staging area is required.|
|Unstructured data support||ETL can be used to structure unstructured data, but it can’t be used to pass unstructured data into the target system.||ELT is a solution for uploading unstructured data into a data lake and make unstructured data available to business intelligence systems.|
|Waiting time to load information||ETL load times are longer than ELT because it’s a multi-stage process: (1) data loads into the staging area, (2) transformations take place, (3) data loads into the data warehouse. Once the data is loaded, analysis of the information is faster than ELT.||Data loading happens faster because there’s no waiting for transformations and the data only loads one time into the target data system. However, analysis of the information is slower than ETL.|
|Waiting time to perform transformations||Data transformations take more time initially because every piece of data requires transformation before loading. Also, as the size of the data system increases, transformations take longer. However, once transformed and in the system, analysis happens quickly and efficiently.||Since transformations happen after loading, on an as-needed basis—and you transform only the data you need to analyze at the time—transformations happen a lot of faster. However, the need to continuously transform data slows down the total time it takes for querying/analysis|
As you can read above, there is no one-size-fits-all solution when comparing ETL and ELT. However, the comparison above should allow you to make an educated decision on what you should use.