Saturday, December 14, 2013

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?

Với tiêu chí "Dài quá không đọc" (TL;DR), tôi chỉ đề cập sơ sơ vài nét chính dưới dạng Q&A.




1. Ở đâu ra Big Data?


Tất nhiên là khi có nhiều người cùng tham gia tương tác trên các dịch vụ, thì dữ liệu của các dịch vụ này sẽ lớn.

Việc này đồng nghĩa với việc các trang web đưa tin truyền thống hay trang web giới thiệu công ty/sản phẩm ít khi được xem là Big Data, bởi vì data ở đó rất nhỏ bé.

2. 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. 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...

3. 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.

4. 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.

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


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.

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.

6. Cần phải chuẩn bị gì cho sân chơi Big Data?


Tất nhiên là bạn phải có dữ liệu cực lớn trước. Tuy nhiên, nhiều công ty đã có sẵn rồi và họ cần một đội ngũ để làm và hoàn thiện nó (như công ty của mình là một ví dụ).

Với cá nhân mỗi người, cái cần chuẩn bị là tư tưởng mở, sẵn sàng học hỏi và lao vào công việc bằng tất đam mê.

Tiếp theo, sân chơi này không phải dành cho tất cả mọi người, bạn chỉ nên tham gia khi bạn có nền tảng tốt về hệ thống, về kiến trúc phần mềm. Bạn cũng cần phải search bằng tiếng Anh và đọc hàng trăm trang tài liệu tiếng Anh mỗi ngày làm việc (bạn chỉ có thể làm khi bạn hiểu rõ về nó mà thôi).

Thêm một điều đặc biệt nữa là phải đọc code của người khác mỗi ngày, bởi có nhiều thứ không có tài liệu, cách duy nhất để bạn hiểu được đó là mở code của người ta mà đọc. Rất nhiều code opensource về big data này cho bạn, cái chính là bạn cần phải biết mình đọc cái gì và cần hiểu cái gì...

Và điều cuối cùng là: Phải thật sự cẩn thận. Nhiều khi chỉ vì bạn lỡ xóa một cái gì đó mà tất cả mọi công sức sẽ đem đổ sông đổ biển.

Kết luận


Big data thật sự đang là thứ challenge cho tất cả mọi người đam mê, và trở thành một trong những ngành hot nhất hiện nay. Trong tương lai xa nó vẫn sẽ hot, bởi vì lúc nào người kinh doanh cũng cần phân tích mà. Tuy nhiên, sân chơi này chỉ dành cho một số ít người thật sự có đam mê.

Chúng tôi đang tuyển...


Bạn nào muốn tham gia vào lĩnh vực này, có thể nộp đơn vào công ty GNT Vietnam của tôi.

Ngoài ra, các bạn có thể hỏi tôi nhiều hơn về Big Data trên Group mới lập: https://www.facebook.com/groups/ask.bigdata/ hoặc https://plus.google.com/communities/117413572964133445398 hoặc xem các bài trên Facebook của tôi: https://www.facebook.com/nkimkha (Nếu thích thì các bạn có thể Follow, đừng kết bạn)

Thông tin về tuyển dụng DBA (làm công việc liên quan tới Big Data)




No comments:

Post a Comment

Biểu mẫu liên hệ

Name

Email *

Message *