ETL làm gì?

Discussion in 'Giải pháp ERP, CRM, EPM and BI' started by Nhung_Ha, Oct 30, 2014.

  1. Nhung_Ha

    Nhung_Ha New Member

    Chào BSD.

    Mình rất thích diễn đàn của các bạn, hiện mình đang hiểu lờ mờ một số các vấn đề rất cơ bản của BI về ETL
    1. ETL là gì?
    2. Tại sao phải ETL?
    3. Các công cụ ETL hiện tại mà các doanh nghiệp thường dùng hiện nay là gì? nhất là các công cụ với giá rẻ
    cám ơn các bạn trước
     
    HangLe, phamthanhnhan14 and Phu Ton like this.
  2. Loading...


  3. bsdinsight

    bsdinsight Well-Known Member

    ETL Solutions.jpg

    ETL là gì?


    Đơn giản là:
    1. Extracts dữ liệu - tức là đi thu gôm dữ liệu từ nhiều nguồn khác nhau - doanh nghiệp của bạn sẽ có một vài phần mềm với mỗi phần mềm đảm nhiệm một công việc nào đó như quản trị nhân sự (HCM), quản lý quan hệ khách hàng (CRM) và đây là công việc đi thu gôm dữ liệu từ các nguồn của các phần mềm này
    2. Transforms dữ liệu - tức là chuyển đổi dữ liệu, việc chuyển đổi này có mục đích hẳn hoi, đó là chuyển đổi từ các dữ liệu nghiệp vụ của các phần mềm thành dữ liệu phân tích của các nhà quản trị, đồng thời phải tối ưu hóa cho mục đích phân tích dữ liệu này. Ngoài ra, chuyển đổi dữ liệu còn tham gia vào một mục đích khác nữa là làm sạch dữ liệu
    3. Load dữ liệu - như bạn thấy ở hình trên, sau khi được chuyển đổi thì toàn bộ các dữ liệu này được đưa vào một nơi lưu trữ mới, mà người ta gọi là DataWarehouse (tạm dịch là kho dữ liệu). Và đến đây là kết thúc giai đoạn ETL dữ liệu, giai đoạn đầu tiên để bạn triển khai giải pháp Business Intelligence cho doanh nghiệp của bạn.
    Tại sao tôi phải ETL dữ liệu?
    Nếu tôi vẫn để nguyên các dữ liệu trên các database của các dữ liệu nguồn, tôi vẫn làm được các báo cáo phân tích,.. vậy tại sao tôi phải ETL dữ liệu làm gì?

    Như đã nói trên, bạn dùng ETL dữ liệu để chuyển mục đích, và tối ưu hóa mục đích sử dụng dữ liệu của các phần mềm từ ghi nhận các nghiệp vụ phát sinh hàng ngày, sang mục đích khai thác, vận hành, và phân tích các dữ liệu này để các nhà quản trị tìm ra các cơ may phát triển, các hoạt động kinh doanh mới đề vận hành doanh nghiệp - và đây chính là mục đích của ETL, và là nguyên nhân bạn cần công cụ này - chuyển đổi công năng sử dụng dữ liệu để cung cấp cho nhà quản trị.

    Tôi có cần Datawarehouse không?
    Không nhất thiết phải có, nhưng nên có - vì như thế mới đạt được tới mục đích tối ưu dữ liệu của bạn nhằm phục vụ các cụ khó tính nhất trong doanh nghiệp của bạn, các cụ nằm ở C-level.
     
  4. Phu Ton

    Phu Ton Well-Known Member Staff Member

    Trước khi quyết định, có cần DW không bác có thể thao khao thêm các tinh năng cơ bản của DW là gì? để có được một góc nhìn tốt hơn về lợi ích của DW mang lại cho doanh nghiệp
     
    HaiVNUNI likes this.
  5. bsdinsight

    bsdinsight Well-Known Member

    Các công cụ ETL hiện tại mà các doanh nghiệp thường dùng hiện nay là gì? nhất là các công cụ với giá rẻ

    Các công cụ mà bạn có thể sử dụng là:
    1. Pentaho Kettle - là công cụ Open Source, thành lập 2001 và sử dụng công cụ GUI để bạn xây dựng và vận hành ETL dữ liệu của mình - họ có phiên bản Community và phiên bản thương mại, và bạn có thể sử dụng Java để phát triển Engine của sản phẩm này. Đây là công cụ tương đối đầy đủ cho việc ETL, tổ chức Warehouse, và xây dựng các báo cáo phân tích BI. Phiên bản Community hiện đang có 13,500 Register
    2. Talend - thành lập tháng 10, 2006 - tập trung vào ETL dữ liệu và là một opensource cho ETL dữ liệu
    3. Informatica PowerCenter - Đây là công cụ rất tốt cho ETL dữ liệu (bản thương mại) - được thành lập năm 1993 và cho tới nay đã có khoản 2,600 khách hàng tin dùng và đang vận hành công cụ này trên toàn cầu. Informatica tập trung mạnh vào ETL dữ liệu
    4. Inaplex Inaport - Nếu công ty của bạn cần ETL dữ liệu với một số các phần mềm nguồn là CRM thì Inplex Inaport có thể là một lựa chọn (nhưng bên BSD chưa thực sự R&D cho sản phẩm này, nên không biết nhiều về nó)
    (Bạn dễ dàng tìm ra tới hang ổ của các công cụ này bằng google) - và BSD đang xây dựng các công cụ ETL dữ liệu cho mình với Pentaho, và bạn có thể tham khảo tại đây

    Trong trường hợp bạn dùng MS SQL Server, bạn có thể sử dụng công cụ SSIS của chính chủ với giá là 0 $US

    Một lựa chọn khác là bạn có thể dùng InfoSphere, đây là công cụ ETL và tổ chức sắp xếp dữ liệu trong Datawarehouse một cách chuyên nghiệp
     
    HangLe, phamthanhnhan14 and Nhung_Ha like this.
  6. Nhung_Ha

    Nhung_Ha New Member

    Không thể nào tốt hơn với mình nữa - cám ơn bạn rất nhiều.

    Bạn có thể cho mình một nhận xét so sánh giữa 3 sản phẩm đầu không?
     
  7. bsdinsight

    bsdinsight Well-Known Member

    Để so sánh 3 giải pháp đầu là Pentaho, Talend, và Infomatica thì mình có các nhận xét theo kinh nghiệm làm việc của mình ở các giải pháp này như sau:

    Chi phí
    Infomatica là giải pháp thương mại là chính, nên chi phí sẽ đắc hơn 2 giải pháp còn lại (cho dù là Pentaho và Talend cũng có các giải pháp thương mại, nhưng giá của 2 giải pháp này vẫn cứ rẻ hơn Informatica).

    Dễ sử dụng, làm việc cho cả Business User và Technicial User
    Về mặt này mình đánh giá Infomatica và Pentaho ngang ngửa nhau, còn Telend khó sử dụng hơn đặc biệt là cho Business Users.

    Phát triển sản phẩm.
    Tức là công việc để xây dựng trọn gói một giải pháp Business Intelligence cho doanh nghiệp, bao gồm ETL, Data Moduling, Analytics, Report, and Dashboaring. Mình thích Pentaho (cá nhân mình thôi nhe, còn những vị khác thì mình làm răn mà biết được), còn lại Infomatica và Talend ngang ngữa nhau về mặt phát triển sản phẩm.

    Tốc độ
    Đánh giá ngang ngữa nhau cho 3 giải pháp này ở DB tầm trung (khoảng 200 GB), còn lên cao hơn nữa thì mình chưa làm việc, mình sẽ thử với các DB lớn hơn và feed back lại cho bạn ở topic này sau vậy.

    Monitoring
    Tức là công cụ để hỗ trợ mình giám sát các sự cố xảy ra trong giải pháp, và công cụ hỗ trợ mình tìm kiếm lỗi phải trong giải pháp - cái này em đánh giá rất cao Informatica, còn lại chắc là ngang ngửa nhau cho Pentaho và Talend

    Data Quality
    Vẫn thế, Informatica dẫn đầu (theo cá nhân mình) còn lại đánh đồng ngang ngửa cho 2 ẻm còn lại.

    Nói một cách khác, mọi sự so sánh không có ý nghĩa lớn bằng việc doanh nghiệp bạn cần gì, và mình tìm đúng công cụ với thế mạnh của sản phẩm đó, và bên cạnh đó là phần kỹ thuật của anh/em cũng như nhà cung cấp giải pháp cho bạn. Không đi thẳng từ A đến B được thì ta đi vòng từ A đến C, đến D rồi lại mò về B thôi. Vấn đề là kinh nghiệm nên làm như thế nào để đạt được cái tối ưu nhất và dễ dàng cho người dùng đầu cuối (Business User) đến mức tốt nhất mà mình có thể
     
  8. Nhung_Ha

    Nhung_Ha New Member

    cám ơn bạn nhiều.

    Về ETL dữ liệu, bạn có thể cho mình biết thêm về câu hỏi của mình như sau: mình nghĩ, tốt nhất là ETL những cái gì mới xảy ra như một record mới xuất hiện, thao tác điều chỉnh số liệu của một record nào đó, và thao tác xóa đi một record nào đó - còn các dữ liệu mà mình đã ETL qua bên DBWH rồi thì mình không nên lại phải đọc đi, đọc lại nhiều lần. Vậy thuật toán nào để giải quyết vấn đề này, hổng lẻ mình có 100 triệu record là nó cứ đọc đi đọc lại 100 triệu record này nhẻ.

    Đó là mình đang nghĩ, vì mình không giỏi lắm về DB nhe.
     
    HangLe likes this.
  9. bsdinsight

    bsdinsight Well-Known Member

    Các DBMS thương mại đều có một dịch vụ gọi là CDC (Change Data Capture) được thiết kế để lắng nghe sự thay đổi (tạo mới, thay đổi, và delete) tất cả các record dữ liệu của các table trong database, và dịch vụ này sẽ cung cấp cho bạn biết đâu là sự thay đổi, từ đó bạn sẽ chuyển các thông tin này vào DBWH một cách chính xác mà hoàn toàn không cần truy cập vào database chính, cũng như không bao giờ bạn phải dò tuần tự dữ liệu để tìm kiếm các phát sinh nghiệm vụ mới.

    Bạn có thể tìm hiểu thêm về CDC với các DBMS như Oracle, IBM DB2, hoặc MS SQL Server. Một mô hình data flow như sau
    etl data.gif
     
    HangLe and Nhung_Ha like this.

Share This Page