HiveQL (Ngôn ngữ truy vấn Hive) là gì?
Hive cung cấp CLI để viết các truy vấn Hive bằng Ngôn ngữ truy vấn Hive (HiveQL). Nói chung cú pháp HQL tương tự như cú pháp SQL mà hầu hết các nhà phân tích dữ liệu đều quen thuộc.
Ngôn ngữ lấy cảm hứng từ SQL của Hive tách người dùng khỏi sự phức tạp của lập trình Map Reduce. Nó sử dụng lại các khái niệm quen thuộc từ thế giới cơ sở dữ liệu quan hệ, chẳng hạn như bảng, hàng, cột và lược đồ, để dễ học.
Hầu hết các tương tác có xu hướng diễn ra trên giao diện dòng lệnh (CLI). Hive cung cấp CLI để viết các truy vấn Hive bằng Ngôn ngữ truy vấn Hive (Hive-QL).
Nói chung, cú pháp HiveQL tương tự như cú pháp SQL mà hầu hết các nhà phân tích dữ liệu đều quen thuộc. Hive hỗ trợ bốn định dạng tệp là TEXTFILE, SEQUENCEFILE, ORC và RCFILE (Record Columnar File).
- Đối với lưu trữ siêu dữ liệu của một người dùng, Hive sử dụng cơ sở dữ liệu derby và
- Đối với Siêu dữ liệu nhiều người dùng hoặc trường hợp Siêu dữ liệu được chia sẻ, Hive sử dụng MYSQL
Các toán tử cài sẵn
Hive cung cấp các toán tử tích hợp để các hoạt động Dữ liệu được thực hiện trên các bảng hiện diện bên trong kho Hive.
Các toán tử này được sử dụng cho các phép toán trên các toán hạng và nó sẽ trả về giá trị cụ thể theo logic được áp dụng.
Các loại toán tử tích hợp trong HIVE là:
- Toán tử quan hệ
- Toán tử số học
- Toán tử logic
- Toán tử trên các loại Phức tạp
- Cấu tạo loại phức tạp
Toán tử quan hệ:
Chúng tôi sử dụng các toán tử quan hệ để so sánh mối quan hệ giữa hai toán hạng.
- Các toán tử như bằng, Không bằng, nhỏ hơn, lớn hơn… vv
- Các kiểu toán hạng đều là kiểu số trong các Toán tử này.
Bảng sau đây sẽ cung cấp cho chúng ta thông tin chi tiết về các toán tử quan hệ và cách sử dụng nó.
Nhà điều hành tích hợp | Sự miêu tả | Toán hạng |
X = Y | TRUE nếu biểu thức X tương đương với biểu thức Y Ngược lại FALSE. | Nó có tất cả các loại nguyên thủy |
X! = Y | TRUE nếu biểu thức X không tương đương với biểu thức Y Ngược lại FALSE. | Nó có tất cả các loại nguyên thủy |
X TRUE nếu biểu thức X nhỏ hơn biểu thức Y Ngược lại FALSE. | Nó có tất cả các loại nguyên thủy |
|
X <= Y | TRUE nếu biểu thức X nhỏ hơn hoặc bằng biểu thức Y Ngược lại FALSE. | Nó có tất cả các loại nguyên thủy |
X> Y | TRUE nếu biểu thức X lớn hơn biểu thức Y Ngược lại FALSE. | Nó có tất cả các loại nguyên thủy |
X> = Y | TRUE nếu biểu thức X lớn hơn hoặc bằng biểu thức Y Ngược lại FALSE. | Nó có tất cả các loại nguyên thủy |
X LÀ KHÔNG ĐỦ | TRUE nếu biểu thức X đánh giá là NULL, ngược lại là FALSE. | Nó có tất cả các loại |
X KHÔNG ĐẦY ĐỦ | FALSE Nếu biểu thức X đánh giá là NULL, ngược lại là TRUE. | Nó có tất cả các loại |
X NHƯ Y | TRUE Nếu mẫu chuỗi X khớp với Y nếu không thì FALSE. | Chỉ chiếm chuỗi |
X RLIKE Y | NULL nếu X hoặc Y là NULL, TRUE nếu bất kỳ chuỗi con nào của X khớp với biểu thức chính quy Java Y, ngược lại là FALSE. | Chỉ chiếm chuỗi |
X REGEXP Y | Giống như RLIKE. | Chỉ chiếm chuỗi |
Toán tử số học :
Chúng tôi sử dụng toán tử Số học để thực hiện các phép toán số học trên các toán hạng
- Các phép toán số học như cộng, trừ, nhân và chia giữa các toán hạng chúng ta sử dụng các Toán tử này.
- Tất cả các kiểu toán hạng đều là kiểu số trong các Toán tử này
Ví dụ mẫu:
2 + 3 cho kết quả 5.
Trong ví dụ này, '+' là toán tử và 2 và 3 là toán hạng. Giá trị trả về là 5
Bảng sau đây sẽ cung cấp cho chúng ta thông tin chi tiết về các toán tử số học
Nhà điều hành tích hợp | Sự miêu tả | Toán hạng |
X + Y | Nó sẽ trả về kết quả của việc thêm giá trị X và Y. | Nó có tất cả các loại số |
X - Y | Nó sẽ trả về kết quả của việc trừ Y khỏi giá trị X. | Nó có tất cả các loại số |
X * Y | Nó sẽ trả về kết quả của việc nhân các giá trị X và Y. | Nó có tất cả các loại số |
X / Y | Nó sẽ trả về kết quả của phép chia Y từ X. | Nó có tất cả các loại số |
X% Y | Nó sẽ trả về phần còn lại do chia X cho Y. | Nó có tất cả các loại số |
X & Y | Nó sẽ trả về đầu ra của bitwise AND của X và Y. | Nó có tất cả các loại số |
X | Y | Nó sẽ trả về đầu ra của OR bitwise của X và Y. | Nó có tất cả các loại số |
X Y | Nó sẽ trả về kết quả đầu ra của XOR theo bit của X và Y. | Nó có tất cả các loại số |
~ X | Nó sẽ trả về đầu ra của bitwise NOT của X. | Nó có tất cả các loại số |
Toán tử logic:
Chúng tôi sử dụng các toán tử lôgic để thực hiện các phép toán lôgic trên các toán hạng
- Các phép toán logic như VÀ, HOẶC, KHÔNG giữa các toán hạng chúng ta sử dụng các Toán tử này.
- Tất cả các loại toán hạng đều là loại BOOLEAN trong các Toán tử này
Bảng sau đây sẽ cung cấp cho chúng ta thông tin chi tiết về các toán tử logic
Các nhà khai thác | Sự miêu tả | Toán hạng |
X VÀ Y | TRUE nếu cả X và Y đều TRUE, ngược lại FALSE. | Chỉ các loại boolean |
X && Y | Tương tự như X VÀ Y nhưng ở đây chúng tôi sử dụng ký hiệu && | Chỉ các loại boolean |
X HOẶC Y | TRUE nếu X hoặc Y hoặc cả hai là TRUE, nếu không FALSE. | Chỉ các loại boolean |
X || Y | Tương tự như X OR Y nhưng ở đây chúng tôi sử dụng || Biểu tượng | Chỉ các loại boolean |
KHÔNG PHẢI X | TRUE nếu X là FALSE, nếu không FALSE. | Chỉ các loại boolean |
! X | Tương tự như NOT X nhưng ở đây chúng tôi sử dụng! Biểu tượng | Chỉ các loại boolean |
Các toán tử trên các loại Phức hợp:
Bảng sau đây sẽ cung cấp cho chúng ta thông tin chi tiết về các toán tử kiểu phức hợp. Đây là những toán tử sẽ cung cấp một cơ chế khác để truy cập các phần tử trong các kiểu phức tạp.
Các nhà khai thác | Toán hạng | Sự miêu tả |
A [n] | A là một Mảng và n là một kiểu số nguyên | Nó sẽ trả về phần tử thứ n trong mảng A. Phần tử đầu tiên có chỉ số là 0 |
M [phím] | M là một Bản đồ | Nó sẽ trả về các giá trị thuộc về khóa trong bản đồ |
Cấu tạo loại phức tạp:
Bảng sau đây sẽ cung cấp cho chúng ta thông tin chi tiết về Bộ xây dựng kiểu phức tạp. Nó sẽ xây dựng các thể hiện trên các kiểu dữ liệu phức tạp. Đây là những kiểu dữ liệu phức tạp như kiểu Mảng, Bản đồ và Cấu trúc trong Hive.
Trong phần này, chúng ta sẽ xem các hoạt động được thực hiện trên các Constructors kiểu phức tạp.
Các nhà khai thác | Toán hạng | Sự miêu tả |
mảng | (val1, val2,…) | Nó sẽ tạo một mảng với các phần tử đã cho như đã đề cập như val1, val2 |
Create_ union | (tag, val1, val2,…) | Nó sẽ tạo một loại liên hợp với các giá trị được tham số thẻ đề cập đến |
bản đồ | (key1, value1, key2, value2,…) | Nó sẽ tạo một bản đồ với các cặp khóa / giá trị đã cho được đề cập trong các toán hạng |
Named_struct | (name1, val1, name2, val2,…) | Nó sẽ tạo một Cấu trúc với các tên trường và giá trị đã cho được đề cập trong toán hạng |
CẤU TRÚC | (val1, val2, val3,…) | Tạo một cấu trúc với các giá trị trường đã cho. Tên trường cấu trúc sẽ là col1, col2 ,. |
Tóm lược:
Hive cung cấp một số hàm và toán tử có sẵn để thao tác dữ liệu được lưu trữ trong kho Hive. Hive tương tự như ngôn ngữ SQL, hỗ trợ tất cả các loại hoạt động dữ liệu và truy vấn trên bảng và cơ sở dữ liệu.