Big Data và lựa chọn công nghệ Database

root

Well-Known Member
Big Data là cái gì?

"Big data" ngày nay có thể xem là một thuật ngữ "thời thượng" của giới công nghệ, bên cạnh những thuật ngữ như "cloud", "web apps",... Thế nhưng, bạn có biết big data thật sự là thế nào?





1. Data lớn như thế nào mới gọi là Big Data?
- Hãy nói về phương pháp đo độ lớn.
- Ví dụ:

  • Trong một bài viết như bài viết này, mỗi chữ cái chiếm 1byte, như vậy một bài tương đối dài sẽ chiếm khoảng 5KB (5*1024 byte).
  • Nếu như một trang web có khoảng hơn 1000 bài thì data của trang web đó khoảng 5MB, đó là một con số khá lớn cho một trang blog hoặc tin tức.
- Thông thường khi người ta đề cập tới Big Data, người ta thường nói tới data tới hàng Terabyte. Để dễ hình dung thì 5TB tương đương với hơn 1 tỷ bài theo cách tính của chúng ta. Đó quả thật là con số khổng lồ so với dung lượng RAM khoảng 16GB (phổ biến ở các server hiện nay).

- Nói thêm về những "ông lớn" như Google hay Facebook thì dữ liệu của họ sẽ lớn tới mức phải tính bằng Petabyte hoặc hơn nữa...

2. Xử lý Big Data là thế nào?
- Server thông thường chỉ có tối đa 16GB trên vùng RAM, và khi một người xem đọc một bài viết thì bài viết sẽ được server trả về từ RAM sẽ nhanh hơn rất nhiều so với trả về từ ổ đĩa.

- Thế nhưng data thì có tới hàng trăm GB, do đó cần phải có một
cơ chế caching thế nào cho việc truy xuất bài viết là nhanh nhất. Đó là mức thấp nhất của việc xử lý Big Data.

3. Tại sao phải quan tâm tới việc xử lý Big Data?

- Xuất phát từ một nhu cầu cực kỳ có ý nghĩa kinh doanh: Phân tích (Analysis) và Báo cáo (Reporting).

- Tại sao? Tại vì người ta muốn biết người xem muốn cái gì? Cái gì ở trang web hấp dẫn người ta nhất? Đâu là vị trí mà người xem dễ thấy nhất? Trang web của chúng ta có lỗi gì không? Và còn rất nhiều câu hỏi khác... Muốn trả lời được cần phải ghi lại các hành động của người xem và đem đi phân tích.

- Tuy nhiên, dữ liệu về hành động của người xem thật sự là khổng lồ. Thực tế cho thấy thì

  • khi trang web có lượng truy cập đồng thời chỉ 1000 người, thì dữ liệu access log đã ở mức 1GB/ngày.
  • Như vậy một năm sẽ là 365GB. 365GB cho một dịch vụ "nhỏ" chỉ khoảng 1000 truy cập đồng thời đó cũng là một con số khá lớn rồi...
- Đã vậy, mục tiêu lại phải trả lời những câu hỏi cực kỳ phức tạp như: "Cái gì ở trang web hấp dẫn người ta nhất?", như vậy cần phải tính toán và tổng hợp trên một dữ liệu khổng lồ kia, thì công việc sẽ phức tạp đến thế nào.

4. Sử dụng Database gì là thích hợp?

  • Data < 10GB: Nếu trang của bạn ít lượt truy cập hoặc không cần phân tích, hãy nghĩ một cách đơn giản và thiết thực: MySQL đã là đủ. Nếu bạn làm tốt, MySQL có thể chịu được data trên 10GB.
  • Data < 1TB: Nếu trang của bạn lớn, nhưng không cần phân tích, hoặc chỉ phân tích đơn giản, dữ liệu "nhỏ" ở mức khoảng dưới 1TB, tôi nghĩ những thứ NoSQL như MongoDB rất dễ tiếp cận và cũng hiệu quả.
  • Còn nếu dịch vụ của bạn cực kỳ lớn, số lượng user tới hàng triệu, phân tích chiến lược phức tạp,... lúc đó hãy nghĩ tới Big Data thật sự, nổi nhất hiện nay vẫn là Hadoop và một loạt công nghệ liên quan như HDFS, Hive, Pig,... Tất nhiên, chi phí để setup và làm quen với những thứ đó không phải là ít.
 
Top