什么是 ETL(提取、转换、加载)?

What is ETL?

ETL stands for ExtractTransform, and Load. ETL describes the basic data integration process used to collect and then synthesize data from multiple sources that do not typically share data types. Synthesized data is then placed in a repository, like a Data Warehouse, Data Mart, or Data Hub, for use by end data users.

An ETL process, or similar process, is essential for ensuring data consistency and integrity before it is loaded into a storage system. Normally, data pulled from sources like data lakes are unstructured, and then are combined with other data sources that are structured to form insights across disparate data domains.

(Unstructured data is data like social media, images and photos, and audio—formats that do not readily conform to a data model. Structured data has been standardized, such as product information which clearly separates product name, description, dimensions, etc., and can be placed alongside similar entries in a structured database, like an RDBMS.)

It is the need to combine structured and unstructured data that has led to applications and suites of tools that help achieve ETL processes more efficiently and effectively. While ETL can be performed by multiple extraction, transformation, and loading tools, ETL suites save time and offer exceptional features that have reduced the complexity of ETL, and assists in several ways:

  • Provides deep historical business context
  • Enables Business Intelligence improving decision making
  • Combines data domains in ways previously unimagined
  • Enhances a common central data repository
  • Improves productivity, enhances features, reduces learning curve

How ETL works?

ETL works in three main stages, Extract data, Transform data, and Load data into the data warehouse.

Extract — During this stage, raw data is copied or pulled form external data sources into a staging server where further transformations are made on it. Data can come from structured and unstructured sources, which may include:

  • SQL or NoSQL servers

     

  • CRM, ERP, and other business systems
  • Flat files like spreadsheets, or CSV files
  • Email archives
  • Web page archives
  • Phone logs, audio files

Transform — Within the staging server, raw data is processed to conform to predefined data types, which are based on the analytical needs of the business. Typical data processing in the transformation stage include:

  • Filtering, cleaning, deduplication, data validation, data authentication
  • Data calculations, translations, and summations
  • Data quality and compliance audits
  • Encrypting, protecting, censoring data in accordance to regulations
  • Formatting data into appropriate data warehouse schemas

Load — Load is the final step in ETL. In this step, the transformed data is then migrated to the data warehouse. This process has been automated, and can be set up to send initial data to the warehouse, then periodically upload new changes, and if necessary send a full data refresh.

Benefits of ETL

Organizations and businesses use ETL to access multiple data sources and ultimately gain a better hold of operational insights.

  • Provides deep historical business context
  • Enables Business Intelligence improving decision making
  • Combines data domains in ways previously unimagined
  • Enhances a common central data repository
  • Improves productivity, enhances features, reduces learning curve

How to use ETL?

There are several usages of ETL in business context, three common one are:

Data Warehousing — Data warehousing has allowed enterprises to readily prepare data into useful formats. From the data warehouse, data users are able to draw insights from analytics within the data warehouse.

Cloud Migrations and Data Warehousing — Data warehouses and cloud computing have combined to form highly scalable rapid data integration ecosystems. With cloud native ETL tools, data teams can eliminate many data extraction processes which require staging areas and send data directly to their cloud stores.

AI and Machine Learning — As technology improves, it finds deeper applications in data analytics. AI and machine learning are two of those technologies that work with data and the cloud to process Big Data sets, and help to automate many analytical processes in real-time.

ETL and Data Integration

Data integration is a broad term that encompasses the combination of multiple disparate data sources into a unified view. Within this broad data integration definition fits ETL. ETL is an approach to data integration that relies on a set of business rules to define the data required, and then uses the Extract, Transform, and Load process to acquire and analyze that data from various business systems and data repositories. Informing ETL, data integration would cover master references, data quality parameters, and importantly organization wide data definitions.

ETL tools

Four general ETL tools categories exist today. As methods, technology, and needs change, new more useful tools may appear. The following generalize most ETL tools.

Batch Processing ETL Tools — Batch processing tools are the de facto method for processing large volumes of data. With these tools, enterprises can process batches of data when it is convenient to do so, like nights, or on weekends when compute power is more available.

Cloud-native ETL Tools — In an evolutionary step, the cloud has eliminated many constraints in ETL. For example, with cloud ETL, applications can extract and load data directly into the cloud data warehouse, no need for batch processing.

Open Source ETL Tools — Open source tools bring the advantages of community development, and low-cost software, to those data teams on a budget. However, open source tools often only address one aspect of ETL, such as just the Extract stage, and may require multiple tools to achieve transformation goals.

Real-Time ETL Tools — Certain situations demand real-time ETL tools. For example, the Finance industry requires lighting processing in real-time to maintain businesses, and the whole economy. Leveraging the cloud, and sophisticated applications, ETL can be turned into streaming ETL for today’s time-sensitive requirements.

ETL vs. ELT

ETL, which stands for Extract, Transform, and Load, describes a basic process of data aggregation from multiple data sources. The process succinctly is: data is extracted, or “pulled”, from an external data source, it is then transformed, in staging area, to conform to the destination format (data format and storage format), and then it is loaded into a data warehouse.

While this is a traditionally popular data integration process, teams are not limited to ETL. ELT, or Extract, then Load, then Transform is another process. In the ELT process, data is loaded into the Data Warehouse and then transformed. The main advantage is that raw data is stored indefinitely and can undergo multiple transformations within the Data Warehouse to meet multiple demands. This load before transforming data storage, which was once a constraint, has been enabled by the cloud and its “infinite” scalability.

In short:

  • ETL transforms data in a staging area before the DW, while ELT transforms data within the DW
  • ETL does not transfer raw data into the DW, while ELT loads raw data directly into the DW
{ "FirstName": "名字", "LastName": "姓氏", "Email": "公司电子邮件:", "Title": "职位", "Company": "公司名称", "Address": "Address", "City": "City", "State":"State", "Country":"国家/地区", "Phone": "电话", "LeadCommentsExtended": "附加信息(可选)", "LblCustomField1": "What solution area are you wanting to discuss?", "ApplicationModern": "Application Modernization", "InfrastructureModern": "Infrastructure Modernization", "Other": "Other", "DataModern": "Data Modernization", "GlobalOption": "如果您在下方选择“是”,则表示您同意通过电子邮件接收有关 Hitachi Vantara 产品和服务的商业通讯。", "GlobalOptionYes": "是", "GlobalOptionNo": "否", "Submit": "提交", "EmailError": "Must be valid email.", "RequiredFieldError": "This field is required." }
{ "FirstName" : "请输入名字", "LastName" : "请输入姓氏", "Title" : "请输入职位", "Company" : "请输入公司名称", "City" : "请输入城市", "State" : "请输入状态", "Country" : "请输入国家", "Phone" : "请输入电话", "phoneforForm" : "请输入电话", "Email" : "请输入有效的公司电子邮件地址" }
zh