This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Hiển thị các bài đăng có nhãn Điện toán đám mây. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Điện toán đám mây. Hiển thị tất cả bài đăng

Thứ Ba, 26 tháng 1, 2016

7 việc cần để bắt đầu với Big Data


Bài này với mục tiêu đưa ra vài tiêu chí để người đọc có thể tiếp cận vào lĩnh vực Big Data/Analytic (đọc thêm bài viết này để biết Big Data là gì).

Thứ nhất: Thu thập dữ liệu


Khoan hãy nói về các mục tiêu khác, việc đầu tiên là bạn phải thu thập dữ liệu cái đã. Công việc này nghe có vẻ dễ dàng nhưng cực kỳ quan trọng. Bản thân chữ "big data" có nghĩa đơn giản là dữ liệu lớn, do đó bạn cần phải có dữ liệu, mà phải là thật nhiều dữ liệu cơ. Việc thu thập dữ liệu sẽ ảnh hưởng tới thông tin mà bạn thu được sau này.
Tất nhiên, bạn không cần phải giữ toàn bộ dữ liệu trong một thời gian dài, nhưng bạn sẽ không biết bạn có thể có dữ liệu nào và cái nào mới cần thiết trước khi bạn bắt đầu thu thập dữ liệu. Một nguyên lý cơ bản là: Càng nhiều dữ liệu có ích, thì bạn có thể phân tích nhiều khía cạnh khác nhau của dữ liệu.
Rất may, chúng ta có được một "ông trùm" trong lĩnh vực lưu dữ liệu lớn và xử lý dữ liệu lớn này. Tên nó là Hadoop. Hoàn toàn nguồn mở. Lưu đủ thứ dữ liệu, từ dạng web server log, thông tin monitor,... đến email và tweet, từ có cấu trúc đến không có cấu trúc,...
Một khi bạn bắt đầu với Hadoop, bạn sẽ gặp nhiều thành phần khác nữa, và bạn phải nghiên cứu nhiều. Nhưng đừng quên "ông trùm" Hadoop này là được.

Thứ hai: Gom dữ liệu thành nhóm theo logic

Khi có dữ liệu, hãy ngay lập tức tìm cách phân tích dữ liệu này, để xem thử chúng nó có liên quan gì với nhau. Nếu chúng nó có liên quan mật thiết, hãy gom thành một nhóm, đưa vào trong các bucket chung.
Một vài câu hỏi mà bạn có thể đặt ra: Dữ liệu nào có tiềm năng giúp ích cho business? Hay có thể phân tích và tìm ra các ưu thế cạnh tranh? Hoặc giúp bạn phục vụ khách hàng tốt hơn?... Sau khi phân nhóm và xếp độ ưu tiên, bạn sẽ dễ dàng nhận ra dữ liệu nào mà bạn muốn phân tích.
Một từ khoá mà bạn nên biết đó là Map Reduce. Hãy thử tìm hiểu về Map Reduce đi, nếu bạn còn lơ mơ về nó.

Thứ ba: Đừng vứt bỏ hệ thống hiện tại

Đây là suy nghĩ thường thấy của nhiều người, khi họ đọc và biết về hệ thống Big Data, họ choáng ngợp về khả năng của việc xử lý Big Data và về thông tin mà họ có được. Nó nhiều chiều hơn và đầy đủ tất cả thông tin mà họ cần. Tuy nhiên, thành thật mà nói thì nó không thể thay thế được các hệ thống đơn giản mà họ đã xây dựng trước đó, với một mục tiêu báo cáo doanh thu hay gì gì đó.
Thật khó để đưa ra một lý do thuyết phục vấn đề này, nhưng việc đó không quan trọng. Quan trọng là để hệ thống Big Data thay thế được hệ thống hiện tại, bạn phải tích hợp nó với hệ thống hiện tại, và việc này thực tế phải tốn thời gian và công sức rất nhiều. Nhưng lợi ích thì được cái gì? Vậy nên hãy duy trì hệ thống hiện tại và phát triển thêm hệ thống Big Data bên cạnh đó để phân tích, và chỉ dùng để phân tích những thứ mà hệ thống cũ không thể phân tích được mà thôi.

Thứ tư: Hãy nghĩ đến việc sử dụng cloud

Thay vì lo lắng và tính toán xem bạn sẽ xây dựng infrastructure thế nào cho phù hợp với việc xử lý và phân tích Big Data, hãy sử dụng các hệ thống cloud có sẵn các công cụ Map Reduce. Việc này sẽ tiết kiệm rất nhiều thời gian và công sức để setup, hơn nữa việc mở rộng lại dễ dàng.
Hiện nay, các hệ thống cloud lớn đều hỗ trợ sẵn Map Reduce mà Amazon Web Service và Google AppEngine là ví dụ.

Thứ năm: Tự cung cấp dịch vụ

Việc này là cực kỳ quan trọng đối với những người làm business, những người thật sự có được lợi ích lớn khi sử dụng Big Data. Hãy cung cấp cho họ một giao diện dễ sử dụng, hỗ trợ kéo thả, và tự họ có thể tuỳ biến các chiều và góc nhìn data.
Nếu bạn thấy lạ lẫm, hãy thử tìm hiểu về Pivot Table. Còn nếu bạn muốn sử dụng một công cụ hoàn chỉnh luôn thì luôn có Pentaho, Jasper, Tableau,... Phần lớn chúng có bản community (hoàn toàn free) để bạn xài thử, và cũng có bản Enterprise.

Thứ sáu: Hãy nghĩ về quản trị dữ liệu (data governance)

Bạn đang làm (hoặc nghĩ) về Big Data, điều chắc chắn rằng dữ liệu của bạn sẽ trở nên khổng lồ nhanh chóng, khi bắt đầu thực hiện chiến lược phân tích Big Data này. Bạn có 2 con đường để khắc phục vấn đề này: 1- Tiết kiệm dung lượng, bằng cách giảm trùng lắp, nén dữ liệu,... 2- Đầu tư vào thiết bị để nâng cao khả năng lưu trữ và xử lý của hệ thống. Và dù bạn chọn cách nào hoặc kết hợp cả hai, thì bạn cần phải suy tính càng sớm càng tốt.
Thông thường, với một sản phẩm bình thường, bạn sẽ tiếp cận theo hướng làm một bản thử nghiệm, ra được vài kết quả đầu tiên, và dùng nó để thuyết phục mọi người tiếp tục đầu tư. Hệ quả là sẽ tốn rất nhiều chi phí để chuyển đổi và thiết kế lại, hoặc là bạn phải chấp nhận sử dụng một hệ thống không hoàn hảo như mong đợi.
Cách tốt nhất nên là nghĩ về data governance ngay từ đầu, thuyết phục các bộ phận business và infrastructure để xây dựng hệ thống tốt, đáp ứng nhu cầu phân tích tối đa. Và thiết kế kiến trúc sao cho thích hợp và tiết kiệm nhất.

Thứ bảy: Đừng làm một mình

Đọc đến đây, chắc các bạn cũng hiểu vì sao không được làm một mình. Big Data là một vấn đề lớn, lợi ích không mang lại một sớm một chiều, mà cần có sự kiên nhẫn lâu dài, hướng tới mục tiêu lớn. Kết quả thu được lại phục vụ cho các mục đích kinh doanh, phân tích các vấn đề hiện tại, và định hướng tương lai của doanh nghiệp. Do đó, luôn cần một sự đồng bộ giữa các bộ phận.
Nếu bạn là start-up? Hãy cân nhắc kỹ việc tự xây dựng hệ thống của mình với việc sử dụng các phần mềm sẵn có. Đừng nghĩ rằng tự xây dựng thì giá sẽ rẻ hơn thuê/mua các phần mềm/dịch vụ sẵn có. Thực tế, chi phí để tự xây dựng sẽ lớn hơn nhiều.

Big Data #21 – Tổng kết và định hướng tiếp theo


Leave a comment
 
 
 
 
 
 
5 Votes

Hành trình đến với big data:
  • Lên kế hoạch đọc các tài liệu của Apache
  • Xem các khóa học của Pluralsight
  • Tìm hiểu HortonWorks Sandbox
  • Bắt tay vào tạo các buổi seminar về Big Data
  • Viết bài về Big Data trên các trang blog.
(Theo http://blogSQLAuthority.com

Big Data #20 – Các tài nguyên tham khảo – Cách bắt đầu với Big Data?



Leave a comment
 
 
 
 
 
 
5 Votes


Quay trở lại với câu hỏi ban đầu khi tìm hiểu big data.
“I muốn học về big data. Tôi có thể học nó ở đâu?”
Đây thật sự là 1 câu hỏi lớn và có rất nhiều tài nguyên để tìm hiểu về big data và khó khăn thật sự là lựa chọn 1 tài nguyên để học. Do đó tôi liệt kê ra đây một số nguồn tài nguyên quan trọng có liên quan đến big data.
Học từ Pluralsight
Pluralsight là tổ chức dẫn đầu về đào tạo trực tuyến chất lượng cao cho các nhà phát triển. Nó có các khóa học về big data và tôi học về big data với sự trợ giúp của Pluralsight. Đây là 1 vài khóa học có liên quan trực tiếp đến big data.
Khuyến khích các bạn bắt đầu với khóa học video này vì đây là các nguyên tắc cơ bản để học big data.
Học từ Apache
Nguồn tài nguyên của Apache là điểm duy nhất các tài nguyên học tập được xác thực nhất. Nếu bạn muốn học nền tảng cơ bản và chuyên sâu về các khía cạnh của big data, tôi tin bạn phải hiểu các khái niệm khác nhau trong thư viện của Apache. Tôi rất ấn tượng với tài liệu hướng dẫn và cá nhân tôi tham khảo nó mỗi ngày khi làm việc với big data. Tôi rất khuyến khích bạn đánh dấu các liên kết sau đây để học về big data.
  • Hadoop – Dự án Apache Hadoop phát triển phần mềm nguồn mở cho tính toán phân tán đáng tin cậy và khả năng mở rộng.
  • Ambari: Một công cụ nền web để quản lý, giám sát Apache Hadoop cluster gồm hỗ trợ cho Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, Zookeeper, Oozie, Pig, và Sqoop. Ambari cũng cung cấp dashboard để xem sức khỏe của cluster như bản đồ nhiệt và khả năng xem các ứng dụng MapReduce, Pig, và Hive trực quan cùng với các tính năng chuẩn đoán các đặc tính hiệu suất trong giao diện thân thiện.
  • Avro: Một hệ thống đồng bộ dữ liệu.
  • Cassandra: CSDL multi-master khả chuyển, tính sẵn sàng cao.
  • Chukwa: Một hệ thống thu thập dữ liệu để quản lý các hệ thống phân tán lớn.
  • HBase: Một CSDL phân tán, khả chuyển hỗ trợ dữ liệu có cấu trúc cho các bảng lớn.
  • Hive: Một hạ tầng kho dữ liệu (data warehouse) cung cấp tổng hợp dữ liệu và truy vấn ad hoc.
  • Mahout: Một thư viện khai thác dữ liệu (data mining) và máy học (machine learning) khả chuyển.
  • Pig: Một ngôn ngữ luồn dữ liệu (data-flow) cấp cao và khung thực thi cho tính toán song song.
  • Zookeeper: Một dịch vụ phối hợp hiệu suất cao cho các ứng dụng phân tán.
Học từ các nhà phân phối
Một trong những vấn đề lớn nhất khi học big data là tạo môi trường. Mỗi nhà phân phối big data có môi trường khác nhau và có nhiều thứ cần để tạo nên nền tảng big data. Nhiều người không bắt đầu big data vì họ e ngại các tài nguyên cần thiết để tạo môi trường. Hortonworks đã tạo môi trường học tập tuyệt vời. Họ tạo Sandbox với mọi thứ 1 người cần để học big data và cũng cung cấp các bài tự học rất tốt kèm theo. Sandbox đi kèm với hàng ta các bài hướng dẫn thực hành tự học hướng dẫn bạn cơ bản về Hadoop, chứa Hortonworks Data Platform.
Tôi nghĩ Hortonworks rất tuyệt vời khi xây dựng Sandbox và Tutorial.
Học từ sách
Có vài quyển sách tốt có thể tham khảo để học về big data.
Nếu tìm kiếm trên Amazon chắc có hàng triệu cuốn sách nhưng tôi nghĩ 3 cuốn trên là cần thiết. Khi đã đọc xong 3 cuốn sách trên, bạn sẽ có một ý tưởng rõ ràng về các bước tiếp theo nên làm trong loạt bài này là gì. Bạn có đủ khả năng để đưa ra quyết định đúng đắn cho mình.

Big Data #19 – Cách trở thành nhà khoa học về dữ liệu (data scientist) và học về khoa học dữ liệu



Leave a comment
 
 
 
 
 
 
3 Votes

Data Scientist (nhà khoa học dữ liệu) là 1 từ mới, mọi người dường như muốn trở thành data scientist. Duyệt qua 1 vài chủ đề chính liên quan đến data scientist. Trước hết chúng ta sẽ hiểu daa scientist là gì?
Trong thế giới mới của big data, tôi thấy nhiều người muốn trở thành data scientist và có nhiều người đã tuyên bố họ là data scientist.
Data scientist là gì?
Data scientists là các chuyên gia (expert) những người hiểu các khía cạnh khác nhau của kinh doanh và biết chiến lượt dữ liệu nào để đạt được mục tiêu kinh doanh. Họ có 1 nền tảng vững chắc các thuật toán dữ liệu khác nhau, mô hình và phương pháp thống kê.
Data scientist làm gì?

Data scientist hiểu dữ liệu rất tốt. Họ dùng các thuật toán dữ liệu và xây dựng các xu hướng từ dữ liệu có sẵn. Họ là những nghệ sĩ cả trang của những người phân tích máy tính. Họ xem xét dữ liệu truyền thống cũng như khám phá các cách mới khác nhau để xem xét dữ liệu.
Data scientist không đợi để xây dựng các giải pháp từ dữ liệu có sẵn. Họ suy nghĩ sáng tạo, họ nghĩ trước khi dữ liệu nhập vào hệ thống. Data scientist là những chuyên gia có tầm nhìn xa những người hiểu được nhu cầu kinh doanh và kế hoạch trước thời hạn, điều này giúp xây dựng các giải pháp với tốc độ nhanh chóng.
Bên cạnh đó là chuyên gia dữ liệu (data expert). Đặc điểm chung của data scientist là “tò mò” (curiosity). Họ luôn tự hỏi về những gì họ có thể nhận được từ dữ liệu hiện có và cách nhận được tối đa từ dữ liệu tương lai.
Data scientist tự hỏi với dữ liệu, những thứ đi vượt qua công việc của data analysist hoặc business analysist.
Các kỹ năng cần thiết cho data scientist
Một vài kỹ năng mà data scientist phải có.
  • Kỹ năng chuyên nghiệp với các công cụ thống kê như SAS, Excel, R,…
  • Hiểu các mô hình toán học.
  • Thành thạo thực hành với các công cụ trực quan như Tableau, PowerPivots, D3,…
  • Kỹ năng phân tích để hiểu nhu cầu kinh doanh.
  • Kỹ năng giao tiếp
Về mặt công nghệ, bất kỳ data scientist nên biết cơ bản các công nghệ như Hadoop, Cloudera cũng như toàn bộ hệ sinh thái của chúng (ngôn ngữ lập trình, các công cụ phân tích và trực quan hóa,….)
Nhờ rằng để trở thành data scientist thành công, một yêu cầu là phải có kỹ năng tuyệt vời, chỉ  có 1 bằng cấp trong 1 lĩnh vực giáo dục sẽ không đủ.
Lưu ý cuối cùng
Data scientist thật sự là công việc rất thú vị. Theo nghiên cứu, không đủ data scientist trên thế giới để xử lý bùng nổ dữ liệu hiện tại. Trong tương lai gần, dữ liệu sẽ mở rộng theo cấp số nhân, và nhu cầu các data scientist sẽ tăng lên cùng với nó.

Big Data #18 – Cơ bản về phân tích dữ liệu lớn (big data)



Leave a comment
 
 
 
 
 
 
1 Vote

Khi bạn có nhiều dữ liệu xung quan, điều đầu tiên cần nghĩ đến là gì?
“Tất cả dữ liệu có nghĩa là gì?”
Chính xác – tôi cũng có cùng suy nghĩ như vậy. Tôi luôn muốn biết tất cả dữ liệu có nghĩa là gì. Hầu hết các dự án big data đều được xây dựng để truy xuất các thông minh khác nhau mà tất cả dữ liệu chứa đựng. Lấy ví dụ Facebook. Khi tôi nhìn danh sách bạn bè của Facebook, tôi luôn muốn hỏi nhiều câu hỏi như –
  • Nhiều bạn bè của tôi có 1 ngày sinh nhật vào 1 ngày nào đó?
  • Bộ phim yêu thích nhất của hầu hết bạn bè của tôi là gì để tôi có thể nói về nó và tham gia cùng họ?
  • Bạn bè tôi thích đi du lịch đến những nơi nào nhất?
  • Bạn bè của tôi ở Anh và Mỹ không thích điều gì để khi đến du lịch, tôi không làm điều đó?
Có rất nhiều câu hỏi tôi có thể nghĩ đến. Điều này cho thấy điều quan trọng để phân tích big data như thế nào.
Có 1 vài loại phân tích được liệt kê dưới đây có thể dùng với big data.
(continue…)

Big Data #17 – Tương tác với Hadoop – Sqoop là gì? – Zookeeper là gì?


Có 2 thành phần quan trọng nhất nên học khi học về tương tác với Hadoop – Sqoop và Zookper.
Sqoop là gì?
Hầu hết các công ty lưu dữ liệu trong RDBMS và các giải pháp kho dữ liệu khác. Họ cần 1 cách để di chuyển dữ liệu vào Hadoop để làm các xử lý khác nhau và trả kết quả trở về RDBMS từ Hadoop. Sự di chuyển dữ liệu có thể xảy ra trong thời gian thực (real time) hoặc tại nhiều thời điểm (interval) khác nhau. Chúng ta cần 1 công cụ giúp di chuyển dữ liệu từ SQL sang Hadoop và từ Hadoop sang SQL. Sqoop (SQL to Hadoop) là 1 công cụ như vậy, dùng trích xuất (extract) dữ liệu từ non-Hadoop và chuyển đổi (transform) chúng vào định dạng mà Hadoop có thể dùng và sau đó nạp (load) chúng vào HDFS. Cơ bản nó là công cụ ETL (Extracts, Transform và Load) từ SQL vào Hadoop. Điểm hay là nó trích xuất (extract) dữ liệu từ Hadoop và nạp (load) chúng vào Non-SQL (hoặc RDBMS). Cơ bản, Sqoop là 1 công cụ dòng lệnh làm SQL thành Hadoop và Hadoop thành SQL. Nó là 1 trình thông dịch dòng lệnh. Nó tạo MapReduce job đằng sau để import dữ liệu từ CSDL bên ngoài vào HDFS. Nó rất hiệu quả và dễ học.
Sqoop
Zookeeper là gì?
Zookeeper

Zookeeper là 1 dịch vụ tập trung để duy trì thông tin cấu hình, đặt tên, cung cấp sự đồng bộ phân tán , và cung cấp các dịch vụ nhóm. Nói cách khác, Zookeeper là 1 dịch vụ đồng bộ hóa nhân rộng (replicated synchronization service) với sự nhất quán cuối cùng (eventual consistency). Nói đơn giản – trong Hadoop cluster có nhiều nodes khác nhau và 1 node là master. Giả sử master node lỗi với bất kỳ lý do gì. Trong trường hợp này, vai trò của master node được chuyển cho 1 node khác. Vai trò chính của master node là quản lý việc ghi (writer) theo thứ tự. Zookeeper sẽ gán mater node mới và đảm bảo rằng Hadoop cluster thực hiện tiếp xử lý mà không gặp vấn đề. Zookeeper là phương pháp phối hợp tất cả các yếu tố của hệ thống phân tán của Hadoop. Dưới đây là 1 vài nhiệm vụ mà Zookeeper chịu trách nhiệm.
  • Zookeeper quản lý toàn bộ quy trình (workflow) việc khởi động (start) và dừng (stop) các nodes khác nhau trong cluster của Hadoop.
  • Trong Hadoop cluster khi bất kỳ xử lý nào cần cấu hình để hoàn thành tác vụ. Zookeeper đảm bảo node đó được cấu hình nhất quán.
  • Trong trường hợp master node lỗi, Zookeeper có thể gán master node mới và đảm bảo cluster làm việc bình thường.
(Theo http://blog.SQLAuthority.com) – Nguồn: dinhnn.com

Big Data #16 – Tương tác với Hadoop – PIG là gì? – PIG Latin là gì?



Leave a comment
 
 
 
 
 
 
3 Votes

Yahoo bắt đầu làm việc với Pig cho các triển khai ứng dụng của họ trên Hadoop. Mục tiêu của Yahoo là quản lý dữ liệu không cấu trúc.
Pig là gì và Pig Latin là gì?

Pig là 1 nền tảng (platform) cấp cao để tạo các chương trình MapReduce được dùng với Hadoop và ngôn ngữ chúng ta dùng cho nền tảng này được gọi là PIG Latin. Pig được thiết kế để giúp Hadoop thân thiện với người dùng hơn và thích hợp hơn. PIG là 1 môi trờng thực thi tương tác hỗ trợ ngôn ngữ Pig Latin. Ngôn ngữ Pig Latin hỗ trợ nạp (load) và xử lý (process) dữ liệu đầu vào với 1 chuỗi các biến đổi (transform) để tạo ra kết quả mong muốn. PIG có 2 môi trường thực thi khác nhau 1) Local Mode – tất cả scripts chạy trên 1 máy đơn. 2) Hadoop – tất cả scripts chạy trên Hadoop Cluster.
Pig Latin vs SQL
Pig cơ bản tạo tập các job cho map và reduce dưới hoods. Pig cũng rất tương tự với SQL. Pig Latin cung cấp lớp trừu tượng trên dữ liệu. Nó tập trung vào dữ liệu thay vì cấu trúc dưới hood. Pig Latin là ngôn ngữ rất mạnh và nó có thể làm nhiều công việc khác nhau như nạp (load) và lưu trữ dữ liệu, streaming dữ liệu, filtering dữ liệu cũng như các hoạt động dữ liệu khác liên quan đến chuỗi. Điểm khác biệt chính giữa SQL và Pig Latin là PIG là thủ tục (procedural) và SQL là khai báo (declarative). Nói đơn giản, Pig Latin rất tương tự với SQL execution plan. Trong khi SQL xử lý cây (tree) tự nhiên, Pig Latin theo Directed Acyclic Graph (DAG). DAGs được dùng để mô hình hóa một số loại cấu trúc khác nhau trong toán học và khoa học máy tính.

Big Data #15 – Khai thác dữ liệu (data mining) với Hive – Hive là gì? – HiveSQL (HSQL) là gì?



Leave a comment
 
 
 
 
 
 
3 Votes

Yahoo bắt đầu làm việc với PIG (sẽ nói sau) cho các triển khai ứng dụng của họ trên Hadoop. Mục tiêu của Yahoo để quản lý dữ liệu không cấu trúc. Tương tự, Facebook bắt đầu triển khai các giải pháp kho dữ liệu (warehouse) của họ trên Hadoop với HIVE. Lý do chọn dùng HIVE là bởi vì các giải pháp kho dữ liệu (warehouse) truền thống rất đắc.
HIVE là gì?

Hive là hạ tầng kho dữ liệu cho Hadoop. Nhiệm vụ chính là cung cấp sự tổng hợp dữ liệu, truy vấn và phân tích. Nó hỗ trợ phân tích các tập dữ liệu lớn được lưu trong HDFS của Hadoop cũng như trên Amazon S3. Điểm hay của HIVE là hỗ trợ truy xuất giống SQL đến dữ liệu có cấu trúc, được biết với tên HiveSQL (hoặc HQL) cũng như phân tích big data với MapReduce. Hive không được xây dựng để hồi đáp nhanh các câu truy vấn nhưng nó được xây dựng cho các ứng dụng khai thác dữ liệu (data mining). Các ứng dụng khai thác dữ liệu có thể mất nhiều phút đến nhiều giờ để phân tích dữ liệu và HIVE được dùng chủ yếu.
Cách tổ chức của HIVE
Dữ liệu được tổ chức thành 3 định dạng trong HIVE.
Tables: Chúng rất tương tự như bảng (tables) trong RDBMS và chứa các dòng (rows). Hive chỉ được xếp lớp trên HDFS, do đó tables được ánh xạ trực tiếp vào các thư mục của hệ thống tập tin. Nó cũng hỗ trợ các tables được lưu trên các hệ thống tập tin khác.
Partitions: Hive tables có thể có nhiều hơn 1 partition. Chúng được ánh xạ với các thư mục con và các hệ thống tập tin.
Buckets: Trong Hive, dữ liệu có thể được chia thành các buckets. Buckets được lưu trữ như các tập tin trong partition trong hệ thống tập tin.
Hive cũng có metastore để lưu tất cả metadata. Nó là CSDL quan hệ chứa thông tin khác nhau liên quan đến Hive Schema (column types, owners, key-value data, statistics,…). Chúng ta có thể dùng MySQL cho việc này.

HiveSQL (HQL) là gì?
Ngôn ngữ truy vấn Hive cung cấp các toán tử cơ bản giống SQL. Đây là một số tác vụ mà HQL có thể làm dễ dàng.
  • Tạo và quản lý tables và partitions.
  • Hỗ trợ các toán tử Relational, Arithmetic và Logical khác nhau.
  • Evaluate functions
  • Tải về nội dung 1 table từ thư mục cục bộ hoặc kết quả của câu truy vấn đến thư mục HDFS.
Đây là ví dụ truy vấn HQL:
SELECT upper(name), salesprice
FROM sales;
SELECT category, count(1)
FROM products
GROUP BY category;
Bạn có thể nhìn thấy nó rất tương tự với SQL.
(Theo http://blog.SQLAuthority.com

Big Data #14 – Các lọai CSDL hỗ trợ Big Data – Columnar, Graph và Spatial Databases



Leave a comment
 
 
 
 
 
 
2 Votes

Columnar Databases
CSDL quan hệ là row store database hoặc row oriented database. Columnar databases là column oriented or column store database. Như đã nói về big data, chúng ta có các loại dữ liệu khác nhau và chúng ta cần lưu trữ trong database. Khi chúng ta có columnar database, nó rất dễ làm iđều này chỉ bằng cách thêm 1 cột mới vào columnar database. HBasae là 1 trong các columnar database phổ biến nhất. Nó dùng hệ thống tập tin Hadoop và MapReduce cho hệ thống lưu trữ dữ liệu lõi. Tuy nhiên, nhớ rằng đây không phải là sự lựa chọn tốt cho mọi ứng dụng. Điều này đặc biệt tốt cho các CSDL có khối lượng dữ liệu lớn (volume) được thu thập và xử lý.
Graph Databases
Với dữ liệu được liên kết chặt chẽ ở mức cao, phù hợp dùng Graph database. CSDL này có cấu trúc quan hệ node. Các nodes và các relationships chứa 1 Key Value Pair nơi dữ liệu được lưu trữ. Điều thuận lợi nhất của CSDL này là hỗ trợ điều hướng nhanh hơn giữa các các mối quan hệ (relationship). Ví dụ, Facebook dùng CSDL graph để liệt kê và minh họa các mỗi quan hệ khác nhau giữa những người dùng. Neo4j là 1 trong các CSDL graph nguồn mở phổ biến nhất. Một trong các điểm bất lợi của CSDL Graph là nó không thể tự tham chiếu (self joins trong RDBMS).
Spatial Databases
Tất cả chúng ta dùng Foursquare, Google+ cũng như Facebook để check-in. Tất cả các vị trí (location) với sự trợ giúp của Global Positioning System (GPS).
(continue…)
(Theo http://blog.SQLAuthority.com)

Big Data #13 – Các loại CSDL hỗ trợ Big Data – Key-Value Pairs Databases và Document Databases


Leave a comment
 
 
 
 
 
 
2 Votes

Các CSDL Key Value Pair
Các CSDL Key Value Pair cũng được biết như các CSDL KVP. Một key là 1 tên trường và thuộc tính, 1 định danh. Nội dung của trường là giá trị của nó, dữ liệu được định danh và lưu trữ.
Chúng là cài đặt đơn giản của khái niệm CSDL NoSQL. Chúng không có schema vì thế rất linh động. Các điểm bất lợi của các CSDL Key Value Pair (KVP) là chúng không theo các thuộc tính ACID (Atomicity, Consistency, Isolation, Durability). Ngoài ra, nó sẽ yêu cầu kiến trúc dữ liệu để lập kế hoạch cho vị trí dữ liệu, replication cũng như tính sẵn sàng cao. Trong CSDL KVP, dữ liệu được lưu dạng chuỗi.



Key
Value
Name
Pinal Dave
Color
Blue
Twitter
@pinaldave
Name
Nupur Dave
Movie
The Hero
Một số người mới dùng CSDL KVP khó quản lý toàn bộ CSDL. Không có schema cụ thể hoặc các quy tắc liên quan đến CSDL. Lựa chọn đúng CSDL KVP với các công cụ để quản lý dữ liệu và cung cấp kiểm soát tốt các khía cạnh kinh doanh khác nhau.
Riak

Riak là 1 trong những CSDL KVP phổ biến nhất. Nó cung cấp khả năng mở rộng (scalability) và hiệu suất (performance) cho CSDL dung lượng lớn (volume) và tốc độ (velocity). Ngoài ra, nó cài đặt cơ chế thu thập key và values giúp xây dựng hệ thống quản lý được.
CSDL KVP là lựa chọn tốt cho social media, communities, caching layer cho kết nối đến các CSDL khác. Nói đơn giản, khi chúng ta yêu cầu tính linh hoạt của lưu trữ dữ liệu giúp khả năng mở rộng – CSDL KVP là lựa chọn tốt.
Document Database
Có hai loại document database khác nhau. 1) Full document content (web pages, word docs,…) và 2) Storing document components for storage. Loại thứ 2 của document database chúng ta đang nói ở đây. Chúng dùng Javascript Object Notation (JSON) và Binary JSON làm cấu trúc của document. JSON là ngôn ngữ rất dễ hiểu và nó rất dễ viết cho các ứng dụng. Có 2 cấu trúc JSON chính được dùng cho Document Database – 1) Name Value Pairs và 2) Ordered List.
MongoDB và CouchDB là 2 trong Open Source NonRelational Document Database phổ biến nhất.
MongoDB

CSDL MongoDB được gọi collections. Mỗi collection được xây dựng bởi documents và mỗi document được soạn ra bởi fields. MongoDB collections có thể được tạo chỉ mục để tối ưu hóa hiệu suất. MongoDB ecosystem sẵn sàng cao, hỗ trợ truy vấn cũng như MapReduce. Nó thường được dùng trong hệ thống quản lý nội dung khối lượng (volume) lớn.
CouchDB

CSDL CouchDB được soạn ra bởi documents mà chứa fieldsattachments (được biết như description). Nó hỗ trợ các thuộc tính ACID. Các điểm thu hút chính của CouchDB là nó sẽ tiếp tục vận hành thậm chí kết nối mạng chập chờn. Do tính chất này, CouchDB thích hợp lưu trữ dữ liệu cục bộ.
Document Database là sự lựa chọn tốt khi người dùng tạo các báo cáo động từ các yếu tố thay đổi rất thường xuyên. Một ví dụ tốt của dùng document là phân tích theo thời gian thực trong mạng xã hội hoặc hệ thống quản lý nội dung.
(Theo http://blog.SQLAuthority.com)

Big Data #12 – Các loại CSDL hỗ trợ Big Data – RDBMS và NoSQL



Leave a comment
 
 
 
 
 
 
3 Votes

Ví dụ thực tế
Thử nghĩ rằng, bạn đang dùng Facebook và bạn vừa mới cập nhật thông tin về mối quan hệ hiện tại. Một vài giây sau, cùng thông tin cũng được thấy trên timeline của người yêu cũng như 1 vày người bạn. Sau 1 lúc bạn sẽ thấy cùng thông tin cũng sẵn sàng với những người bạn khác. Một lá sau khi ai đó tìm tìm về mối quan hệ của những người bạn, mối quan hệ của bạn cũng sẽ xuất hiện trong số đó. Bây giờ là câu hỏi – bạn có nghĩ chỉ duy nhất kiến trúc big data thực hiện các thay đổi này? Bạn có nghĩ rằng sự thay đổi tức thì thông tin mối quan hệ với các thành viên khác bởi công nghệ được dùng là big data. Thực tế câu trả lời là Facebook dùng MySQL để tạo các cập nhật khác nhau trên timeline cũng như các sự kiện khác chúng ta làm trên trang chủ. Thật sự khó khăn để lấy từ CSDL hoạt động trong kinh doanh thực tế.
Bây giờ chúng ta xem 1 vài ví dụ về các CSDL hoạt động.
  • Relational Databases (bài viết này)
  • NoSQL Databases (bài viết này)
  • Key-Value Pair Databases (bài viết kế tiếp)
  • Document Databases (bài viết kế tiếp)
  • Columnar Databases (bài viết kế tiếp nữa)
  • Graph Databases (bài viết kế tiếp nữa)
  • Spatial Databases (bài viết kế tiếp nữa)
Các CSDL quan hệ
Trước đây chúng ta đã nói về vai trò của RDBMS trong câu chuyện big data. CSDL quan hệ xuất hiện mọi nơi trong kinh doanh đã rất lâu. Điểm quan trọng của CSDL quan hệ là luôn có cấu trúc dữ liệu có ý nghĩa. Có nhiều loại CSDL quan hệ khác nhau, ví dụ Oracle, SQL Server, MySQL và,… Nếu là CSDL quan hệ mã nguồn mở, MySQL là lựa chọn tốt nhất, tôi cũng gợi ý PostgreSQL nữa.
Các CSDL không quan hệ (NoSQL)
Chúng ta cũng nói về các CSDL không quan hệ trong bài này. NoSQL viết tắt của Not Only SQL Databases. Có nhiều CSDL NoSQL trên thị trường và chọn 1 CSDL phù hợp là 1 thách thức. Có 1 vài thuộc tính để xem xét khi chọn CSDL NoSQL phù hợp mục tiêu sử dụng.
  • Data and Query Model
  • Persistence of Data and Design
  • Eventual Consistency
  • Scalability
Mặc dù tất cả các thuộc tính trên cần quan tâm với bất kỳ CSDL NoSQL nào nhưng thu hút nhất với tôi là Eventual Consistency (tính nhất quán sau cùng).
Eventual Consistency
RDBMS dùng ACID (Atomicity, Consistency, Isolation, Durability) như 1 cơ chế quan trọng để đảm bảo tính nhất quán dữ liệu, trong khi NonRelational DBMS dùng BASE cho cùng mục đích. BASE viết tắt của Basically Available Soft state and Eventual consistency. Tính nhất quán cuối cùng được triển khai rộng rãi trên các hệ thống phân tán.
(continue…)
(Theo http://blog.SQLAuthority.com)

Big Data #11 – Vai trò của điện toán đám mây trong Big Data


Leave a comment
 
 
 
 
 
 
2 Votes

Cloud là gì?
Cloud là từ thông dụng nhất trong vài năm trở lại đây. Mọi người đều biết về cloud, nhưng trong bài nay chúng ta sẽ thảo luận cloud trong ngữ cảnh big data. Cloud computing là 1 phương pháp cung cấp các tài nguyên máy tính được chia sẽ cho các ứng dụng yêu cầu tài nguyên linh động.  Các tài nguyên này gồm ứng dụng, tính toán, lưu trữ, mạng, phát triển, và các nền tảng triển khai khác. Nền tảng của cloud computing là nó chia sẽ tài nguyên và phân phối đến người dùng cuối như 1 dịch vụ.
Các ví dụ của cloud computing và big data là Google và Amazon.com. Cả hai đều cung cấp big data với sự trợ giúp của cloud.
Có 2 mô hình triển khai cloud khác nhau: 1) Public Cloud và 2) Private Cloud.
Public Cloud
Public Cloud là hạ tầệu ng cloud được xây dựng bởi các nhà cung cấp thương mại (Amazon, Rackspace,…) tạo 1 trung tâm dữ liệu khả năng mở rộng cao giúp ẩn đi các hạ tầng phức tạp với khách hàng và cung cấp các dịch vụ khác nhau.
Private Cloud
Private Cloud là hạ tầng cloud được xây dựng bởi 1 tổ chức, tự họ quản lý khả năng mở rộng của trung tâm dữ liệu nội bộ.
Đây là sự so sánh nhanh giữa Public Cloud và Private Cloud từ Wikipedia:


Public Cloud
Private Cloud
Initial cost
Typically zero
Typically high
Running cost
Unpredictable
Unpredictable
Customization
Impossible
Possible
Privacy
No (Host has access to the data
Yes
Single sign-on
Impossible
Possible
Scaling up
Easy while within defined limits
Laborious but no limits
Hybrid Cloud
Hybrid Cloud là hạ tầng cloud được xây dựng với thành phần gồm 2 hoặc nhiều hơn các clouds như public và private cloud. Hybrid cloud mang đến điều tốt nhất của nhiều mô hình triển khai cloud.
Cloud và big data – Các đặc tính phổ biến

Có nhiều đặc tính của Cloud Architecture và Cloud Computing mà cũng là bản cất quan trọng cho big data.
Danh sách các đặc tính của cloud computing mà quan trọng trong big data:
  • Scalability
  • Elasticity
  • Ad-hoc Resource Pooling
  • Low Cost to Setup Infastructure
  • Pay on Use or Pay as you Go
  • Highly Availability
Các nhà cung cấp dẫn đầu về cloud cho big data
Amazon
Amazon được cho là nhà cung cấp Infrastructure as a Service (IaaS) phổ biến nhất. Lịch sử của việc này bắt đầu khá thú vị. Họ bắt đầu với 1 đống hạ tầng hỗ trợ kinh doan của riêng họ. Dần dần họ thầy nguồn lực của mình không được tận dụng trong hầu hết thời gian. Họ quyết định tối đa hóa nguồn tài nguyên đang có và vì thế họ đưa ra dịch vụ Amazon Elastic Compute Cloud (Amazon EC2) năm 2006. Sản phẩm của họ đã phát triển rất nhiều trong thời gian gần đây và bây giờ nó đã trở thành một trong những ngành kinh doanh chính bên cạnh bán lẽ.
Amazon cũng cung cấp dịch vụ big data trong Amazon Web Services.
Đây là danh sách các dịch vụ trong Amazon Web Services:
  • Amazon Elastic MapReduce – xử lý khối lượng dữ liệu rất lớn.
  • Amazon DynammoDB – dịch vụ CSDL NoSQL.
  • Amazon Simple Storage Services (S3) – dịch vụ lưu trữ dữ liệu trực tuyến
  • Amazon High Performance Computing – cung cấp cụm tính toán hiệu suất cao
  • Amazon RedShift – dịch vụ kho dữ liệu khả năng mở rộng hàng petabyte
Google
Mặc dù Google được biết đến với Search Engine, chung ta cũng biết hãng có thể cung cấp nhiều hơn thế.
  • Google Compute Engine – cung cấp tính toán bảo mật, linh động từ trung tâm dữ liệu sử dụng hiệu quả năng lượng.
  • Google Big Query – cho phép các truy vấn giống SQL chạy với bộ dữ liệu rất lớn.
  • Google Prediction API – công cụ máy học dựa trên cloud
Các nhà cung cấp khác
Bên cạnh Amazon và Google, chúng ta cũng có nhiều nhà cung cấp khác về big data. Microsoft cũng tham gia big data với Microsoft Azure. Ngoài ra, Rackspace và NASA cùng nhau bắt đầu OpenStack. Mục tiêu của OpenStack là cung cấp cloud dễ mở rộng có thể chạy trên bất kỳ phần cứng nào.
Điều cần theo dõi
Các giải pháp dựa trên cloud cung cấp 1 tích hợp tuyệt với với câu chuyện big data cũng như rất kinh tế để thực hiện. Tuy nhiên, có một số thứ nên xem xét khi triển khai big data trên các giải pháp cloud.
  • Data Integrity
  • Initial Cost
  • Recurring Cost
  • Performance
  • Data Access Security
  • Location
  • Compliance
Mỗi công ty đều có hướng tiếp cận big data khác nhau và có các quy tắc và luật lệ khác nhau. Dựa trên các nhân tố khác nhau, có thể cài đặt giải pháp big data tùy biến của riêng họ trên 1 cloud.
(Theo http://blog.SQLAuthority.com

Big Data #10 – NewSQL là gì?



1 Comment
 
 
 
 
 
 
1 Vote

NewSQL là gì?
What_is_NewSQL
NewSQL viết tắt của new scalable and high performance SQL Database vendors. Các sản phẩm được bán bởi các nhà cung cấp NewSQL có thể mở rộng theo chiều ngang. NewSQL không phải 1 loại CSDL nhưng nó là về nhà cung cấp đã hỗ trợ các sản phẩm dữ liệu với những thuộc tính của CSDL quan hệ (như ACID, Transaction,…) cùng với hiệu suất cao.
Các sản phẩm từ các nhà cung cấp NewSQL thường theo hướng dữ liệu bộ nhớ để tăng tốc độ truy cập và mở rộng ngay lập tức.
NewSQL được đặt ra bởi 451 group analyst Matthew Aslett trong bài đăng này.
Trong định nghĩa NewSQL, Aslett viết:
“NewSQL” is our shorthand for the various new scalable/high performance SQL database vendors. We have previously referred to these products as ‘ScalableSQL‘ to differentiate them from the incumbent relational database products. Since this implies horizontal scalability, which is not necessarily a feature of all the products, we adopted the term ‘NewSQL’ in the new report. And to clarify, like NoSQL, NewSQL is not to be taken too literally: the new thing about the NewSQL vendors is the vendor, not the SQL.
Nói cách khác – NewSQL kết hợp các khái niệm và nguyên tắc của của Structured Query Language (SQL) và các ngôn ngữ NoSQL. Nó kết hợp độ tin cậy của SQL với tốc độ và hiệu suất của NoSQL.
Các loại NewSQL
Có 3 loại NewSQL chính:
  • New Architecture – Trong nền tảng này, mỗi node sở hữu 1 tập con của dữ liệu và câu truy vấn được chia thành câu truy vấn nhỏ hơn để gởi đến các nodes để xử lý. Ví dụ: NouDB, Clustrix, VoltDB.
  • MySQL Engines – Công cụ lưu trữ được tối ưu hóa cao cho SQL với giao diện của MySQ Lare. Ví dụ: InnoDB, Akiban.
  • Transparent Sharding – Hệ thống này tự động chia CSDL trên nhiều nodes. Ví dụ: Scalearc.
Kết luận
Nói đơn giản – NewSQL là loại CSDL dựa trên các nguyên lý CSDL quan hệ và cung cấp khả năng mở rộng như NoSQL.

Big Data #9 – Tầm quan trọng của CSDL quan hệ trong Big Data


1 Comment
 
 
 
 
 
 
4 Votes

Câu hỏi lớn?
BigData_BigQuestion
Một vài câu hỏi khi bắt đầu với big data:
  • CSDL quan hệ không có chỗ đứng trong câu chuyện big data phải không?
  • CSDL quan hệ không còn phù hợp khi big data phát triển phải không?
  • CSDL quan hệ không có khả năng xử lý big data đúng không?
  • Có đúng là không cần phải tìm hiểu CSDL quan hệ nếu big data là điểm đến cuối cùng?
Theo ý kiến cá nhân, những người tham vọng trở thành chuyên gia về big data nên tìm hiểu về CSDL quan hệ.
Phong trào NoSQL
Lý do của sự chuyển dịch sang NoSQL (phong trào NoSQL) trong thời gian gần đây là bởi 2 thuận lợi quan trọng của các CSDL NoSQL.
1. Hiệu suất (performance)
2. Tính linh động (flexible schema)
Theo kinh nghiệm cá nhân khi dùng NoSQL, tôi thấy cả hai điều thuận lợi ở trên. Nhiều trường hợp tôi thấy CSDL quan hệ có nhiều hạn chế khi dữ liệu không có cấu trúc cũng như thuộc những kiểu dữ liệu mà CSDL quan hệ không hỗ trợ. Trong trường hợp này giải pháp NoSQL thực hiện tốt hơn CSDL quan hệ. Tôi là 1 fan hâm mộ các giải pháp của NoSQL trong thời gian gần đây nhưng tôi cũng thấy các cơ hội và các tình huống nơi mà CSDL quan hệ vẫn hoàn toàn phù hợp ngay cả khi CSDL đang phát triển ngày càng lớn.
Các tình huống CSDL quan hệ
Báo cáo Adhoc là 1 trong các tình huống phổ biến nhất nơi mà NoSQL không có giải pháp tối ưu. Ví dụ các câu truy vấn báo cáo thường cần tổng hợp dựa trên các cột mà không được tạo chỉ mục cũng như được xây dựng trong khi báo cáo đang chạy, trong loại ngữ cảnh NoSQL (document database store, distributed key value store) thường không thực hiện tốt. Trong trường hợp báo cáo ad-hoc, tôi thấy CSDL quan hệ làm việc dễ hơn.
SQL là ngôn ngữ máy tính phổ biến nhất mọi thời đại. Tôi dùng nó đã rất lâu và vẫn sẽ dùng trong tương lai. Trong nhiều trường hợp, viết câu truy vấn dựa trên SQL dễ hơn viết bằng ngôn ngữ trong NoSQL. Trong tương lai có thể ngôn ngữ truy vấn trong NoSQL sẽ trở nên phổ biến.
ACID (Atomicity, Consistency Isolation Durability) – Không phải tất cả các giải pháp NoSQL cung cấp ngôn ngữ phù hợp ACID. Luôn có các tình huống (ví dụ các giao dịch ngân hàng, shopping cart trong eCommerce,…) nơi mà nếu không có ACID thì hoạt động có thể không hợp lệ và tính toàn vẹn CSDL bị ảnh hưởng.
Túi hỗn hợp
Nghe nói tất cả các site mạng xã hội ngày nay đã chuyển khỏi CSDL quan hệ. Thật sự nó không hoàn toàn đúng. Trong khi tìm hiểu về big data và CSDL quan hệ, tôi thấy nhiều site mạng xã hội phổ biến dùng các giải pháp big data cùng với CSDL quan hệ. Nhiều site mạng xã hội dùng CSDL quan hệ để cung cấp kết quả đến người dùng cuối và vẫn dùng CSDL quan hệ như hệ thống chính.
Một vài ví dụ:
Có nhiều tổ chức nổi bật đang chạy các ứng dụng lớn dùng CSDL quan hệ cùng với các nền tảng big data khác nhau để đáp ứng nhu cầu kinh doanh khác nhau của họ.
Kết luận
Tôi tin rằng RDBMS giống kem vani. Mọi người thích nó và đã có nó. NoSQL và các giải pháp khác giống như kem socolate hoặc hương vị tùy ý  – rất nhiều người thích và muốn có nó, nhưng không phải tất cả các hãng kem có thể làm cho nó hợp với khẩu vị của tất cả mọi người. Cửa hàng kem luôn có sẵn kem vani. Cũng giống như vậy, trong câu chuyện big data, CSDL quan hệ là 1 phần của cả câu chuyện. Trong thế giới thực sẽ luôn cần CSDL quan hệ. CSDL quan hệ là 1 trong những thành phần quan trọng của big data thay vì xem nó là công nghệ chưa đáp ứng tiêu chuẩn.
Ray of Hope – NewSQL
Chúng ta đã từng nói rằng có những tình huống cần đến ACID trong ứng dụng big data và NoSQL sẽ không hỗ trợ điều này. Có 1 thuật ngữ mới hỗ trợ hầu hết các thuộc tính của RDBMS và hỗ trợ hạ tầng big data – NewSQL.
 (Theo http://blog