Data architecture là gì? Tìm hiểu về các loại kiến trúc dữ liệu phổ biến hiện nay

marketing foundation

Tomorrow Marketers – Sở hữu một nền tảng dữ liệu (data platform) là bước đầu để đưa dữ liệu trở thành một phần trong văn hóa và các quyết định của doanh nghiệp (data-driven culture). Và một trong những yếu tố chính của data platform chính là data architecture (kiến trúc dữ liệu)

Nếu bạn đã nghe nhiều về những khái niệm như data warehouse architecture, data lake architecture, nhưng vẫn chưa thật sự hiểu những khái niệm trên là gì, ứng dụng thế nào, hãy cùng Tomorrow Marketers tìm hiểu trong bài viết dưới đây nhé!

Data architecture là gì? 

Data architecture (kiến trúc dữ liệu) là một tập hợp các mô hình, quy tắc, tiêu chuẩn mà một doanh nghiệp sử dụng trong quá trình thu thập dữ liệu từ nhiều nguồn, lưu trữ, transform, phân phối và quản lý cấu trúc của các tài sản dữ liệu (dataset, data table, data model, dashboard,…). 

Mục tiêu của kiến trúc dữ liệu chính là giảm thiểu tình trạng lưu trữ dữ liệu dư thừa, giảm thiểu trùng lặp dữ liệu, cải thiện performance tổng thể của quy trình quản lý dữ liệu, đồng thời tăng tính dân chủ hóa của dữ liệu và giảm sự phụ thuộc của end-user vào team Data, tận dụng song song hiểu biết về domain của end-user và hiểu biết về technique của DE/DA/DS, tránh việc đẩy team này trở thành nút thắt cổ chai làm chậm trễ quá trình đưa ra quyết định.

Xét theo bối cảnh phát triển dữ liệu của những thập kỷ qua, kiến trúc của dữ liệu cũng có những bước phát triển song hành. Trong phần dưới đây, Tomorrow Marketers sẽ cùng bạn tìm hiểu kỹ hơn về các “bước tiến” của data architecture nhé!

1. Giai đoạn đầu tiên: Data Warehouse Architecture

Kiến trúc nhà kho dữ liệu (data warehouse architecture) thu thập, tổng hợp data từ nhiều nguồn dữ liệu và cơ sở dữ liệu khác nhau (Extraction – E), sau đó thực hiện các kỹ thuật làm sạch, chuyển đổi (Transform – T) để mô hình hóa data thành các data mart nhập (Load – L) vào nhà kho dữ liệu để phục vụ các công cụ Business Intelligence (BI) và các mô hình data science.

Đọc thêm: ETL là gì? Tại sao xu hướng này dần được ưa chuộng?

Xây dựng nhà kho dữ liệu là quá trình tổng hợp dữ liệu từ nhiều hệ thống vận hành, các ứng dụng third-party, các thiết bị IoT, các mạng xã hội,… (ví dụ: dữ liệu được tạo ra trong quá trình Sales thu hút và chăm sóc khách hàng, thông qua các công cụ SAP, Salesforce). 

Data warehouse là trung tâm, được thiết kế theo dạng snowflake schema hoặc star schema.

Thiết kế Data warehouse theo mô hình Star Schema

Thiết kế Data warehouse theo mô hình Star Schema – Khóa học Data System – Trang bị tư duy chuyển đổi số và xây dựng hệ thống dữ liệu

Dữ liệu được xử lý, làm sạch, transform và lưu trữ trong các bảng dimension và bảng fact để tạo nên cơ sở dữ liệu có cấu trúc – relational database (RDBMS). Dựa vào đó, doanh nghiệp có thể sử dụng dữ liệu để nhanh chóng tạo ra các báo cáo, dashboard nhằm theo dõi các hoạt động và tương tác tại nhiều điểm chạm với khách hàng. 

Như vậy, với kiến trúc data warehouse, dữ liệu sẽ được: 

  • Thu thập, tổng hợp từ nhiều nguồn dữ liệu và cơ sở dữ liệu
  • Làm sạch, xử lý, sắp xếp theo schema để tạo nên cơ sở dữ liệu có cấu trúc
  • Load vào trong nhà kho để sử dụng

Đọc thêm: Data Warehouse là gì? 6 yếu tố cân nhắc khi lựa chọn Data Warehouse

Data Warehouse Architecture

Kiến trúc Data Warehouse | Nguồn ảnh: Sách “Data Mesh” của O’Reilly

Thách thức lớn nhất của hướng tiếp cận này:

  • Theo thời gian, khối lượng công việc ETL, số lượng data tables và báo cáo được xây dựng lên cho một nhóm người dùng cụ thể ngày càng tăng lên và cần phải duy trì
  • Các phương pháp kỹ thuật hiện đại (modern engineering practices) như CI/CD không được áp dụng
  • Data model và thiết kế schema cho data warehouse nếu quá cứng nhắc cũng sẽ khiến Data Analyst phải xử lý một lượng lớn dữ liệu có cấu trúc và phi cấu trúc (structured and unstructured data) từ nhiều nguồn
  • Việc load dữ liệu theo batch vào các khoảng thời gian cụ thể vẫn còn phổ biến nhưng nhiều tổ chức yêu cầu tải dữ liệu liên tục (micro batching) và truyền dữ liệu (instant loading)
  • Việc mở rộng data warehouse để đáp ứng nhu cầu lưu trữ và khối lượng công việc ngày càng tăng có thể sẽ gây tốn kém, khó khăn và tạo gánh nặng về performance của hệ thống

Những thách thức này tạo điều kiện để mở đường cho giai đoạn kiến trúc dữ liệu tiếp theo.

2. Giai đoạn thứ hai: Data Lake Architecture

Kiến trúc hồ dữ liệu (data lake architecture) được giới thiệu lần đầu vào năm 2010, nhằm khắc phục những thách thức mà data warehouse đã đặt ra và đáp ứng những mục đích sử dụng mới của dữ liệu: giúp các Data Scientist truy cập dữ liệu thô nguyên bản trong quá trình training cho các  mô hình machine learning. 

Data lake architecture là hướng tiếp cận nhằm thiết kế một nơi tập trung lưu trữ dữ liệu thô ở format nguyên bản mà không có các schema được định nghĩa và thiết kế trước.

Kiến trúc data lake hoạt động theo quy trình ELT thay vì ETL: Dữ liệu sẽ được trích xuất (Extracted – E) từ các hệ thống vận hành, sau đó được tải (Loaded – L) vào kho lưu trữ trung tâm. Tuy nhiên, không giống với data warehouse, dữ liệu sau khi được đưa vào data lake không được (hoặc có nhưng rất ít) chuyển đổi, làm sạch và mô hình hóa. Ở “khu vực” lưu trữ dữ liệu thô này, các doanh nghiệp có thể sử dụng các giải pháp lưu trữ big data như Hadoop HDFS, Amazon S3 hoặc Azure Blob Storage. Từ data lake, dữ liệu sẽ thông qua các đường ống dữ liệu – data transformation pipelines (T) để mô hình hóa dữ liệu thô và lưu trữ nó trong data warehouse. 

Cách xây dựng đường ống dữ liệu

Cách xây dựng đường ống dữ liệu – Khóa học Data System – Trang bị tư duy chuyển đổi số và xây dựng hệ thống dữ liệu

Data từ đây sẽ được chuyển đổi:

  • Làm sạch dữ liệu: loại bỏ dữ liệu không chính xác, sai định dạng, trùng lặp, không liên quan, không đầy đủ, không nhất quán và chưa được chuẩn hóa hoặc có vấn đề (dirty) trong cơ sở dữ liệu
  • Làm giàu dữ liệu: tăng thêm giá trị cho dataset gốc bằng cách kết hợp dữ liệu hoặc bổ sung ngữ cảnh

Sau những bước chuyển đổi này, dữ liệu được coi là đáng tin cậy và có thể được sử dụng cho phân tích và training các model dự đoán.

Như vậy, với kiến trúc data lake: 

  • Cải thiện tính kém hiệu quả và linh hoạt của việc mô hình hóa bao quát ngay từ đầu quá trình mà data warehouse đòi hỏi. Khả năng linh hoạt trong lưu trữ giúp DA và DS có thể truy xuất dữ liệu thô, là input cho các bài toán, mô hình dự đoán hoặc dự án ML, khắc phục những vấn đề của data warehouse trong hiệu suất và tốc độ xử lý dữ liệu lớn. Việc transform data từ sớm lại được coi là bước cản trở và dẫn tới các vòng lặp khiến quá trình truy cập dữ liệu và training mô hình chậm hơn.
  • Ưu điểm trong việc sao lưu và phục hồi dữ liệu nhờ khả năng mở rộng quy mô với chi phí thấp. 
  • Làm việc với nhiều data type khác nhau, từ dữ liệu có cấu trúc (structured data), dữ liệu bán cấu trúc (semi-structured data) và dữ liệu phi cấu trúc (unstructured data)
    • Các nguồn dữ liệu có cấu trúc (structured data sources): Dữ liệu có cấu trúc là dạng dữ liệu đã được tổ chức, thường là theo dưới dạng data table với cấu trúc theo cột là các attribute đã được xác định trong cơ sở dữ liệu có cấu trúc – relational database (RDBMS). Một số hệ quản trị cơ sở dữ liệu có cấu trúc có thể kể tới các cơ sở dữ liệu SQL như MySQL, Oracle, và Microsoft SQL Server. Đây cũng là lý do vì sao SQL là ngôn ngữ truy vấn có cấu trúc.
    • Các nguồn dữ liệu bán cấu trúc (semi-structured data sources): Dạng dữ liệu này đã được tổ chức nhưng chưa thực sự đáp ứng điều kiện chuẩn hóa dữ liệu cơ bản (Normalization – 1NF, 2NF, 3NF, BCNF).  Sử dụng trường dữ liệu JSON để có thể giải phóng không gian của bảng cơ sở dữ liệu và giảm số lượng các bản ghi, dù vậy để data có cấu trúc thì DA vẫn cần có thêm các bước chuyển đổi dữ liệu. 
    • Các nguồn dữ liệu phi cấu trúc (unstructured data sources): Dạng dữ liệu phi cấu trúc là loại dữ liệu không có cấu trúc được xác định trước. Ví dụ: dữ liệu cảm biến trong ứng dụng Internet of Things (IoT), video và luồng âm thanh, hình ảnh và nội dung truyền thông xã hội như tweet hoặc bài đăng trên Facebook,…
  • Quá trình tải dữ liệu (data ingestion) qua nhiều giao thức như API, connectors, giúp đảm bảo luồng dữ liệu trôi chảy, đáp ứng tính chất không đồng nhất của các nguồn dữ liệu với đa dạng phương thức:
    • Batch ingestion (tải dữ liệu theo batch): phương thức nhập dữ liệu này hoạt động theo một lịch trình thời gian. Ví dụ: DE có thể thiết lập để hệ thống chạy trong đêm mỗi ngày nhằm truyền tải khối lượng lớn dữ liệu cùng một lúc. Các công cụ thường được sử dụng để nhập hàng loạt bao gồm Apache NiFi, Flume và các công cụ ETL truyền thống như Talend và Microsoft SSIS.
    • Streaming (dòng chảy dữ liệu nhằm tải dữ liệu sát nhất với thời gian thực): Phương thức này sẽ ngay lập tức đưa dữ liệu vào data lake khi record được tạo. Yếu tố sát nhất với thời gian thực rất quan trọng trong việc phát hiện gian lận hoặc các phân tích cần có ngay lập tức. Các công cụ có phương thức tải dữ liệu này có thể kể tới Apache Kafka và AWS Kinesis.
Data Lake Architecture

Kiến trúc Data Lake | Nguồn ảnh: Sách “Data Mesh” của O’Reilly

Thách thức lớn nhất của hướng tiếp cận này:

  • Các phương thức dẫn truyền dữ liệu theo batch hoặc theo luồng cũng yêu cầu năng lực và kiến thức chuyên môn cao của data engineer (DE) 
  • Kiến trúc data lake sẽ trở nên phức tạp và bị giảm giá trị nếu chất lượng dữ liệu kém và thiếu tin cậy. Dữ liệu phi cấu trúc cũng có thể dẫn tới một số vấn đề như dữ liệu không được quản lý, dữ liệu không thể sử dụng,… Quá trình này có thể kéo theo các dataset ngoài tầm kiểm soát và quản lý, mà cuối cùng có thể dẫn tới những model không đáng tin cậy, thiếu tính tái sử dụng và mang lại rất ít giá trị
  • Thiết kế kiến ​​trúc tập trung hóa (centralized) đòi hỏi đội ngũ chuyên gia Data Engineer với chuyên môn cao
  • Dòng chảy dữ liệu (data lineage – khi dữ liệu trở thành nguồn đầu vào cho báo cáo, dashboard và được sử dụng trong các phòng ban, workspace khác nhau) và các data visualization cũng rất khó để kiểm soát và theo dõi
  • Rủi ro lớn nhất của data lake chính là tính bảo mật và khả năng kiểm soát. Việc dữ liệu không được mô hình hóa ở bước đầu cũng tạo khó khăn trong việc xây dựng một mapping có ý nghĩa ngữ nghĩa giữa các data source khác nhau, dữ liệu khi được lưu trữ cũng không được xác định để lập danh mục và bảo mật, gây ra tình trạng “data swamp” (đầm lầy dữ liệu – lẫn lộn cả dữ liệu sử dụng được và dữ liệu “rác”).

Vậy data warehouse và data lake có gì khác nhau?

Data Lakes ArchitectureData Warehouse Architecture
Lưu trữData lakes lưu trữ tất cả dữ liệuData Warehouse lưu trữ dữ liệu đã được tổ chức theo schema
Dạng dữ liệuDữ liệu có cấu trúc (structured data)Dữ liệu bán cấu trúc (semi-structured data) Dữ liệu phi cấu trúc (unstructured data)Chủ yếu lưu trữ dữ liệu có cấu trúc dưới dạng table
SchemaSchema-on-reading (schema không được xác định trước)Schema-on-write (schema được xác định trước)
Quá trình xử lý dữ liệuELT (chuyển đổi dữ liệu sau khi dữ liệu được load từ data lake)ETL (chuyển đổi dữ liệu ngay trước khi dữ liệu được load)
Được tối ưu choKhả năng lưu trữ và xử lý linh hoạtHiệu suất truy vấn

Đọc thêm: 04 giai đoạn phân tích dữ liệu – Descriptive, Diagnostic, Predictive & Prescriptive Analytics

3. Giai đoạn thứ ba: Cloud Data Lake Architecture

Sự chuyển giao giữa giai đoạn phát triển thứ hai và thứ ba trong kiến trúc dữ liệu chính là từ việc lưu trữ dữ liệu trên một hệ thống cơ sở hạ tầng vật lý nội bộ tới lưu trữ dữ liệu trên điện toán đám mây – với đặc điểm là tính sẵn có của dữ liệu real-time và một số đặc điểm chung từ data warehouse và data lake:

  • Đám mây (cloud) là yếu tố quan trọng nhất với khả năng: tạo ra quyền truy cập vào nguồn tài nguyên mở gần như không giới hạn; tăng tính linh hoạt nhờ tận dụng tối đa công cụ trong hệ sinh thái đám mây (ví dụ AWS, GCP và Microsoft Azure); khả năng tính toán và lưu trữ riêng biệt; giảm thiểu chi phí cơ sở hạ tầng phần cứng – các doanh nghiệp sẽ chi trả dựa trên tài nguyên lưu trữ và xử lý dữ liệu, các phần mềm cung cấp và hệ thống quản lý, bảo mật dữ liệu.
Phân biệt các loại nhà kho dữ liệu

Phân biệt các loại nhà kho dữ liệu – Khóa học Data System – Trang bị tư duy chuyển đổi số và xây dựng hệ thống dữ liệu

  • Tăng khả năng thống nhất xử lý hàng loạt batch và luồng xử lý để chuyển đổi dữ liệu bằng các công cụ như Apache Beam.
  • Data warehouse và data lake được tập hợp trong một công nghệ: mở rộng data warehouse bằng cách tích hợp (1) khả năng truy xuất dữ liệu trong việc lồng ghép training mô hình machine learning, (2) vẫn đảm bảo xây dựng tính toàn vẹn, tính đổi mới theo thời điểm cập nhật của transaction data và (3) khả năng truy vấn vào hệ thống với các đặc điểm của kiến trúc data lake.
  • Solid state drives (SSDs): Không giống ổ đĩa cứng (HDDs), SSDs lưu trữ dữ liệu trên chip bộ nhớ flash, giúp tăng tốc độ lưu trữ, truy xuất và phân tích dữ liệu. 
  • Hệ thống node cho phép một lượng lớn người dùng có quyền truy vấn cùng một hệ thống dữ liệu, vào cùng một lúc mà không làm giảm hiệu suất. Việc tải dữ liệu và truy vấn có thể diễn ra đồng thời.
  • Khả năng phục hồi là khả năng kho dữ liệu tiếp tục hoạt động tự động khi thành phần, mạng hoặc thậm chí trung tâm dữ liệu bị lỗi. 

4. Giai đoạn thứ tư: Data Mesh Architecture

Kiến trúc data mesh là một cách tiếp cận tương đối mới và vẫn còn ở giai đoạn sơ khai đối với kiến ​​trúc dữ liệu nhằm tìm cách giải quyết một số thách thức đã được xác định trong các cấu ​​trúc tập trung (centralized) trước đó.

Data mesh là kiến ​​trúc dữ liệu được tổ chức theo kiểu microservice, được phân tán và định hướng phục vụ từng domain có thể tự truy vấn một cách độc lập theo các product và use case nghiệp vụ khác nhau. Trong đó, có thể hiểu microservice là dịch vụ vi mô – một ứng dụng dưới dạng tập hợp các dịch vụ nhỏ được ghép lại, mỗi dịch vụ chạy trong quy trình riêng và có thể triển khai độc lập với giao thức rất nhẹ.

Với kiến trúc data mesh, dữ liệu có thể giữ nguyên bản (raw) hoặc đã được chuyển đổi (transformed) theo hướng tập trung hóa (centralized) hoặc phi tập trung hóa (decentralized) và được phân quyền sở hữu cho từng domain. 

Mỗi domain sẽ tự chủ dữ liệu và tự thực hiện các kỹ thuật phân tích chéo khác nhau theo nhu cầu và bài toán của team mình, bao gồm việc tiếp nhận dữ liệu vận hành (operational data), mô hình hóa (modeling), thiết kế entities, schema (data design), lưu trữ (storage) và quản trị dữ liệu (governance) một cách hiệu quả như một tài sản riêng, đồng thời cung cấp các practices để mỗi domain có thể tự quản lý, khai thác dữ liệu một cách độc lập, dân chủ hóa. 

Quá trình chuyển đổi từ ứng dụng nguyên khối (monolith applications) sang ứng dụng vi dịch vụ (microservice applications) đã khiến các nhóm kỹ sư phần mềm buộc phải thay đổi vòng đời phát triển, cơ cấu tổ chức, động lực, kỹ năng và quản trị của họ. Đó là lúc vai trò của Product Manager xuất hiện để đảm bảo các ứng dụng sẽ giải quyết được các vấn đề thực sự của người dùng. Dữ liệu cần được sử dụng để hướng tới phục vụ và giải quyết các vấn đề, câu hỏi thực sự của người dùng (domain end-user) trong quá trình vận hành.

Concept này khác với data mart trong kiến trúc data warehouse ở chỗ: data mart được thiết kế phục vụ cho nhiều đội nhóm khác nhau, ví dụ data mart với grain là khách hàng (dim_customer) được phục vụ để xây dựng hệ thống báo cáo và dashboard cho cả team marketing và sales; trong khi với kiến trúc data mesh, dữ liệu sẽ được thiết kế riêng cho team sales, với nhiều domains, tùy thuộc theo lĩnh vực tập trung mà team hướng tới. 

Đọc thêm: Data democratization là gì? Làm thế nào để dân chủ hóa dữ liệu?

Ở nhiều công ty tại Việt Nam, một số domain như Operations hoặc Fraud & Risk cũng đã dần được trao quyền tự quyết định sử dụng data để phục vụ cho các công việc vận hành hàng ngày và tự xây dựng các mô hình nhằm detect dấu hiệu gian lận trong giao dịch, chấm điểm customer profile,… 

Một số đặc điểm của kiến trúc data mesh:

  • Data Products – Mỗi domain đóng vai trò sản xuất, sở hữu và tận dụng hiểu biết về lĩnh vực và các bài toán dữ liệu để đóng gói dữ liệu, thiết kế API (ví dụ: API của cổng thanh toán Stripe giải quyết bài toán thanh toán của E-Commerce, API của Trello giải quyết bài toán quản trị task của Human Resource,… Các API này có thể được truy cập từ các bộ phận khác.
  • Data Infrastructure – hệ thống công cụ và công nghệ giúp quản lý dữ liệu của một domain, tương tự dịch vụ được đóng gói cho ứng dụng phần mềm. 
  • Data Governance – bộ quy trình để quản lý chất lượng dữ liệu, quyền riêng tư và tính bảo mật của dữ liệu, bao gồm việc phân quyền truy cập dữ liệu cho người dùng, đóng gói tài liệu data dictionary, các policy đảm bảo data quality hoặc xây dựng các alert khi dữ liệu thừa, thiếu so với nguồn dữ liệu,… 
  • Mesh API – Mesh API hiển thị dữ liệu theo cấu trúc được xác định rõ ràng mà các domain và data product khác có thể sử dụng. Data Product APIs sẽ được tiếp nối bởi tài liệu HTTP REST APIs và danh mục dữ liệu lưới (mesh data catalog). 
Data Mesh Architecture

Kiến trúc Data Mesh | Nguồn ảnh: datamesh-architecture.com

Team Data lúc này bắt buộc phải làm việc linh hoạt, đa chức năng và nắm rõ dữ liệu cũng như nghiệp vụ của đa lĩnh vực đa phòng ban (cross-functional), bao gồm cả khối kinh doanh và khối công nghệ, tương tự một nhóm sản phẩm phần mềm đi theo định hướng dịch vụ hướng tới người dùng cuối cùng.

Đọc thêm: Data không phải đặc quyền của các công ty công nghệ

ví dụ Data Mesh Architecture

Thuật ngữ mesh xuất hiện khi các đội nhóm bộ phận sử dụng data product của các domain khác. Các domain được coi là “thượng nguồn” như domain Checkout sẽ cung cấp dữ liệu đơn đặt hàng hoặc dữ liệu khách hàng sẽ được các domain “hạ nguồn” – các domain mang tính chất vận hành của một doanh nghiệp – sử dụng, ví dụ như bộ phận Fulfillment, Shipment hoặc là input cho các hệ thống CRM và hệ thống phân tích khác | Nguồn: datamesh-architecture.com

Tạm kết

Xu hướng “dùng số liệu để đưa ra các quyết định chiến lược” đang ngày càng được ứng dụng vào nhiều doanh nghiệp, từ doanh nghiệp lớn cho tới các SME, Startup. Rất nhiều công ty đã nhận thức được tầm quan trọng của data và sớm đẩy mạnh việc xây dựng – lưu trữ – khai thác dữ liệu trong quản trị và vận hành doanh nghiệp. 

Tham khảo ngay khóa học Data System – Trang bị tư duy chuyển đổi và xây dựng hệ thống dữ liệu. Khóa học sẽ giúp bạn hiểu phương pháp xây dựng một hệ thống dữ liệu nội bộ, dựa trên nhu cầu và bài toán cụ thể của doanh nghiệp, hiểu cơ bản các công cụ hỗ trợ và hiểu các thách thức trong xây dựng/ vận hành hệ thống dữ liệu đó.

khóa học Data System

Khi dữ liệu ngày càng “nở ra” và mở rộng, doanh nghiệp cũng cần tìm tới những giải pháp làm việc với dữ liệu lớn, đòi hỏi các nhân sự cũng phải cần trang bị tư duy và kỹ năng làm việc với dữ liệu. Khóa học Data Analysis tại Tomorrow Marketers sẽ trang bị kỹ năng cần thiết phải có trong tương lai – kỹ năng xử lý, phân tích và trực quan hóa dữ liệu.

Khóa học Data Analysis

Tagged: