Dòng Dữ Liệu Là Gì? Kiến Trúc và Ví Dụ

Dòng Dữ Liệu Là Gì?

Trình duyệt thu thập dữ liệu không cần scrap cung cấp dữ liệu web công cộng đã được trình duyệt render tới các đường ống cần các trang động như một nguồn đầu vào.

Tóm tắt ngắn

  • Một dòng dữ liệu di chuyển và xử lý dữ liệu giữa các hệ thống. Nó chuyển đổi các sự kiện, tệp, bản ghi, hoặc trang nguồn thành một dạng mà các người tiêu dùng hạ lưu có thể sử dụng.
  • Một đường ống rộng hơn ETL. ETL và ELT là những thứ tự xử lý phổ biến, trong khi một đường ống cũng bao gồm các kích hoạt, vận chuyển, kiểm tra chất lượng, lưu trữ, giám sát, và các kiểm soát phục hồi.
  • Các đường ống theo lô và theo thời gian thực giải quyết các nhu cầu thời gian khác nhau. Các nhóm theo lô hoạt động theo các phiên chạy đã lên lịch; dòng dữ liệu theo thời gian thực xử lý một luồng liên tục với các vấn đề thời gian sự kiện và trạng thái rõ ràng.
  • Độ tin cậy phụ thuộc vào hợp đồng và khả năng quan sát. Các nhóm cần các lược đồ, quyền sở hữu, nguồn gốc, mục tiêu độ mới, xử lý bản sao, và các trạng thái thất bại đo lường được.
  • Dữ liệu web công cộng thêm sự biến đổi trong việc thu thập. Trạng thái đã được render, sự thay đổi trong markup, phạm vi pháp lý, và nguồn gốc phải được thiết kế vào đường ống.

Một dòng dữ liệu là một tập hợp các quy trình được kết nối mang dữ liệu từ một hoặc nhiều nguồn đến một hoặc nhiều đích. Chỉ di chuyển là thường không đủ. Hầu hết các đường ống xác thực, lọc, chuẩn hóa, làm phong phú, tổng hợp, kết hợp, hoặc định tuyến dữ liệu để một ứng dụng, kho dữ liệu, mô hình, chỉ mục tìm kiếm, hoặc dịch vụ vận hành nhận được một sản phẩm đáng tin cậy hơn là một sự tạm bợ không được giải thích.

Tổng quan về dòng dữ liệu của IBM mô tả nhập, biến đổi, và tải dữ liệu vào các đích được sử dụng cho phân tích hoặc vận hành. Ranh giới kỹ thuật hữu ích là rộng hơn: một đường ống sản xuất cũng tuyên bố khi nào nó chạy, cách nó phát hiện đầu vào mới, điều gì xảy ra với các bản ghi bị lỗi, ai sở hữu đầu ra, và cách mà các nhà điều hành biết rằng kết quả đã hoàn tất.

Kiến Trúc Dòng Dữ Liệu

Một đường ống bắt đầu với các nguồn. Chúng có thể là cơ sở dữ liệu giao dịch, lưu trữ đối tượng, luồng sự kiện, xuất khẩu SaaS, thông số từ thiết bị, nhật ký ứng dụng, nguồn cấp partner, hoặc các trang web công cộng. Lớp nhập đọc các thay đổi hoặc ảnh chụp và chuyển chúng vào một ranh giới xử lý được kiểm soát. Nhập liệu tốt bảo vệ các định danh nguồn và ngữ cảnh thu thập trước khi các giai đoạn sau định hình lại dữ liệu.

Xử lý áp dụng các quy tắc mà làm cho dữ liệu hữu ích. Một công việc có thể chuyển đổi kiểu, chuẩn hóa đơn vị, loại bỏ các hàng không hợp lệ, phân tích văn bản, giải quyết thực thể, tính toán chỉ số, hoặc kết hợp các bản ghi. Lưu trữ sau đó đặt đầu ra thô, trung gian, hoặc đã được biên tập vào các hệ thống được chọn cho các mô hình truy cập. Điều phối điều phối các phụ thuộc, lịch trình và tham số; khả năng quan sát đo lường xem mỗi phiên chạy có đáp ứng hợp đồng của nó hay không.

LớpTrách nhiệmBằng chứng để giữ lại
NguồnTạo bản ghi, sự kiện, tệp hoặc trang.Chủ sở hữu, định danh, phạm vi truy cập, ngữ nghĩa thay đổi.
Nhập liệuNắm bắt và vận chuyển đầu vào.Thời gian nắm bắt, con trỏ, yêu cầu hoặc định danh phiên.
Xử lýXác thực và biến đổi dữ liệu.Phiên bản quy tắc, bản ghi bị từ chối, số lượng đầu vào-đầu ra.
Lưu trữDuy trì các sản phẩm thô hoặc đã được biên tập.Lược đồ, phân vùng, lưu giữ, chính sách truy cập.
Điều phốiĐiều phối công việc và các phụ thuộc.Trạng thái chạy, tham số, kết quả phụ thuộc.
Tiêu thụPhục vụ phân tích hoặc ứng dụng.Độ mới, mục tiêu dịch vụ, chủ sở hữu hạ lưu.

Các Đường Ống Theo Lô và Theo Thời Gian Thực

Một đường ống theo lô xử lý một tập hợp giới hạn, thường theo lịch trình hoặc khi một tệp đến. Ranh giới làm cho tính toàn vẹn dễ hiểu hơn: một công việc có thể so sánh các phân vùng dự kiến và nhận được, công bố một kết quả nguyên tử, và giữ một bản kiểm tra ở mức phiên. Độ trễ liên quan đến lịch trình và thời gian thực thi, điều này chấp nhận được cho nhiều báo cáo, cập nhật danh mục, và tập dữ liệu huấn luyện mô hình.

Một đường ống theo thời gian thực xử lý một chuỗi sự kiện đang diễn ra. Nó cần các quy tắc cho thời gian sự kiện, sự đến trễ, bản sao, trạng thái, cửa sổ, và điểm kiểm tra. “Thời gian thực” không phải là một kiến trúc duy nhất; nó là một yêu cầu về độ trễ nên được nêu rõ bằng số bởi chủ sở hữu hệ thống. Một micro-batch vài phút có thể đơn giản hơn và ít tốn kém hơn so với xử lý liên tục trong khi vẫn đáp ứng được nhu cầu kinh doanh.

Tài liệu Apache Kafka Streams minh họa việc xử lý luồng trạng thái, thời gian, và kho trạng thái chịu lỗi. Những mối quan tâm này xuất hiện bất cứ khi nào kết quả phụ thuộc vào thứ tự sự kiện hoặc trạng thái lăn, bất kể động cơ luồng cụ thể nào.

ETL, ELT, và Ranh Giới Đường Ống

ETL trích xuất dữ liệu, biến đổi nó trong một hệ thống xử lý, và sau đó tải kết quả đã được biên tập. ELT trích xuất và tải dữ liệu trước, sau đó biến đổi nó trên nền tảng đích. Cả hai đều là mẫu đường ống, nhưng không có thuật ngữ nào mô tả phát hiện, quyền truy cập, lịch trình, nguồn gốc, cảnh báo chất lượng, giao diện phục vụ, hoặc toàn bộ vòng đời hoạt động.

Một đường ống cũng có thể di chuyển dữ liệu mà không cần biến đổi phân tích. Sao chép dữ liệu thay đổi có thể lặp lại các cập nhật cơ sở dữ liệu vào một dịch vụ khác. Một tích hợp ứng dụng có thể định tuyến một sự kiện đến một hàng đợi và một số người tiêu thụ vận hành. Một đường ống truyền thông có thể mã hóa lại các tệp. Ý tưởng chung là một dòng chảy được quản lý với các đầu vào, các bước xử lý, và các đầu ra—không phải là một kho hàng bắt buộc.

Hợp đồng Dữ liệu và Thay đổi Lược đồ

Một hợp đồng dữ liệu chỉ ra những gì một nhà sản xuất hứa hẹn và những gì một người tiêu dùng có thể dựa vào. Nó có thể bao gồm tên trường, kiểu dữ liệu, khả năng null, định danh, ngữ nghĩa cập nhật, độ mới, giá trị được phép và quy tắc ngưng sử dụng. Nếu không có hợp đồng, một thay đổi nguồn có vẻ vô hại có thể lặng lẽ làm hỏng các số liệu ở hạ nguồn hoặc phá vỡ một mô hình sau khi pipeline báo cáo thành công.

Sự trôi dạt của schema nên tạo ra một quyết định có thể quan sát được. Các bổ sung tương thích có thể được chấp nhận và ghi lại. Những thay đổi về kiểu, thiếu các định danh hoặc những thay đổi về ngữ nghĩa có thể yêu cầu cách ly. Pipeline không nên ép buộc mọi giá trị bất ngờ cho đến khi công việc chuyển sang màu xanh; sự ép buộc ẩn khiến sự cố chuyển sang một bảng điều khiển nơi nó trở nên khó khăn để theo dõi.

Điều phối, Dòng dõi và Khả năng quan sát

Orchestration trả lời cho những gì chạy, khi nào nó chạy, và nó phụ thuộc vào điều gì. Lineage trả lời cho việc một trường hoặc tập dữ liệu đến từ đâu và những tài sản downstream nào phụ thuộc vào nó. Observability trả lời cho việc liệu pipeline có đang khỏe mạnh hay không và liệu đầu ra của nó vẫn đáp ứng được mong đợi hay không. Những chức năng này chồng chéo lên nhau, nhưng không cái nào thay thế cho cái nào.

Bộ Mô hình đối tượng OpenLineage định nghĩa công việc, thực hiện và khái niệm tập dữ liệu cho việc ghi lại các sự kiện nguồn gốc. Một triển khai thực tế nên kết nối những hồ sơ đó với quyền sở hữu, cảnh báo, phiên bản mã và kết quả chất lượng dữ liệu. Các nhà điều hành cần di chuyển từ một ô bảng điều khiển gặp lỗi trở lại với lần thực hiện có trách nhiệm và nhập liệu mà không cần khai thác thủ công.

Nơi Web Extraction Thích Hợp

Web extraction là một con đường tiếp nhận, không phải toàn bộ quy trình. Một trình duyệt hoặc khách hàng HTTP thu thập một biểu diễn; một trình phân tích xác định các bản ghi; xác thực kiểm tra các trường cần thiết; chuẩn hóa ánh xạ các giá trị đến một sơ đồ ổn định; lưu trữ bảo tồn các dạng thô và đã được chỉnh sửa; điều phối lập lịch công việc; giám sát phát hiện sự thay đổi nguồn và đầu ra.

Các trang động thêm một ranh giới hiển thị. Pipline nên ghi lại liệu nó đã ghi lại HTML ban đầu, một DOM được hiển thị, một phản hồi mạng, hay một kết quả hình ảnh. Một sự thay đổi bộ chọn và một thay đổi dữ liệu kinh doanh thực sự là những sự kiện khác nhau. Việc giữ lại hiện vật thu thập thô và phiên bản phân tích cho phép nhóm phân biệt chúng.

Sự có sẵn công khai không loại bỏ nghĩa vụ quản lý. Chủ sở hữu đường ống nên xem xét các điều khoản, kiểm soát truy cập, bản quyền, quyền riêng tư, quyền cơ sở dữ liệu, và việc sử dụng tiếp theo. Việc thu thập nên tỷ lệ thuận, được xác định cho mục đích đã nêu, và được thiết kế để tránh các trường cá nhân hoặc nhạy cảm không cần thiết.

Mẫu Độ Tin Cậy Quan Trọng

  • Xin hãy cung cấp văn bản mà bạn muốn tôi dịch sang tiếng Việt. Xử lý lại cùng một đầu vào không nên tạo ra các bản ghi doanh nghiệp trùng lặp hoặc các tổng hợp không nhất quán.
  • Các định danh ổn định. Các bản ghi cần có các khóa tồn tại sau khi thay đổi thứ tự và hỗ trợ cập nhật thay vì chỉ sao chép mù quáng.
  • Lưu trữ dữ liệu thô. Một lớp thô được kiểm soát giúp các biến đổi và kiểm toán đã được chỉnh sửa trở nên khả thi mà không cần thu lại từng nguồn dữ liệu.
  • Đường cách ly. Các hồ sơ không hợp lệ nên vẫn có thể kiểm tra được thay vì biến mất hoặc làm ô nhiễm các bảng đã được chọn lọc.
  • Kiểm tra độ tươi mới và tính đầy đủ. Một công việc có thể hoàn thành đúng hạn trong khi thiếu một phân vùng, trang, khu vực hoặc nguồn.
  • Sử dụng tài nguyên có giới hạn. Đồng thời, bộ nhớ, lưu trữ và khối lượng công việc điểm đến nên phù hợp với ngân sách rõ ràng và giới hạn nguồn.

Cách thiết kế một đường ống dữ liệu

  1. Bắt đầu với quyết định của người tiêu dùng hoặc hành vi ứng dụng mà đầu ra phải hỗ trợ.
  2. Định nghĩa sơ đồ đầu ra, mục tiêu độ tươi, mong đợi độ chính xác và chủ sở hữu.
  3. Nguồn hàng tồn kho, quyền truy cập, thay đổi hành vi, khối lượng và trường hợp lỗi.
  4. Chọn lô, lô nhỏ, hoặc phát trực tiếp dựa trên yêu cầu độ trễ thay vì thời trang.
  5. Tách biệt các ranh giới thu thập, xác thực, chuyển đổi, lưu trữ và phục vụ.
  6. Thêm dòng dõi, kiểm tra chất lượng, biện pháp chi phí và cảnh báo có thể hành động trước khi quy mô che giấu các khuyết tật.
  7. Kiểm tra lại, thay đổi lược đồ, đầu vào một phần, đầu vào trùng lặp và sự không khả dụng ở phía hạ lưu.

Khi các nguồn tài liệu được trình duyệt hiển thị là một phần của thiết kế, Trình duyệt Scraping Không Rác có thể xử lý ranh giới tiếp nhận trong khi pipeline tiếp tục phân tích và các quy tắc kinh doanh được rõ ràng. The Mô hình giá không có rác nên được đưa vào ước tính chi phí theo từng bản ghi hoặc theo từng lượt chạy thay vì được coi là một khoản chi cho cơ sở hạ tầng vô hình.

Cách Đánh Giá Một Quy Trình

Đánh giá nên bao gồm độ chính xác, tính mới, tính đầy đủ, khả năng phục hồi, bảo mật và chi phí. Độ chính xác so sánh các đầu ra với các đầu vào đã biết và các quy tắc kinh doanh. Tính mới đo lường độ tuổi của dữ liệu có sẵn. Tính đầy đủ xác minh các nguồn và phân vùng mong đợi. Khả năng phục hồi kiểm tra sự thất bại có kiểm soát và phát lại. Bảo mật bao gồm quyền hạn tối thiểu, mã hóa, lưu giữ và kiểm tra. Chi phí liên kết tính toán, lưu trữ, chuyển giao và mua sắm đến một đơn vị đầu ra.

Một chỉ số không thể tóm tắt tất cả điều đó. Một pipeline có thể có thời gian hoạt động cao trong khi liên tục xuất bản các bản ghi lỗi thời, hoặc hoàn thành lô hoàn hảo trong khi rò rỉ các trường mà người tiêu dùng không cần. Một bảng điểm nhỏ với các mục tiêu dịch vụ sở hữu cung cấp một bức tranh hoạt động trung thực hơn so với một trạng thái xanh đơn lẻ.

Kết luận

Một đường dẫn dữ liệu là con đường được quản lý di chuyển dữ liệu từ trạng thái nguồn đến trạng thái đích hữu ích. Chất lượng của nó đến từ các hợp đồng rõ ràng, thời gian có chủ đích, các biến đổi có thể quan sát được, các định danh ổn định, nguồn gốc và hành vi thất bại đã được kiểm tra.

Sẵn sàng xây dựng một đường dẫn dữ liệu web?

Sử dụng Scrapeless Scraping Browser để thu thập dữ liệu từ trang công khai một cách động, sau đó giữ cho việc xác thực, biến đổi và nguồn gốc dưới sự kiểm soát của đường dẫn của bạn.

Bắt đầu miễn phí →

Câu hỏi thường gặp

Định nghĩa đơn giản nhất của một đường dẫn dữ liệu là gì?

Một đường dẫn dữ liệu là một tập hợp các quy trình kết nối di chuyển dữ liệu từ các nguồn đến các đích và thường xác thực hoặc biến đổi nó trong quá trình này. Các đường dẫn sản xuất cũng bao gồm lập lịch, giám sát, quyền sở hữu và xử lý sự cố.

Đường dẫn dữ liệu có giống như ETL không?

Không. ETL là một thứ tự xử lý bên trong một đường dẫn dữ liệu. Một đường dẫn có thể sử dụng ETL, ELT, sao chép, định tuyến sự kiện, hoặc một mẫu khác và vẫn yêu cầu hấp thụ, tổ chức, kiểm soát chất lượng, nguồn gốc và phục vụ.

Sự khác biệt giữa batch và streaming là gì?

Batch xử lý một nhóm dữ liệu có giới hạn theo khoảng thời gian hoặc khi đến, trong khi streaming xử lý một dòng chảy liên tục và phải quản lý thời gian sự kiện, trạng thái, thứ tự và bản sao. Sự lựa chọn đúng theo độ trễ và ngân sách vận hành cần thiết.

Điều gì làm cho một đường dẫn dữ liệu đáng tin cậy?

Một đường dẫn đáng tin cậy có các hợp đồng rõ ràng, hành vi idempotent, các định danh ổn định, kiểm tra chất lượng có thể quan sát được, sự tiến hóa lược đồ được kiểm soát, nguồn gốc và các đường dẫn phục hồi đã được kiểm tra. Một công việc hoàn thành không đủ nếu dữ liệu của nó không đầy đủ hoặc sai.

Liệu việc thu thập dữ liệu trên web có thể là một phần của đường dẫn dữ liệu không?

Có. Việc thu thập dữ liệu trên web hoặc trích xuất từ trình duyệt có thể là giai đoạn thu thập cho dữ liệu web công khai. Đường dẫn vẫn nên ghi lại phương pháp thu thập, bảo tồn nguồn gốc, xác thực các trường, tôn trọng các quy tắc áp dụng, và tách biệt nội dung thô khỏi đầu ra được chuẩn hóa.

Chi phí của đường dẫn nên được đo bằng cách nào?

Chi phí đường dẫn nên được gắn liền với một đơn vị hữu ích như một bản ghi đã xử lý, thực thể đã làm mới, sự kiện đã giao, hoặc lô đã hoàn thành. Bao gồm hấp thụ, tính toán, lưu trữ, truyền tải, giám sát và thời gian của người điều hành trong phép tính.

Tài liệu tham khảo