So sánh Pig, Hive và SQL

Pig vs Hive vs SQL

Pig vs Hive vs SQL

Hadoop là công nghệ mới đang hot, còn SQL là công nghệ đã cũ và không còn khả năng đáp ứng lại nhu cầu phân tích dữ liệu lớn Big Data như hiện nay. Tuy nhiên, Hadooop MapReduce là kỹ thuật khá phức tạp đối với các nhà phát triển và phân tích dữ liệu đang là. May thay, cộng đồng đã đưa ra hai ngôn ngữ Pig (10 dòng code Pig = 200 dòng code Java) và Hive tương tự như SQL để giúp việc cài đặt Hadooop trở nên dễ dàng hơn rất nhiều, bạn không cần nhọc công cài đặt MapReduce từ đầu thông qua ngôn ngữ Java.

Nhưng các công nghệ này khác nhau như thế nào để ta có thể đưa ra một lựa chọn tiết kiệm và hiệu quả nhất. Trong bài viết này, tôi xin đưa ra một vài so sánh giữa các công nghệ này cũng như đề ra một vài lời khuyên khi nào nên vận dụng các công nghệ này tương ứng với từng dự án trong thực tế.

Bảng so sánh

Pig Hive SQL
Phát triển bởi Yahoo Facebook ISO/IEC (1986)
Mục đích sử dụng Data transformation (Extract > Transform > Load), chuẩn bị khối lượng dữ liệu lớn phục vụ cho mục đích phân tích về sau, thực thi hiệu quả các chuỗi lệnh dài Báo cáo, truy xuất nhanh dữ liệu, trả lời những câu hỏi cấp thiết, gần gũi với SQL Quản lý dữ liệu quy mô vừa và nhỏ
Ngôn ngữ Pig latin (Scripting) HiveQL (SQL query) SQL-92 standard
Cấu trúc dữ liệu Phức tạp, lồng nhau (Unstructured data) Có cấu trúc (Structure data) Có cấu trúc (Structure data)
Lược đồ quan hệ (Schema) Không tường minh (Implicit) Tường minh (Explicit)
Khả năng Update Chỉ có Join, Order, Sort Chỉ có Insert, không có Update, Delete Đầy đủ
Hỗ trợ transaction Không Không
Đánh chỉ số Index Không Không
Kích thước dữ liệu Petabyte (1,000,000 Gigabyte) Petabyte (1,000,000 Gigabyte) Terabyte (1,000 Gigabyte)
Kích thước mỗi câu truy vấn Petabyte (1,000,000 Gigabyte) Petabyte (1,000,000 Gigabyte) Gigabyte
Sử dụng bởi Programmers, researchers Analysts Programmers
Làm việc trên Client side trên một cluster Server side (Thrift) trên một cluster Client side trên một cluster
User defined function Java Java SQL User-Defined Functions
MapReduce Không
Web interface Không
JDBC/ODBC Không Giới hạn Có (đầy đủ)
Pig Hive SQL script

Pig Hive SQL script

Khi nào thì dùng Apache Pig?

Khi bạn muốn xử lý trên tập dữ liệu phân tán và phi cấu trúc, cũng như tiếp cận dễ dàng với ngôn ngữ mới không quá khác biệt so với SQL, Pig sẽ là lựa chọn của bạn. Bạn không cần phải đi sâu vào lập trình MapReduce. Nếu bạn đã có kinh nghiệm làm việc với SQL thì việc học ngôn ngữ Pig không tốn quá nhiều thời gian.

Khi nào thì dùng Apache Hive?

Các doanh nghiệp muốn khai thác Big Data đòi hỏi phải xử lý và phân tích dữ liệu một cách nhanh chóng. Hive là một công cụ tuyệt vời cho việc truy vấn, phân tích tập dữ liệu lịch sử. Cần lưu ý rằng dữ liệu phải được tổ chức tốt để Hive tận dụng được tối đa năng lực phân tích và xử lý của nó. Truy vấn dữ liệu thời gian thực không phải là điểm mạnh của Hive (HBase là câu trả lời cho phân tích dữ liệu thời gian thực, được sử dụng thành công bởi Facebook).

Khi nào thì dùng SQL?

SQL là công cụ được sử dụng lâu đời nhất so với hai ứng viên trên. Lý do, SQL cung cấp khả năng truy vấn, cập nhật và bảo đảm tính toàn vẹn của dữ liệu một cách tối đa. Hơn nữa, các lập trình viên đã quá quen thuộc với công nghệ này. Nếu không quá khắt khe thì SQL luôn là lựa chọn hàng đầu của các doanh nghiệp vừa và nhỏ. Bản thân SQL đã quá tốt so với các phần mềm bảng tính khác như Excel của Microsoft, Number của Apple, hay Calc của Libre.

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s