Design pattern không chỉ dành cho các Backend Engineer. Những Data Engineer cũng cần phải follow theo những patterns chuyên biệt. Mọi người hãy cùng Huy liệt kê nhanh những patterns phổ biến hay được các team Data Engineer sử dụng nhé. Let’s go!

1. ELT Pattern: Extract Load Transform

ELT là mô hình kế thừa của mô hình ETL phổ biến trong thế giới RDBMS. Đây là một mô hình phổ biến và thông dụng, nơi các kỹ sư dữ liệu trích xuất dữ liệu từ các nguồn khác nhau (RDBMS, API hoặc Scraping), tải dữ liệu vào kho lưu trữ đối tượng như S3, ADLS Gen 2 hoặc GCS, và sử dụng các công cụ hiện đại như Databricks để chuyển đổi hiệu quả.

2. Lakehouse Pattern

Kiến trúc này nó kết hợp cả Data Lake và Data Warehouse. Bất kể dữ liệu thô hay đã qua xử lý, có cấu trúc hay bán cấu trúc, tất cả đều có sẵn trong một môi trường và có thể truy cập được bằng một nền tảng. https://www.databricks.com/glossary/data-lakehouse

3. Medallion Architecture Pattern

Kiến trúc này thường được sử dụng với Databricks và hiện nay đã trở thành một chuẩn mực thực tế. Kiến trúc này bao gồm các lớp: đồng (dữ liệu thô), bạc (dữ liệu đã được làm sạch và làm giàu) và vàng (dữ liệu tổng hợp ở cấp độ kinh doanh) để xử lý dữ liệu. https://dataengineering.wiki/Concepts/Medallion+Architecture

4. DeltaLake Architecture Pattern

Delta Lake là một dự án mã nguồn mở do Databricks khởi xướng phát triển. Nó mang lại tính tin cậy cho các Data Lake. Delta Lake cải thiện các Data Lake bằng các ACID transaction, time travel, z-order, CDC , Schema evolution, và nhiều những tối ưu khá nữa. https://docs.databricks.com/en/delta/index.html

5. Kappa Architecture Pattern

Đây là kiến trúc bản thân mình rất thích nhưng công bằng mà nói cũng khá là khó thực thi. Trong Kiến trúc Kappa, tất cả dữ liệu được xử lý như một luồng (stream). Điều này có nghĩa là những gì theo truyền thống được xử lý theo lô (batch) sẽ được xử lý như một luồng (stream) dữ liệu liên tục. Hệ thống xử lý dữ liệu theo thời gian thực (real-time) khi nó đến thay vì theo các batch riêng biệt. Mặc dù Kiến trúc Kappa được sắp xếp hợp lý cho xử lý theo thời gian thực, nó vẫn có thể xử lý khối lượng lớn historical data (có thể được coi là dữ liệu theo batch) bằng cách replay chúng dưới dạng một luồng stream. https://hazelcast.com/glossary/kappa-architecture/

6. Serverless Architecture Pattern

Trong data engineering, serverless cho phép xây dựng các pipeline dữ liệu mà không cần lo lắng về giới hạn về Cloud Region/IP hoặc các giới hạn cơ sở hạ tầng khác. Nó hữu dụng cho tính sẵn sàng của hệ thống, tiết kiệm chi phí khi scaling. Đa số các dịch vụ Cloud đều cung cấp tính năng này, và đây cũng là một pattern phổ biến cho các bạn làm nhiều về Backend trên Cloud Platform. https://www.datadoghq.com/knowledge-center/serverless-architecture/
Thực ra là còn nhiều patterns nữa mà mình cũng chưa cập nhật được hết, mọi người bổ sung cùng mình nha. Hi vọng sẽ có thêm những keyword hữu ích cho mọi người.
Xin chào, mình là Huy Đê Tê