2010-06-19 38 views
13

Sau khi dành thời gian làm việc trên kho dữ liệu, tôi đã tạo cả quy trình ETL (tải biến đổi chiết xuất) và ELT (trích xuất tải). Có vẻ như ELT là một cách tiếp cận mới hơn để điền các kho dữ liệu có thể dễ dàng tận dụng lợi thế của các tài nguyên máy tính cụm. Tôi muốn nghe những gì người khác nghĩ rằng những lợi thế của ETL và ELT trên mỗi khác và khi bạn nên sử dụng một hoặc khác.Điều nào tốt hơn, ETL hoặc ELT?

Trả lời

5

Vì vậy, sau khi đã chơi kỹ lưỡng với cả ETL và ELT, tôi đã đi đến kết luận rằng bạn nên tránh ELT bằng mọi giá. ETL chuẩn bị dữ liệu cho kho của bạn trước khi bạn thực sự nạp nó vào. ELT tuy nhiên tải dữ liệu thô vào kho và bạn biến nó thành vị trí. Đó là vấn đề nếu bạn có một kho dữ liệu bận rộn. Nếu có một truy vấn báo cáo đang chạy trên một bảng mà bạn đang cố cập nhật, truy vấn của bạn sẽ bị chặn. Do đó, có thể báo cáo truy vấn để giữ hoặc chặn cập nhật.

Bây giờ, một số bạn có thể nói rằng các truy vấn báo cáo không cần chặn bản cập nhật và bạn có thể đặt mức cách ly của mình để cho phép đọc bị bẩn. Tuy nhiên, các truy vấn báo cáo thường không được thực hiện bởi các kỹ sư phần mềm. Chúng được thực thi bởi người dùng doanh nghiệp, do đó bạn không thể dựa vào chúng để thiết lập mức độ cách ly của chúng một cách chính xác. Đồng thời, không phải tất cả các báo cáo đều có thể chịu đựng được những lần đọc bẩn.

Có những trường hợp ELT có thể làm việc bằng cách giới thiệu nó vào kho dữ liệu của bạn là nguy hiểm và do đó, tôi khuyên bạn nên cho sự tỉnh táo của bạn và để bảo trì, tránh nó.

+3

Tôi không đồng ý với điều này. Tôi nghĩ rằng có một nơi cho cả hai cách tiếp cận. Cá nhân tôi thích ELT hơn nếu tình hình cho phép. Hầu hết các kho dữ liệu được tải hàng đêm trong các cửa sổ bảo trì của chúng ... và nếu bạn đang đề cập đến kho dữ liệu trong môi trường tiếp theo, bạn sẽ gặp phải các vấn đề bất kể bạn đi theo phương pháp nào (có thể cần ít sáng tạo). Tôi thấy tôi có nhiều quyền kiểm soát hơn với ELT .. chưa kể khả năng giữ lại dữ liệu thô của bạn cho mục đích lưu trữ. –

+0

Một điều nữa tôi muốn thêm ...Tôi nghĩ ELT yêu cầu tài nguyên cơ sở dữ liệu/sql nhiều kinh nghiệm hơn để duy trì nó vì phần lớn công việc đang diễn ra bên trong cơ sở dữ liệu. Điều này, trong một cách vòng xoay, là một câu hỏi tương tự như ứng dụng so với câu hỏi cơ sở dữ liệu ... http://stackoverflow.com/questions/119540/business-logic-database-or-application-layer –

+0

Không có câu trả lời đúng .. .. –

4

Tôi sử dụng cả hai. Nó chỉ đơn giản là một vấn đề thuận tiện và chức năng. Tất cả phụ thuộc vào vụ án. Đôi khi tôi thực hiện TEL - tức là biến đổi được thực hiện trong cơ sở dữ liệu nguồn (trong một thủ tục hoặc khung nhìn đã lưu trữ) và sau đó được giải nén và nạp trực tiếp.

5

Điều nào tốt hơn là khó trả lời - tùy thuộc vào sự cố.

Tôi thích nhiều bước ETL - ECCD (Trích xuất, Làm sạch, Phù hợp, Phân phối) bất cứ khi nào có thể. Tôi cũng giữ các tệp csv trung gian sau mỗi lần trích xuất, làm sạch và tuân thủ các bước; mất một số không gian đĩa, nhưng khá hữu ích. Bất cứ khi nào DW phải được nạp lại do lỗi trong etl, hoặc thay đổi lược đồ DW, không cần truy vấn lại hệ thống nguồn - nó đã có trong các tệp phẳng. Nó cũng khá thuận tiện để có thể grep, sedawk thông qua các tệp phẳng trong khu vực dàn dựng khi cần. Trong trường hợp khi có một số hệ thống nguồn nạp vào cùng một DW, chỉ các bước trích xuất phải được phát triển (và duy trì) cho mỗi hệ thống nguồn - tất cả các bước sạch, phù hợp và phân phối đều phổ biến.

2

Tôi thích ELT hơn. Người ta có thể nói nó là chống lại Norm. Nó đòi hỏi một sự thay đổi trong tâm lý và cách tiếp cận thiết kế chống lại các phương pháp truyền thống. Nhưng nó sử dụng các bộ phần cứng và kỹ năng hiện có, giảm thêm chi phí và rủi ro trong quá trình phát triển.

Nếu chúng tôi muốn đảm bảo tính toàn vẹn tham chiếu trong phương pháp ETL, thì dữ liệu phải được tải xuống từ mục tiêu đến máy chủ ETL (Engine). Nhưng chúng ta không cần phải làm điều đó trong phương pháp ETL.

Để đạt được kết quả tốt nhất từ ​​phương pháp ELT, cần có tâm trí cởi mở.

Các vấn đề liên quan