Như chúng ta đã biết Data lake cho phép lưu trữ tất cả các loại dữ liệu từ bất kể các nguồn dữ liệu nào, nó cho phép chúng ta lưu trữ dữ liệu từ các hệ thống IoT cũng như tiệm cận đến việc truy cập dữ liệu theo thời gian thực. Qua bài viết về Data Lake lần trước chúng ta cũng thấy được cả những điểm khác biệt quan trọng giữa Data Lake và Data warehouse đặc biệt là đối tượng sử dụng Data lake chủ yếu là các chuyên gia dữ liệu với mục đích phân tích dữ liệu nâng cao. Trong bài viết này chúng ta sẽ cùng xem xét những vấn đề cần phải quan tâm khi xây dựng triển khai một Data Lake
Các vùng dữ liệu quan trọng trong một Data Lake
Mặc dù Data lake cho phép lưu trữ tất cả các dữ liệu dưới dạng thô (raw data) nhưng một hệ thống trong Data lake cũng được thiết kế thành nhiều vùng với thiết kế mức cao để đáp ứng các mục đích sử dụng của một Data Lake. Chúng ta sẽ cùng xem xét hình vẽ dưới đây để hình dung được các vùng trong một Data Lake và mục đích của các đầu ra dữ liệu theo các mục đích khác nhau.
Hình 1 – Các vùng dữ liệu mức cao trong Data lake
- Vùng dữ liệu thô (data raw): như chính tên của nó, vùng dữ liệu thô được sử dụng để lưu trữ cho các dữ liệu mới được thu thập theo các định dạng tự nhiên của chúng. Đây là một bản sao chính xác của dữ liệu từ các nguồn, thường là theo một định dạng dữ liệu đã được chuẩn hóa và bất biến. Lịch sử của dữ liệu được lưu trữ vô thời hạn trong vùng dữ liệu thô không chỉ đáp ứng các yêu cầu trong tương lai mà còn để tái tạo lại dữ liệu.
- Vùng dữ liệu tạm thời (Transient zone): vùng dữ liệu tạm thời được lựa chọn sử dụng khi việc xác thực chất lượng dữ liệu được yêu cầu trước khi dữ liệu có thể được đưa vào vùng dữ liệu thô. Nó rất hữu ích khi chúng ta tạm thời cần tách biệt một vùng dữ liệu mới trong data lake.
- Vùng dữ liệu gốc (master data): vùng này dùng để lưu trữ các dữ liệu tham chiếu để hỗ trợ các hoạt động phân tích dữ liệu.
- Vùng dữ liệu người dùng (user drop zone): vùng này cho phép người dùng để các dữ liệu mà được duy trì theo những cách thủ công.
- Vùng dữ liệu đã được phân đoạn (Staged data zone): vùng dữ liệu này được sử dụng và chọn lựa khi dữ liệu đã được tạo lập cho các mục đích cụ thể. Đây như một vùng lưu trữ trung gian để tạo thuận lợi cho quá trình tích hợp dữ liệu.
- Vùng dữ liệu thô đã được chuẩn hóa (Standarized raw data zone): vùng này được sử dụng để lưu trữ các dữ liệu đã được chuẩn hóa và có cấu trúc nhưng ở vẫn ở một dạng dữ liệu thô.
- Dữ liệu lưu trữ (archive data): vùng này chứa những dữ liệu mà được tải xuống từ những data warehouse hoặc những hệ thống khác. Như là một kho lưu trữ sẵn sàng hoạt động, dữ liệu có sẵn để phục vụ các truy vấn.
- Hộp phân tích (analytics sandbox): hộp phân tích là một vùng để tạo thuận lợi cho cho các hoạt động liên quan đến khoa học dữ liệu và khai phá dữ liệu.
- Vùng dữ liệu được sắp xếp (Curated data zone): vùng này là vùng cho các dữ liệu đã được làm sạch, được chuyển đổi thành cần thiết, có cấu trúc cho việc phân phối tối ưu. Cấu trúc dữ liệu ở đây có thể là các tệp lớn, rộng, hoặc có cấu trúc như một lược đồ/định dạng chuẩn hóa lại.
Các nguyên lý khi thiết kế các vùng dữ liệu trong Data Lake
1) Khi thiết kế vùng dữ liệu thô tập trung vào hiệu suất ghi dữ liệu một cách tối ưu.
2) Khi thiết kế vùng dữ liệu được sắp xếp thì tập trung vào khả năng dễ dàng để khai phá dữ liệu và tối ưu trong thu hồi dữ liệu.
3) Khi tổ chức dữ liệu trong các vùng nói trên, tập trung và cân nhắc các vấn đề như sau:
- Các ranh giới về bảo mật;
- Phân vùng thời gian;
- Chủ đề các khu vực;
- Mức độ bảo mật;
- Xác suất truy cập dữ liệu;
- Chính sách lưu trữ dữ liệu;
- Người sở hữu/người quản lý/chuyên gia dữ liệu về các vấn đề.
Sử dụng danh mục dữ liệu để quản lý các meta data, gắn thẻ và phân loại dữ liệu. Ngoài ra, nên thêm vào các metadata cho các dữ liệu nếu như có thể. Bên cạnh đó quyết định về định dạng dữ liệu cũng là một lựa chọn rất quan trọng ví dụ như các định dạng CVS (comma-seperated) thì thuận tiện và dễ sử dụng, nhưng hiệu suất sẽ bị thay đổi với các tập dữ liệu lớn và sự thay đổi các lược đồ sẽ khó khăn hơn để quản lý. Nên cân nhắc về các định dạng của các dữ liệu như sau:
- Tương thích với các hệ thống upstream và downstream;
- Kích thước của file và mức độ nén;
- Các loại dữ liệu được hỗ trợ;
- Xử lý sự thay đổi của các lược đồ theo thời gian;
- Tiện lợi, dể sử dụng, dễ đọc;
Cân nhắc khi muốn triển khai thành công Data Lake với công nghệ điện toán đám mây
Khi triển khai Data Lake trên nền công nghệ của điện toán đám mây (cloud computing) chúng ta cần phải cân nhắc một số vấn đề liên quan đến các dịch vụ của đám mây (cloud services) cụ thể như sau:
- Loại lưu trữ: một data lake thì giống như một kiến trúc dữ liệu mức khái niệm và nó không chỉ ra một công nghệ cụ thể nào. Các công nghệ áp dụng cho data lake thì rất nhiều nghĩa là chúng ta có thể sử dụng nhiều loại lưu trữ khác nhau, với nhiều đặc điểm khác nhau. Việc triển khai data lake phổ biến nhất thường sử dụng HDFS (Hadoop Distributed File System), hoặc lưu trữ đối tượng như (Azue Blob Storage hoặc Amazon S3). Một số lựa chọn cho Data lake mà ít được lựa chọn như là Cơ sở dữ liệu quan hệ (SQL server, Azure SQL Database) hoặc Cơ sở dữ liệu NoSQL (như Azure Cosmos DB).
b) Một Data lake hay nhiều Data lake: các tổ chức/doanh nghiệp sẽ có thể có một data lake hay nhiều data lake và vấn đề họ cần phải quan tâm khi lựa chọn việc này đó chính là các vấn đề về bảo mật, chỉnh sửa, chia sẻ, các đối tượng dữ liệu quan trọng thì được cân nhắc khi triển khai trên môi trường có nhiều data lake (multi-lake). Một vài mức độ của trùng lặp dữ liệu có thể được bỏ qua trong môi trường có nhiều hơn một data lake để đáp ứng các mục tiêu khác nhau.
- Khả năng bảo mật: các nền tảng công nghệ khác nhau sẽ thực việc bảo mật khác nhau. Ví dụ như với Azure Data Lake sẽ thực hiện bảo mật theo cơ chế hình cây dựa trên danh sách truy cập, những loại như vậy thì liên tục phát triển trong điện toán đám mây. Các dữ liệu rõ ràng, meta data, thẻ và khả năng phân loại dữ liệu tốt sẽ giúp người dùng dễ dàng sử dụng dữ liệu trong một Data lake.
d) Danh mục dữ liệu, metadata và thẻ: một danh mục dữ liệu là một thành phần quan trọng trong khai phá dữ liệu. Việc thiết kế một danh mục dữ liệu tốt chẳng những giống như có một từ điện về dữ liệu mà còn hỗ trợ cho việc xem xét lại dữ liệu, truy cập dữ liệu và hồ sơ dữ liệu. Nếu người sử dụng không hiểu các dữ liệu đã được cung cấp, họ sẽ không thể tạo lập ra các tệp dữ liệu mà có thể quản lý cũng như giá trị của kiến trúc data lake.
- Sự mềm dẻo: một trong những đặc điểm đầy sức mạnh của việc phát triển dựa trên nền tảng điện toán đám mây đó là sựu mềm dẻo, ở đây đang nói đến sử mở rộng tài nguyên hoặc thu hẹp dựa trên yêu cầu. Ở đây đang nói đến khia cạnh tiết kiệm chi phí triển khai khi một số năng lực xử lý của hệ thống chưa cần thiết. Khi triển khai data lake chúng ta cần quan tâm đế khả năng mở rộng độc lập và tính linh hoạt của hệ thống.
- Công cụ truy cập của người dùng: một trong những tiêu chí và chìa khóa của thành công cho việc triển khai phân tích dữ liệu là sự chấp nhận của người dùng. Một trong những mong đợi cho việc đáp ứng và sự chấp nhận của người dùng đó chính là một công cụ người dùng linh thoạt để sắp xếp dữ liệu. Việc triển khai một Data lake thành công là việc truy cập dữ liệu từ những hệ thống tự động một cách dễ dàng từ các công cụ đơn giản như excel, power BI, hay máy tính của các chuyên gia.
g) Tích hợp với Hadoop: một Data lake nên có khả năng giống như một tầng lưu trữ cho các dữ án mã nguồn mở của Apache như là Spark, Hive, Kafka hoặc những dự án khác. Dù bạn có thể không cần để khả năng của Hadoop trong thời gian đầu, tuy nhiên nếu bạn biết về các khả năng này nó sẽ là một thành phần quan trọng của các kế hoạch trong tương lai.
h) Tích hợp với data warehouse: với phần lớn các công ty việc lựa chọn data lake hay data warehouse không phải một quyết định. Thay vào đó một cách tiếp cận mang xu hướng kết hợp hai giải pháp sẽ mang lại nhiều hiệu quả hơn. Phần lớn chúng ta sẽ thấy hai giải pháp data lake tích hợp với data warehouse: như là dữ liệu được chuyển từ data lake sang data warehouse hay khả năng đưa ra truy vấn độc lập và dữ liệu được trả về từ cả hai.
- Khả năng phục hồi sau thảm họa: là một yêu cầu khi quan trọng cho việc phục hồi dữ liệu từ hệ thống sau khi hệ thống và dữ liệu bị phá hủy bởi thiên tai, lỗi hệ thống hoặc do lỗi của con người.
Kết luận
Việc xây dựng các Data lake đang trở thành một xu hướng của các doanh nghiệp, họ cần các nền tảng và giải pháp giúp lưu trữ toàn bộ mọi dữ liệu sinh ra từ các hệ thống, tổ chức, hoạt động trong quá trình vận hành. Lựa chọn công nghệ như nào để tiết kiệm chi phí, những khía cạnh cần quan tâm khi triển khai Data lake là những vấn đề bài viết đề cập đến. Mặc dù mới chỉ ở những khía cạnh cơ bản nhưng bài viết đã tổng hợp và đúc kết các kinh nghiệm triển khai của nhiều tổ chức, của các chuyên gia hệ thống để giúp người đọc nắm bắt được những thành phần cơ bản trong một Data Lake, các nguyên tắc quan trọng và việc cân nhắc triển khai Data lake với nền tảng công nghệ của điện toán đám mây. Tác giả hi vọng người đọc sẽ thu được nhiều kinh nghiệm quý báu và áp dụng trong việc triển khai Data Lake tại các tổ chức, doanh nghiệp, các cơ quan nhà nước trong thời gian tới.
Tài liệu tham khảo
[1] Dixon, James. "Pentaho, Hadoop, and Data Lakes". James Dixon’s Blog.
[2] Paulraj, Ponniah, (2010). Data warehousing fundamentals for IT professionals. Ponniah, Paulraj. (2nd ed.). Hoboken, N.J.: John Wiley & Sons. ISBN 9780470462072. OCLC 662453070.
[3] Blue granite, (June, 2018). Data lake in Modern Data Architecture.
[4] https://blog.trginternational.com (truy cập ngày 11 tháng 9 năm 2018)
[5] https://datafloq.com/ (truy cập ngày 12 tháng 9 năm 2018)
[6] https://cdn2.hubspot.net (truy cập ngày 12 tháng 9 năm 2018)
Đặng Tùng Anh