Data Science
ETL Là Gì? Giải Thích Đơn Giản Extract – Transform – Load Cho Người Mới Làm Dữ Liệu
ETL là gì? Giải thích đơn giản ba bước Extract – Transform – Load qua ví dụ chuỗi bán lẻ, điểm khác với ELT, và công cụ nên biết khi mới làm dữ liệu.
PNTECH Writer · 19/09/2026

Nếu bạn bán hàng, chắc hẳn đã có lúc mở một file Excel doanh thu tháng này, một bảng CRM khách hàng, rồi lại một báo cáo từ app bán hàng — và tự hỏi: "Sao cùng một khách mà mỗi chỗ ghi một kiểu?". Ngày thì có chỗ ghi 2024-03-05, chỗ ghi 05/03/2024, tiền thì có chỗ USD có chỗ VND. Khi muốn gom lại để xem tháng này bán được bao nhiêu, bạn sẽ phải làm một loạt thao tác: copy dữ liệu ra chỗ khác, sửa định dạng, lọc trùng, tính tổng. Đó chính là công việc mà người làm dữ liệu gọi bằng một cái tên ngắn gọn: ETL. Bài viết này giải thích lại ETL bằng ví dụ đời thường, đi từng bước một, để bạn đọc xong là hiểu ngay mình đang làm việc gì trong dòng chảy dữ liệu của công ty.
ETL là gì và ba từ Extract – Transform – Load nghĩa là gì
ETL là viết tắt của ba chữ Extract – Transform – Load, tạm dịch là Trích xuất – Biến đổi – Nạp. Nghe thì giống tài liệu kỹ thuật, nhưng thực ra nó giống công việc của một người thư ký văn phòng: gom hết giấy tờ từ nhiều phòng ban (Extract), sắp xếp lại cho gọn gàng, bỏ tờ trùng, ghi lại số tiền bằng đúng đơn vị chung (Transform), rồi cất vào một tủ hồ sơ chung của công ty (Load). Sau khi xong, ai cần xem báo cáo chỉ cần mở tủ đó ra, không phải đi hỏi từng phòng nữa.
Trong thế giới dữ liệu, "phòng ban" chính là các nguồn dữ liệu rải rác như file Excel, cơ sở dữ liệu (database), API của app, file log hệ thống, hay thậm chí một trang web. Còn "tủ hồ sơ chung" chính là kho dữ liệu (data warehouse) — một nơi để cất mọi thứ đã được làm sạch, sẵn sàng cho việc phân tích và dựng báo cáo.
ETL không phải phần mềm cụ thể nào — nó là tên gọi chung cho ba việc: lấy dữ liệu về, sửa lại cho đúng dạng chung, rồi nạp vào một kho chung để phân tích.

Ba bước ETL đi qua từng bước một
Để hình dung rõ hơn, mình tách từng chữ ra thành ba việc cụ thể mà bạn có thể gặp trong công việc hằng ngày.
Bước 1 — Extract: Lấy dữ liệu từ đâu
Extract là việc lấy dữ liệu thô từ các nguồn khác nhau về một chỗ. Trong thực tế, nguồn dữ liệu có thể là:
- File Excel hoặc CSV: phổ biến nhất với người làm văn phòng, ví dụ file doanhthu_thang3.xlsx mà kế toán gửi qua email mỗi tuần.
- Database (cơ sở dữ liệu): hệ thống bán hàng, CRM, phần mềm kế toán đều lưu dữ liệu trong database. Bạn không nhìn thấy nó bằng mắt, nhưng nó là một bảng khổng lồ có cấu trúc.
- API (Application Programming Interface — nói nôm na là "cửa sổ" để phần mềm này hỏi phần mềm khác lấy dữ liệu): app bán hàng trên điện thoại, hệ thống thanh toán, hay Facebook Ads đều cho phép bạn lấy dữ liệu qua API.
- File log hệ thống: server web, máy chủ ứng dụng ghi lại ai truy cập gì, lúc mấy giờ — đây cũng là một dạng dữ liệu thường được dùng để phân tích hành vi người dùng.
- Trang web: đôi khi dữ liệu nằm trên một trang web công khai (giá vàng, thời tiết, bảng xếp hạng), người ta sẽ viết chương trình để tải về — việc này gọi là web scraping.
Điểm mấu chốt của bước Extract là bạn chưa sửa gì cả, chỉ đơn giản là lấy về. Giống như thư ký đi nhặt hết giấy tờ từ các phòng về bàn của mình, chưa cần xếp lại.
Bước 2 — Transform: Biến dữ liệu cho gọn gàng
Transform là bước tốn công nhất và cũng là bước mà bạn — dù là nhân viên văn phòng hay sinh viên — hay đụng vào nhất mà không biết mình đang "làm ETL". Các việc thường thấy ở bước này gồm:
- Chuẩn hóa định dạng ngày tháng: đổi tất cả về cùng một kiểu, ví dụ YYYY-MM-DD.
- Bỏ dòng trùng lặp: cùng một khách hàng mà hệ thống ghi hai dòng thì giữ lại một.
- Xử lý giá trị thiếu: ô nào trống thì điền giá trị mặc định, hoặc xóa dòng đó tùy trường hợp.
- Tính thêm cột mới: ví dụ cột tổng tiền = số lượng × đơn giá, hoặc cột tháng tách ra từ cột ngày để dễ thống kê.
- Gộp nhiều bảng lại: bảng khách hàng ghép với bảng đơn hàng qua mã khách, ra bảng mới có đầy đủ thông tin.
- Đổi đơn vị tiền tệ: ví dụ tất cả về VND theo tỷ giá cố định trong ngày.
Bước 3 — Load: Nạp dữ liệu vào đâu
Load là việc nạp dữ liệu đã sạch vào một nơi lưu trữ chung để từ đó mọi người cùng khai thác. Hai kiểu nơi nạp phổ biến nhất:
- Database thường (database giao dịch): phù hợp khi dữ liệu chủ yếu để phục vụ một ứng dụng cụ thể, ví dụ phần mềm bán hàng.
- Data warehouse (kho dữ liệu): đây là nơi chuyên để phân tích, báo cáo, dựng dashboard và chạy mô hình. Một số tên kho dữ liệu phổ biến trên thị trường gồm Snowflake, BigQuery của Google và Redshift của Amazon — đều là những "kho lớn" chạy trên internet (gọi là cloud — nếu bạn chưa quen khái niệm này, đọc thêm ở bài Cloud Computing Cho Người Mới Làm Dữ Liệu).
Để dễ nhớ: data warehouse giống một kho tổng trong siêu thị, mỗi ngày hàng từ nhiều nhà cung cấp được đưa về, kiểm tra chất lượng, rồi sắp lên kệ theo nhóm để nhân viên bán hàng và phòng kế hoạch cùng sử dụng.

Ví dụ cụ thể: chuỗi bán lẻ gom dữ liệu từ POS và app
Giả sử bạn quản lý một chuỗi cửa hàng tiện lợi 50 chi nhánh. Mỗi ngày có hai nguồn dữ liệu chính:
- Máy POS tại quầy (Point of Sale — máy tính tiền): mỗi chi nhánh cuối ngày xuất ra một file CSV (Comma-Separated Values — một dạng file bảng đơn giản, mở được bằng Excel) ghi lại từng hóa đơn: giờ mua, mã sản phẩm, số lượng, tổng tiền.
- App bán hàng trên điện thoại: đơn hàng đặt qua app được lưu trên server và bạn có thể lấy về qua API theo từng giờ hoặc từng ngày.
Giờ bạn muốn biết tháng này doanh thu bao nhiêu, khách nào mua nhiều nhất, sản phẩm nào đang lên. Bạn sẽ làm theo đúng ba bước ETL:
- Extract: tải 50 file CSV từ các POS về một thư mục chung; gọi API app để lấy danh sách đơn hàng online trong tháng. Hai luồng dữ liệu này hiện đang nằm ở hai nơi, có cột khác nhau và định dạng khác nhau.
- Transform: đổi cột ngày giờ từ dạng dd/MM/yyyy HH:mm của POS sang dạng yyyy-MM-dd HH:mm:ss cho thống nhất; đổi cột tổng tiền của đơn hàng quốc tế từ USD sang VND theo tỷ giá ngân hàng trong ngày; bỏ các dòng trùng (khách vô tình bấm thanh toán hai lần); tính thêm cột tháng, kênh bán (POS hay app) để dễ thống kê; gộp hai bảng lại thành một bảng duy nhất.
- Load: nạp bảng đã sạch vào BigQuery (một kho dữ liệu chạy trên cloud của Google). Từ đây, team phân tích có thể viết truy vấn để ra báo cáo doanh thu, team Data Science có thể lấy dữ liệu này để dựng mô hình dự đoán nhu cầu cho tháng sau.
Một chuỗi bán lẻ có vài chục chi nhánh, mỗi ngày có thể sinh ra hàng chục nghìn dòng giao dịch từ POS và hàng nghìn đơn online — không có ETL, bạn sẽ chết chìm trong file Excel.
Đây là ví dụ rất quen thuộc, và đa số doanh nghiệp có dữ liệu — dù là bán lẻ, ngân hàng, hay ứng dụng gọi xe — đều đang chạy một quy trình tương tự ở mức lớn hơn. Nếu bạn đang muốn hiểu rõ hơn vị trí của ETL trong toàn bộ quy trình làm dữ liệu, hãy xem bài tổng quan Mastering Data Science: Hướng Dẫn Toàn Tập.
ETL khác ELT ở chỗ nào?
Nếu bạn đọc tài liệu gần đây sẽ thấy xuất hiện thêm một chữ gần giống: ELT (Extract – Load – Transform, tức Trích xuất – Nạp – Biến đổi). Hai khái niệm này chỉ khác nhau ở thứ tự hai bước cuối, nhưng ý nghĩa thực tế khá lớn.
| Tiêu chí | ETL (cổ điển) | ELT (hiện đại, phổ biến với cloud) |
|---|---|---|
| Thứ tự | Trích xuất → Biến đổi → Nạp | Trích xuất → Nạp → Biến đổi |
| Nơi biến đổi | Trước khi vào kho, thường làm trên một máy trung gian | Ngay trong kho dữ liệu, tận dụng sức mạnh của cloud |
| Phù hợp khi | Dữ liệu cần sạch ngay từ đầu, kho dữ liệu không quá mạnh | Dữ liệu lớn, kho dữ liệu cloud mạnh và rẻ theo nhu cầu |
| Ví dụ dễ hiểu | Rửa rau, sơ chế xong rồi mới cất vào tủ lạnh | Cất nguyên rau vào tủ lạnh, khi nào nấu thì rửa sau |
Vì sao ELT đang phổ biến hơn? Lý do chính là các kho dữ liệu cloud hiện nay (như BigQuery, Snowflake, Redshift) rất mạnh và tính tiền theo dung lượng xử lý. Bạn cứ nạp dữ liệu thô vào trước, đến lúc cần phân tích kiểu gì thì dùng sức mạnh của kho để biến đổi tại chỗ — không cần đầu tư máy chủ riêng. Nếu bạn chưa rõ cloud là gì, có thể xem lại bài Cloud Cho Data Science: Vì Sao Không Còn Cần Máy Khỏe Để Làm Dữ Liệu Lớn.
Khi nào một người mới cần quan tâm đến ETL
ETL nghe xa vời, nhưng thực ra rất nhiều việc hằng ngày của bạn đã là ETL dưới một dạng nào đó. Dưới đây là những tình huống cụ thể mà bạn nên biết mình đang chạm vào ETL:
- Bạn tự làm dashboard: mỗi tuần tải file Excel từ bốn phòng ban, copy lại cho cùng định dạng, rồi dán vào Google Sheets hoặc Power BI để ra báo cáo tổng. Đó chính là ETL thu nhỏ.
- Bạn tổng hợp báo cáo từ nhiều file: gộp file doanh thu của 12 tháng, xử lý các dòng lỗi, đồng bộ tên khách hàng — đây là một bài Transform điển hình.
- Bạn vào team data của công ty: dù là Data Analyst hay Data Engineer, bạn sẽ nghe mọi người nói "đẩy dữ liệu qua ETL đi" hằng ngày. Hiểu ETL giúp bạn không bị bỡ ngỡ.
- Bạn muốn dựng mô hình machine learning (mô hình để máy tự học từ dữ liệu và đưa ra dự đoán): nguyên tắc số một là dữ liệu đầu vào phải sạch và có cấu trúc. Không có ETL, mô hình của bạn sẽ học từ dữ liệu bẩn và cho kết quả sai.
- Bạn là sinh viên chuẩn bị đi thực tập: nhiều bạn sinh viên ngành kinh tế, tài chính, marketing khi đi thực tập đều phải làm công việc "chuẩn bị dữ liệu" — đó chính là bước Transform trong ETL.

Công cụ ETL nên biết khi mới bắt đầu
Không cần đầu tư tiền hay học lập trình ngay từ đầu, bạn có thể bắt đầu với những công cụ quen thuộc rồi nâng cấp dần theo nhu cầu.
Nhóm cho người mới, không cần lập trình
Excel + Power Query: Power Query là một "cánh tay phải" của Excel, giúp bạn tải dữ liệu từ nhiều nguồn, gộp file, chuẩn hóa cột, xử lý giá trị thiếu, tất cả bằng thao tác kéo thả. Đây là lựa chọn tốt nhất cho nhân viên văn phòng, kế toán, marketing muốn tự làm ETL cơ bản mà không cần viết code.
Google Sheets + Apps Script: nếu dữ liệu nằm trên Google Sheets, bạn có thể viết vài dòng script đơn giản để tự động hóa việc gộp và làm sạch.
Nhóm cho người biết lập trình
Python với thư viện Pandas: Pandas là thư viện Python chuyên xử lý bảng dữ liệu. Với vài dòng code, bạn có thể đọc hàng chục file CSV, gộp lại, lọc trùng, tính cột mới. Đây là lựa chọn phổ biến của sinh viên và người mới đi làm trong team data.
SQL (Structured Query Language — ngôn ngữ để hỏi và chỉnh sửa dữ liệu trong database): thực ra SQL đóng vai trò quan trọng ở cả hai đầu: truy vấn dữ liệu từ database trong bước Extract, và viết truy vấn trong kho dữ liệu ở bước Transform/Load.
Nhóm cho doanh nghiệp và team data
Các nền tảng cloud hiện cung cấp giải pháp ETL gần như "cắm vào chạy", ví dụ: Google Cloud Dataflow, AWS Glue, Azure Data Factory, cùng các công cụ chuyên về pipeline dữ liệu như Airbyte, dbt, Fivetran. Mỗi công cụ có điểm mạnh và điểm yếu riêng, giá và tính năng có thể thay đổi theo từng năm, nên bạn nên kiểm tra trang chính hãng trước khi quyết định dùng cho dự án thật.
Nếu bạn muốn có cái nhìn tổng quan hơn về các nhóm công cụ trong lĩnh vực dữ liệu, bài viết Các Nhóm Công Cụ Data Science sẽ giúp bạn định hình ETL nằm ở đâu trong bức tranh lớn.
Checklist bắt đầu thực hành ETL trong tuần này
Đọc lý thuyết thì dễ, nhưng để thật sự hiểu ETL thì phải làm. Dưới đây là năm việc nhỏ bạn có thể làm ngay với dữ liệu có sẵn trong máy, không cần cài thêm gì.
- Mở Power Query trong Excel: vào Data → Get Data → From File → From Folder, trỏ đến thư mục chứa vài file CSV mẫu. Power Query sẽ tự gộp tất cả thành một bảng.
- Chuẩn hóa cột ngày: thử đổi một cột ngày đang ở dạng dd/MM/yyyy về dạng yyyy-MM-dd bằng cách dùng tính năng Change Type trong Power Query hoặc hàm DATEVALUE trong Excel.
- Bỏ dòng trùng: chọn cột mã khách hàng hoặc mã đơn hàng, dùng Remove Duplicates để xóa các dòng bị lặp.
- Ghép hai bảng với nhau: lấy bảng khách hàng ghép với bảng đơn hàng qua mã khách để có thông tin đầy đủ hơn. Trong Power Query có Merge Queries, trong Excel có VLOOKUP hoặc XLOOKUP.
- Xuất ra một bảng sạch duy nhất: sau khi hoàn tất, lưu bảng kết quả vào một sheet mới hoặc xuất ra file CSV sạch để dùng cho báo cáo hoặc chia sẻ với đồng nghiệp.
Chỉ với năm bước trên, bạn đã thực hành đầy đủ một quy trình ETL thu nhỏ: Extract từ file, Transform bằng các thao tác chuẩn hóa, Load ra bảng sạch cuối cùng. Nếu sau này bạn muốn làm với dữ liệu lớn hơn, hãy dần chuyển sang Python hoặc các công cụ cloud.
ETL là cầu nối biến dữ liệu thô lộn xộn thành dữ liệu sạch có cấu trúc, sẵn sàng để phân tích và dựng mô hình — ai làm việc với dữ liệu đều sẽ gặp khái niệm này, sớm hay muộn.
Tags
- chuẩn bị dữ liệu
- BigQuery Snowflake
- kho dữ liệu
- data engineer
- Power Query
- pandas python
- ETL vs ELT
- nhập môn dữ liệu
- ETL là gì
- Extract Transform Load
Câu hỏi thường gặp
Tiếp theo
Tool mình đã dùng thật
Xem danh sách tool và dịch vụ đã dùng trong công việc — kèm lý do nên cân nhắc và khi nào không cần.
