ETL là gì? Giải thích về Trích xuất, Biến đổi, Tải dữ liệu

ETL là gì?

Trình duyệt Scraping không có mã nguồn có thể cung cấp dữ liệu web công khai đã được hiển thị cho giai đoạn trích xuất của một quy trình ETL.

TL;DR

  • ETL có nghĩa là trích xuất, biến đổi và tải. Dữ liệu được thu thập từ các nguồn, được định hình lại theo các quy tắc xác định, và được ghi vào một điểm đến.
  • Biến đổi xảy ra trước khi tải chính. ETL hữu ích khi điểm đến cần nhận dữ liệu được chọn lọc đã phù hợp với một sơ đồ điều khiển.
  • ETL là một mẫu đường ống, không phải là một nền tảng hoàn toàn. Lên lịch, nguồn gốc, kiểm soát chất lượng, quyền truy cập và phục vụ vẫn là những mối quan tâm thiết kế tách biệt.
  • ETL gia tăng cần có ngữ nghĩa thay đổi ổn định. Các khóa, dấu thời gian, xử lý xóa, và các điểm kiểm tra xác định xem các cập nhật có hoàn chỉnh và có thể lặp lại hay không.
  • Các đầu vào từ web yêu cầu kiểm soát nguồn gốc và sự trôi dạt. Quy trình làm việc phải tách biệt các thay đổi thu được từ các thay đổi thực sự trong các sự kiện cơ bản.

ETL là một quy trình tích hợp dữ liệu mà trích xuất dữ liệu từ các hệ thống nguồn, biến đổi nó thành một hình thức đã đồng ý, và tải kết quả vào một hệ thống mục tiêu. Điểm đến thường là một kho lưu trữ phân tích, nhưng ETL cũng có thể cung cấp cho một cơ sở dữ liệu quan hệ, chỉ mục tìm kiếm, kho báo cáo, bộ đặc tính mô hình, hoặc ứng dụng hoạt động.

Tổng quan về ETL của AWS khung quy trình xung quanh việc kết hợp dữ liệu nguồn và áp dụng các quy tắc kinh doanh trước khi phân tích. Thứ tự là đặc điểm định nghĩa: điểm đến chính nhận đầu ra đã được biến đổi thay vì làm điểm đến đầu tiên cho dữ liệu thô.

Trích xuất: Ghi lại Dữ liệu Nguồn Với Ngữ cảnh

Trích xuất đọc dữ liệu từ cơ sở dữ liệu, tệp, API, hệ thống sự kiện, ứng dụng, tài liệu, hoặc trang web. Một phương pháp trích xuất đáng tin cậy không chỉ sao chép giá trị. Nó ghi lại danh tính nguồn, thời gian ghi lại, quy tắc chọn lọc, quyền truy cập, và ranh giới được sử dụng để phát hiện dữ liệu mới hoặc đã thay đổi. Những chi tiết đó xác định liệu một lần chạy sau đó có thể giải thích tại sao một bản ghi tồn tại.

Trích xuất hoàn toàn đọc toàn bộ tập dữ liệu đã chọn. Trích xuất gia tăng đọc các thay đổi kể từ một điểm kiểm tra, sử dụng dấu thời gian, số thứ tự, nhật ký thay đổi, trường phiên bản, hoặc con trỏ cụ thể cho nguồn. Công việc gia tăng giảm tải và độ trễ, nhưng nó cần các quy tắc rõ ràng cho các cập nhật muộn, xóa bỏ, khác biệt đồng hồ, và nâng cao điểm kiểm tra. Một con trỏ chỉ nên di chuyển khi đầu ra tương ứng đã được cam kết an toàn.

Đối với các nguồn web công khai, tác phẩm trích xuất có thể là HTML ban đầu, một DOM được hiển thị, một phản hồi mạng, hoặc một đối tượng có cấu trúc được phân tích từ trang. Công việc ETL nên bảo tồn đại diện nào mà nó đã ghi lại. Nếu không, một sự thay đổi trong cách hiển thị của khách hàng có thể trông giống như một sự thay đổi dữ liệu kinh doanh ngay cả khi bản ghi nguồn vẫn giữ nguyên.

Biến đổi: Áp dụng Hợp đồng Dữ liệu

Biến đổi chuyển đổi dữ liệu đặc thù nguồn thành sơ đồ và ý nghĩa mong đợi bởi điểm đến. Các thao tác phổ biến bao gồm ép kiểu, chuyển đổi đơn vị, đổi tên trường, chuẩn hóa, xóa trùng lặp, xác thực, che khuất, lọc, nối, tổng hợp, và làm phong phú. Mỗi quy tắc nên có tính xác định, có phiên bản, và có thể kiểm tra được với các đầu vào đại diện.

Biến đổi cũng là nơi những sai lầm ngữ nghĩa trở nên tốn kém. Chuyển đổi một giá trị văn bản thành một số thì dễ; quyết định liệu thuế đã được bao gồm, liệu một dấu thời gian đại diện cho thời gian sự kiện hay thời gian cập nhật, hoặc liệu hai định danh có liên quan đến cùng một thực thể không yêu cầu kiến thức miền. Đặc tả biến đổi nên chỉ ra những quyết định đó thay vì ẩn chúng trong mã.

Dữ liệu bị từ chối cần một con đường được kiểm soát. Các bản ghi vi phạm các trường hoặc ràng buộc yêu cầu nên bị cách ly với lý do và tham chiếu nguồn. Việc loại bỏ chúng một cách im lặng tạo ra các bảng có vẻ sạch sẽ với các khoảng trống không được giải thích. Ép buộc mỗi giá trị tạo ra các bảng có vẻ đầy đủ với ý nghĩa không chắc chắn.

Tải: Đưa Dữ liệu Đến Đúng Cách

Tải viết dữ liệu đã được biến đổi vào mục tiêu. Các tải thêm hàng bổ sung các hàng mới. Tải upsert chèn các bản ghi mới và cập nhật các bản ghi hiện có dựa trên một khóa ổn định. Các tải thay thế công bố một bản chụp hoàn chỉnh. Các mẫu chiều thay đổi chậm giữ lại lịch sử đã chọn. Phương pháp đúng phụ thuộc vào cách người tiêu dùng diễn giải các cập nhật và liệu các trạng thái lịch sử có quan trọng hay không.

Một tải nên tránh tiết lộ kết quả chưa hoàn chỉnh. Các bảng tạm, hoán đổi giao dịch, phân vùng có phiên bản, hoặc bản khai nguyên tử có thể giữ người tiêu dùng ở trên tập dữ liệu hoàn chỉnh trước đó cho đến khi cái mới vượt qua các kiểm tra. Công việc nên điều chỉnh số lượng đầu vào, đã biến đổi, bị từ chối, và đã tải và nên xác minh tính duy nhất của khóa và các phân vùng yêu cầu trước khi công bố.

Hướng dẫn ETL của Microsoft phân biệt các bước trong đường ống và các cân nhắc điểm đến. Bài học có thể chuyển nhượng là tải là một ranh giới công bố: dữ liệu trở thành một sản phẩm có người tiêu dùng, quy tắc giữ lại, kiểm soát truy cập, và kỳ vọng dịch vụ.

Một sơ đồ ETL nhìn nhanh

Giai đoạnCâu hỏi chínhKiểm soát điển hình
Trích xuấtCông việc đã ghi lại trạng thái nguồn dự kiến chưa?Con trỏ, danh tính bản chụp, số lượng nguồn, nguồn gốc.
Biến đổiMỗi đầu ra có phù hợp với sơ đồ và ý nghĩa đã đồng ý không?Phiên bản quy tắc, kiểm tra, lý do cách ly, điều chỉnh.
TảiNgười tiêu dùng có thể thấy một công bố hoàn chỉnh và hợp lệ không?Bảng tạm, công bố nguyên tử, khóa, phân vùng, chính sách truy cập.
Vận hànhChủ sở hữu có thể phát hiện và giải thích một kết quả xấu hoặc muộn không?Nguyên nhân, độ mới, cảnh báo, nhật ký chạy, quyền sở hữu.

ETL so với một Đường ống Dữ liệu Chung

ETL xác định một thứ tự xử lý. Một đường ống dữ liệu chung bao gồm luồng rộng hơn: cách công việc bắt đầu, cách dữ liệu di chuyển, nơi các trạng thái trung gian tồn tại, ý nghĩa của chất lượng, cách mà các phụ thuộc được điều phối, và cách các người tiêu dùng ở phía dưới được phục vụ. Mỗi công việc ETL sản xuất đều là một phần của một đường ống, nhưng không phải mọi đường ống đều biến đổi trước khi tải.

Sự phân biệt này giúp các nhóm tránh mua hoặc xây dựng một “công cụ ETL” và giả định rằng quyền sở hữu, bảo mật, dòng dữ liệu, kiểm soát chi phí và các định nghĩa ngữ nghĩa giờ đây tự động tồn tại. Công nghệ có thể thực hiện các bước; tổ chức vẫn phải xác định sản phẩm dữ liệu và thỏa thuận vận hành của nó.

ETL Theo Lô, Vi Lô, và Truyền Liên Tục

ETL truyền thống thường theo lô: một tập hợp giới hạn được trích xuất, biến đổi và công bố theo lịch trình. Vi lô rút ngắn khoảng thời gian trong khi vẫn giữ nguyên giới hạn chạy. ETL truyền liên tục áp dụng biến đổi cho các sự kiện liên tục và phải tính đến thời gian sự kiện, trạng thái, bản sao, và các sự kiện đến muộn. Nhãn không quan trọng bằng mục tiêu dịch vụ và mô hình tính chính xác.

Giải thích ETL của Google Cloud thảo luận về ETL theo lô và truyền liên tục trong cùng một danh mục rộng hơn. Một thiết kế nên chọn mô hình thời gian đơn giản nhất phù hợp với nhu cầu của người tiêu dùng. Xử lý liên tục thêm công việc vận hành và có thể làm phức tạp việc phát lại, vì vậy nó nên tuân theo yêu cầu độ trễ thực.

Chất lượng và Khả Năng Quan Sát ETL

Các kiểm tra chất lượng nên bao gồm lược đồ, tính đầy đủ, tính hợp lệ, tính duy nhất, tính nhất quán, sự mới mẻ và phân phối. Một số lượng hàng có thể tiết lộ một phân vùng thiếu nhưng không thể chứng minh rằng các định danh là duy nhất hoặc số tiền sử dụng đúng loại tiền tệ. Các bài kiểm tra nên được liên kết với hợp đồng của người tiêu dùng và nên xác định các bản ghi nào đã thất bại.

Khả năng quan sát kết nối triệu chứng với một lần chạy, phiên bản mã, ảnh chụp nguồn, quy tắc biến đổi và xuất bản đích. Các tín hiệu hữu ích bao gồm độ trễ trích xuất, tỷ lệ trường thay đổi, lý do từ chối, đối chiếu nguồn-đích, thời gian tải, sự mới mẻ của đích, và các sự cố hạ lưu. Cảnh báo nên chỉ định một chủ sở hữu và một hành động thay vì lặp lại mọi sự kiện ghi log cấp thấp.

Các Kiểu Thất Bại ETL Thông Thường

  • Khóa gia tăng không ổn định. Một dấu thời gian hoặc con trỏ bỏ lỡ cập nhật, tiến lên quá sớm, hoặc không thể đại diện cho việc xóa.
  • Buộc lược đồ im lặng. Các giá trị không mong đợi bị chuyển đổi thành null hoặc văn bản mà không có vi phạm hợp đồng có thể quan sát được.
  • Tải trùng lặp. Một đầu vào lặp lại tạo ra các hàng kinh doanh bổ sung vì đích thiếu các khóa ổn định và các ghi chép idempotent.
  • Xuất bản không hoàn chỉnh. Người tiêu dùng truy vấn một bảng trong khi chỉ một số phân vùng hoặc thực thể đã được thay thế.
  • Logic kinh doanh ẩn. Ý nghĩa quan trọng nằm trong các biểu thức không được tài liệu mà không thể được các chủ sở hữu miền xem xét.
  • Không có chứng cứ thô. Một biến đổi đã được sửa không thể được phát lại vì tài sản nguồn ban đầu và ngữ cảnh ghi lại đã bị bỏ đi.

ETL cho Dữ liệu Web Công Cộng

ETL từ web bắt đầu với một kế hoạch thu nhận hợp pháp, có phạm vi. Giai đoạn trích xuất chỉ ghi lại các trường công cộng cần thiết cho mục đích đã nêu và ghi lại URL, thời gian, địa điểm, và đại diện. Giai đoạn biến đổi phân tích các bản ghi, chuẩn hóa đơn vị, xác thực các định danh, và tách giá trị thiếu ra khỏi các lỗi trích xuất. Giai đoạn tải công bố một lược đồ ổn định với nguồn gốc.

Mẫu trang thay đổi độc lập với các thực tế mà chúng hiển thị. Giữ các phiên bản thu nhận và phân tích tách biệt, lưu giữ mẫu của trang thô, và theo dõi các tín hiệu cấu trúc như các bộ chứa bản ghi thiếu hoặc sự thay đổi đột ngột trong phạm vi trường. Những kiểm soát này xác định một người trích xuất bị hỏng trước khi nó ghi đè một tập dữ liệu đáng tin cậy bằng đầu ra rỗng.

Trình duyệt Scrapeless Scraping có thể cung cấp trạng thái trang đã được render cho giai đoạn trích xuất khi cần JavaScript. Người sở hữu ETL vẫn chịu trách nhiệm về các bộ chọn, biến đổi, tối thiểu hóa dữ liệu, xác thực, và sử dụng hạ lưu được phép. Bao gồm giá Scrapeless trong mô hình chi phí cho mỗi lần làm mới dự kiến.

Danh sách Kiểm Tra Thiết Kế ETL

  1. Xác định người tiêu dùng, quyết định, lược đồ đầu ra, mục tiêu sự mới mẻ, và chủ sở hữu.
  2. Tài liệu quyền nguồn, lựa chọn, ngữ nghĩa thay đổi, định danh, và khối lượng dự kiến.
  3. Chọn trích xuất đầy đủ hoặc gia tăng và kiểm tra các bản cập nhật, xóa, và các bản ghi đến muộn.
  4. Phiên bản quy tắc biến đổi và cung cấp lý do cách ly cho các bản ghi không hợp lệ.
  5. Lựa chọn hành vi tải thêm, chèn, ảnh chụp, hoặc bảo tồn lịch sử một cách có chủ ý.
  6. Xuất bản một cách nguyên tử và đối chiếu các trạng thái nguồn, đã biến đổi, đã từ chối, và đã tải.
  7. Bảo tồn dòng dữ liệu và chứng cứ thô đủ lâu để kiểm toán và xử lý lại.
  8. Kiểm tra lượng drift của lược đồ, đầu vào trùng lặp, nguồn không hoàn chỉnh, và ràng buộc đích.

Kết luận

ETL là thứ tự trích xuất-biến đổi-tải để biến dữ liệu nguồn thành sản phẩm đích đã được chế biến. ETL mạnh mẽ bắt đầu với việc thu nhận có thể theo dõi, áp dụng các quy tắc ngữ nghĩa có phiên bản, công bố các đầu ra hoàn chỉnh, và ghi nhận đủ chứng cứ để giải thích mọi kết quả. Đối với các đầu vào từ web, trạng thái đã được render và drift mẫu trở thành những mối quan tâm nguồn hàng đầu hơn là vấn đề bị ẩn bên trong một trình phân tích.

Sẵn sàng để Xây dựng một Luồng ETL Web?

Thu nhận các trang công cộng động bằng Trình duyệt Scrapeless Scraping, sau đó biến đổi và tải chúng theo hợp đồng dữ liệu của riêng bạn.

Bắt đầu Miễn Phí →

Câu hỏi Thường Gặp

ETL là viết tắt của cái gì?

ETL là viết tắt của trích xuất, biến đổi, và tải. Quy trình đọc dữ liệu nguồn, chuyển đổi nó thành một lược đồ và ý nghĩa đã đồng ý, và ghi lại kết quả đã được chế biến vào một hệ thống mục tiêu.

Ví dụ về ETL là gì?

Một nhà bán lẻ có thể trích xuất các trang sản phẩm công khai, chuẩn hóa định danh, giá cả, tiền tệ và khả năng có sẵn, xác thực các trường cần thiết, sau đó tải các bản ghi đã được chọn lọc vào một kho phân tích. Quy trình làm việc nên bảo tồn các URL nguồn và ghi lại ngữ cảnh.

ETL chỉ dành cho kho dữ liệu không?

Không. Các kho dữ liệu là điểm đến ETL phổ biến, nhưng dữ liệu đã được chọn lọc cũng có thể được tải vào các cơ sở dữ liệu, chỉ mục tìm kiếm, cửa hàng tính năng, hệ thống báo cáo hoặc ứng dụng vận hành.

ETL khác gì so với ELT?

ETL biến đổi dữ liệu trước khi tải vào điểm đến chính, trong khi ELT tải dữ liệu nguồn vào nền tảng điểm đến và biến đổi nó ở đó. Sự lựa chọn thay đổi nơi dữ liệu thô tồn tại, nơi tính toán diễn ra và cách thực thi quản lý.

ETL có thể xử lý dữ liệu streaming không?

Có. ETL streaming áp dụng các biến đổi cho một dòng sự kiện liên tục, nhưng nó cần xử lý rõ ràng cho thời gian sự kiện, trạng thái, bản sao và sự đến muộn. Xử lý theo lô hoặc micro-batch vẫn đơn giản hơn khi mục tiêu độ trễ cho phép.

Những gì nên được giám sát trong ETL?

Giám sát độ tươi mới của nguồn, phạm vi trích xuất, thay đổi sơ đồ, lý do từ chối, tỷ lệ trùng lặp, số lượng đối chiếu, độ hoàn chỉnh của tải, độ tươi mới của điểm đến, chi phí và các sự cố hạ nguồn. Mỗi tín hiệu nên có một chủ sở hữu rõ ràng.

Tài liệu tham khảo