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.
Thứ Ba, 26 tháng 1, 2016
7 việc cần để bắt đầu với Big Data
Big Data #21 – Tổng kết và định hướng tiếp theo
by dinhnn Leave a comment
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.
Big Data #20 – Các tài nguyên tham khảo – Cách bắt đầu với Big Data?
by dinhnn Leave a comment
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.
- Big Data: The Big Picture
- Big Data Analytics with Tableau
- NoSQL: The Big Picture
- Understanding NoSQL
- Data Analysis Fundamentals with Tableau
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.
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.
- Ethics of Big Data Balancing Risk and Innovation
- Big Data for Dummies
- Head First Data Analysis: A Learner’s Guide to Big Numbers, Statistics, and Good Decisions
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
by dinhnn Leave a comment
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
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)
by dinhnn Leave a comment
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ó 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ì?
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.

Zookeeper là gì?

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.
Big Data #16 – Tương tác với Hadoop – PIG là gì? – PIG Latin là gì?
by dinhnn Leave a comment
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ì?
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.
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
by dinhnn Leave a comment
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
by dinhnn Leave a comment
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
|
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 fields và attachments (đượ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
by dinhnn Leave a comment
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)
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
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
by dinhnn Leave a comment
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 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
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
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
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
(Theo http://blog.SQLAuthority.com
Big Data #10 – NewSQL là gì?
by dinhnn 1 Comment
NewSQL là gì?

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.
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
by dinhnn 1 Comment
Câu hỏi lớn?

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?
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ụ:
- Facebook dùng MySQL để hiển thị timeline. (Link tham khảo)
- Twitter dùng MySQL. (Link tham khảo)
- Tumblr dùng Shared MySQL. (Link tham khảo)
- Wikipedia dùng MySQL. (Link tham khảo)
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