Nó gần như là một vấn đề ngữ nghĩa. Rất nhiều không khí nóng được đưa ra trong các cuộc thảo luận về vấn đề này nhưng tôi không thực sự tin rằng có bất kỳ chiều sâu triết học thực sự nào để phân biệt giữa hai điều này.
Ở một mức độ nào đó, bạn có thể xem ETL dưới dạng chuyển đổi dữ liệu trong công cụ phía máy khách trước khi tải nó, với ELT ngụ ý rằng dữ liệu được chuyển đến một khu vực sắp xếp nào đó với sự thay đổi tương đối ít về định dạng. "Chuyển đổi" diễn ra sau đó.
Đây là những định nghĩa rất mượt và có thể được áp dụng cho nhiều kiến trúc kỹ thuật khác nhau, và có nhiều thiết kế có thể được sử dụng để mô tả.
Tôi rất ủng hộ kiến trúc trong đó tất cả logic chuyển đổi và nghiệp vụ có thể được xây dựng thành một cơ sở mã đồng nhất ít nhiều và tôi đã thực hiện rất nhiều hệ thống trong đó logic chuyển đổi khá phức tạp. Điều này có xu hướng chỉ sử dụng công cụ ETL để lấy dữ liệu và sau đó tất cả các chuyển đổi đã được thực hiện trong các thủ tục được lưu trữ. Có thể cho rằng điều này có thể được mô tả là ETL hoặc ELT với sự khác biệt chỉ là một trong những ngữ nghĩa.
Tuy nhiên, một số công cụ rất tập trung vào cơ sở dữ liệu (ví dụ, Trình tích hợp dữ liệu của Oracle thường được gọi là công cụ ELT). Nếu bạn đăng ký vào chế độ xem này, thì 'Trích xuất' và 'Tải' sẽ xảy ra trước khi dữ liệu được chuyển đổi khi chúng được đưa vào khu vực tổ chức và sau đó được xử lý bằng mã SQL hoặc PL / SQL (có thể được tạo bởi công cụ hoặc viết tay). Một số người mà tôi đã nói chuyện dường như coi công đức chính của ODI vì đó không phải là SỞ HỮU.
Nếu bạn sử dụng một công cụ phía máy khách như Informatica Powercentre hoặc MS SQL Server Integration Services thì công cụ đó có thể thực hiện chuyển đổi rộng rãi sang phía máy khách dữ liệu. Một số công cụ ETL, chẳng hạn như Ascential Datastage và Ab initio được thiết kế để thực hiện nhiều công việc với các tệp phẳng và cấu trúc dữ liệu trong bộ nhớ để tăng tốc. Trong kiểu kiến trúc này, việc chuyển đổi đã được thực hiện trước khi nó được tải. Có lẽ loại kiến trúc này có thể được phân loại chắc chắn là 'ETL', mặc dù tôi đã thấy nhiều dự án tập trung vào công cụ trong đó tất cả các công việc thực sự được thực hiện bởi một loạt các mã thủ tục được lưu trữ.
Có những lợi thế đối với các công cụ và cách tiếp cận kiến trúc khác nhau, nhưng người ta không thể đưa ra tuyên bố về những ưu điểm của phương pháp 'ETL' so với 'ELT' vì các thuật ngữ này quá rộng đến nỗi sự khác biệt gần như vô nghĩa. Một số công cụ và kiến trúc có thể có những lợi thế cụ thể - ví dụ, việc sử dụng nhiều tệp phẳng của Ab initio mang lại cho nó một lợi thế hiệu suất đáng kể trên khối lượng dữ liệu lớn.
Trong thực tế, việc phân biệt giữa 'ETL' và 'ELT' là khá vô nghĩa nếu không đi sâu vào thảo luận nhiều hơn về các yêu cầu hệ thống, nền tảng và kiến trúc kỹ thuật.