Các lệnh Hive hàng đầu với các ví dụ trong HQL



Blog này thảo luận về các Lệnh Hive với các ví dụ trong HQL. CREATE, DROP, TRUNCATE, ALTER, SHOW, DESCRIBE, USE, LOAD, INSERT, JOIN và nhiều lệnh Hive khác

Trong bài đăng blog này, hãy thảo luận về các lệnh Hive hàng đầu với các ví dụ. Các lệnh Hive này rất quan trọng để thiết lập nền tảng cho .

Edureka 2019 Tech Career Career Guide đã ra mắt! Các vai trò công việc hấp dẫn nhất, lộ trình học tập chính xác, triển vọng ngành và hơn thế nữa trong hướng dẫn. Tải xuống hiện nay.

Hive là gì?

Apache Hive là một hệ thống kho dữ liệu được xây dựng để hoạt động trên Hadoop. Nó được sử dụng để truy vấn và quản lý các tập dữ liệu lớn nằm trong bộ lưu trữ phân tán. Trước khi trở thành một dự án mã nguồn mở của Apache Hadoop, Hive có nguồn gốc từ Facebook. Nó cung cấp một cơ chế để chiếu cấu trúc lên dữ liệu trong Hadoop và truy vấn dữ liệu đó bằng ngôn ngữ giống SQL được gọi là HiveQL (HQL).





Hive được sử dụng vì các bảng trong Hive tương tự như các bảng trong cơ sở dữ liệu quan hệ. Nếu bạn đã quen với SQL, thì đó là một con đường ngắn. Nhiều người dùng có thể truy vấn đồng thời dữ liệu bằng Hive-QL.

HQL là gì?

Hive định nghĩa một ngôn ngữ truy vấn giống SQL đơn giản để truy vấn và quản lý các tập dữ liệu lớn được gọi là Hive-QL (HQL). Nó rất dễ sử dụng nếu bạn đã quen thuộc với Ngôn ngữ SQL. Hive cho phép các lập trình viên quen thuộc với ngôn ngữ viết khung MapReduce tùy chỉnh để thực hiện các phân tích phức tạp hơn.



Công dụng của Hive:

1. Lưu trữ phân tán Apache Hive.

2. Hive cung cấp các công cụ cho phép dễ dàng trích xuất / chuyển đổi / tải dữ liệu (ETL)

3. Nó cung cấp cấu trúc trên nhiều định dạng dữ liệu.



4. Bằng cách sử dụng Hive, chúng tôi có thể truy cập các tệp được lưu trữ trong Hệ thống tệp phân tán Hadoop (HDFS được sử dụng để truy vấn và quản lý các tập dữ liệu lớn nằm trong đó) hoặc trong các hệ thống lưu trữ dữ liệu khác như Apache HBase.

Hạn chế của Hive:

& bull Hive không được thiết kế để xử lý giao dịch trực tuyến (OLTP), nó chỉ được sử dụng cho xử lý phân tích trực tuyến.

& bull Hive hỗ trợ ghi đè hoặc lấy dữ liệu, nhưng không hỗ trợ cập nhật và xóa.

& bull Trong Hive, các truy vấn phụ không được hỗ trợ.

Tại sao Hive được sử dụng bất chấp Pig?

Sau đây là những lý do tại sao Hive được sử dụng bất chấp sự sẵn có của Pig:

  • Hive-QL là ngôn ngữ khai báo dòng SQL, PigLatin là ngôn ngữ dòng dữ liệu.
  • Pig: một ngôn ngữ luồng dữ liệu và môi trường để khám phá các tập dữ liệu rất lớn.
  • Hive: kho dữ liệu phân tán.

Các thành phần của Hive:

Cơ sở dữ liệu:

Hive lưu trữ lược đồ của các bảng Hive trong Hive Metastore. Metastore được sử dụng để chứa tất cả thông tin về các bảng và phân vùng có trong kho. Theo mặc định, siêu thị được chạy trong cùng một quá trình với dịch vụ Hive và siêu kho mặc định là Cơ sở dữ liệu DerBy.

SerDe:

Serializer, Deserializer đưa ra hướng dẫn để tìm hiểu về cách xử lý một bản ghi.

Lệnh Hive:

Ngôn ngữ định nghĩa dữ liệu (DDL)

Các câu lệnh DDL được sử dụng để xây dựng và sửa đổi các bảng và các đối tượng khác trong cơ sở dữ liệu.

Lệnh DDL Chức năng
TẠO NÊN Nó được sử dụng để tạo một bảng hoặc Cơ sở dữ liệu
CHỈ Nó được sử dụng để hiển thị Cơ sở dữ liệu, Bảng, Thuộc tính, v.v.
TUỔI TÁC Nó được sử dụng để thực hiện các thay đổi đối với bảng hiện có
DIỄN TẢ Nó mô tả các cột trong bảng
TRUNCATE Được sử dụng để cắt ngắn và xóa vĩnh viễn các hàng của bảng
XÓA BỎ Xóa dữ liệu bảng, nhưng có thể khôi phục được

Đi đến trình bao Hive bằng cách đưa ra lệnh sudo hive và nhập lệnh 'tạo nên cơ sở dữ liệu tên> ' để tạo cơ sở dữ liệu mới trong Hive.

Tạo cơ sở dữ liệu Hive bằng Lệnh Hive

Để liệt kê các cơ sở dữ liệu trong kho Hive, hãy nhập lệnh ‘ hiển thị cơ sở dữ liệu '.

Cơ sở dữ liệu tạo ở một vị trí mặc định của kho Hive. Trong Cloudera, cơ sở dữ liệu Hive lưu trữ trong một / user / hive / kho.

Lệnh sử dụng cơ sở dữ liệu là SỬ DỤNG

Sao chép dữ liệu đầu vào sang HDFS từ cục bộ bằng cách sử dụng lệnh sao chép Từ cục bộ.

Khi chúng ta tạo một bảng trong tổ ong, nó sẽ tạo ở vị trí mặc định của kho tổ ong. - “/ user / hive / kho”, sau khi tạo bảng, chúng ta có thể di chuyển dữ liệu từ HDFS sang bảng hive.

Lệnh sau tạo một bảng với vị trí của “/user/hive/warehouse/retail.db”

Ghi chú : Retail.db là cơ sở dữ liệu được tạo trong kho Hive.

Diễn tả cung cấp thông tin về lược đồ của bảng.

Ngôn ngữ thao tác dữ liệu (DML)

Các câu lệnh DML được sử dụng để truy xuất, lưu trữ, sửa đổi, xóa, chèn và cập nhật dữ liệu trong cơ sở dữ liệu.

chuyển đôi thành số nguyên trong java

Thí dụ :

Câu lệnh LOAD, INSERT.

Cú pháp:

TẢI đường dẫn dữ liệu vào bảng [tên bảng]

Thao tác Load được sử dụng để di chuyển dữ liệu vào bảng Hive tương ứng. Nếu từ khóa địa phương được chỉ định, sau đó trong lệnh tải sẽ cung cấp đường dẫn hệ thống tệp cục bộ. Nếu từ khóa cục bộ không được chỉ định, chúng ta phải sử dụng đường dẫn HDFS của tệp.

Đây là một số ví dụ cho lệnh LOAD data LOCAL

Sau khi tải dữ liệu vào bảng Hive, chúng ta có thể áp dụng các Câu lệnh thao tác dữ liệu hoặc các hàm tổng hợp để lấy dữ liệu.

Ví dụ để đếm số lượng bản ghi:

Hàm tổng hợp đếm được sử dụng để đếm tổng số bản ghi trong một bảng.

'Tạo bảng bên ngoài':

Các tạo ra bên ngoài từ khóa được sử dụng để tạo bảng và cung cấp vị trí nơi bảng sẽ tạo, do đó Hive không sử dụng vị trí mặc định cho bảng này. An BÊN NGOÀI bảng trỏ đến bất kỳ vị trí HDFS nào để lưu trữ, thay vì lưu trữ mặc định.

Chèn lệnh:

Các chèn được sử dụng để tải bảng Hive dữ liệu. Chèn có thể được thực hiện vào một bảng hoặc một phân vùng.

& bull INSERT OVERWRITE được sử dụng để ghi đè lên dữ liệu hiện có trong bảng hoặc phân vùng.

& bull INSERT INTO được sử dụng để nối dữ liệu vào dữ liệu hiện có trong bảng. (Lưu ý: Cú pháp INSERT INTO hoạt động từ phiên bản 0.8)

Ví dụ cho lệnh ‘Partitioned By’ và ‘Clustered By’:

‘Được phân vùng bởi ‘Được sử dụng để chia bảng thành Phân vùng và có thể được chia thành các nhóm bằng cách sử dụng dấu‘ Nhóm bởi ' chỉ huy.

Khi chúng tôi chèn lỗi ném dữ liệu Hive, chế độ phân vùng động nghiêm ngặt và phân vùng động không được bật (bằng cách Jeff tại trang web dresshead ). Vì vậy, chúng ta cần thiết lập các thông số sau trong Hive shell.

đặt hive.exec.dynamic.partition = true

Để bật phân vùng động, theo mặc định, nó là false

đặt hive.exec.dynamic.partition.mode = nonstrict

Phân vùng được thực hiện theo danh mục và có thể được chia thành các nhóm bằng cách sử dụng lệnh ‘Clustered By’.

thập phân sang mã python nhị phân

Câu lệnh 'Drop Table' sẽ xóa dữ liệu và siêu dữ liệu cho một bảng. Trong trường hợp các bảng bên ngoài, chỉ siêu dữ liệu bị xóa.

Câu lệnh 'Drop Table' sẽ xóa dữ liệu và siêu dữ liệu cho một bảng. Trong trường hợp các bảng bên ngoài, chỉ siêu dữ liệu bị xóa.

Tải dữ liệu cục bộ trong đường dẫn ‘aru.txt’ vào tên bảng của bảng và sau đó chúng tôi kiểm tra bảng worker1 bằng cách sử dụng lệnh Chọn * từ tên bảng

Để đếm số lượng bản ghi trong bảng bằng cách sử dụng Chọn đếm(*) từ txnrecords

Tổng hợp:

Chọn số lượng (danh mục DISTINCT) từ tên bảng

Lệnh này sẽ đếm danh mục khác nhau của bảng ‘cate’. Ở đây có 3 loại khác nhau.

Giả sử có một bảng cate khác trong đó f1 là tên trường của danh mục.

Phân nhóm:

Lệnh nhóm được sử dụng để nhóm tập hợp kết quả theo một hoặc nhiều cột.

Chọn danh mục, tổng (số tiền) từ nhóm bản ghi txt theo danh mục

Nó tính toán số lượng của cùng một loại.

Kết quả một bảng được lưu trữ trong một bảng khác.

Tạo tên bảng mới như chọn * từ tên bảng cũ

Tham gia lệnh:

Đây là một bảng nữa được tạo trong tên ‘Thư’

Tham gia hoạt động :

Thao tác kết hợp được thực hiện để kết hợp các trường từ hai bảng bằng cách sử dụng các giá trị chung cho mỗi bảng.

Tham gia bên ngoài bên trái :

Kết quả của phép nối ngoài cùng bên trái (hoặc đơn giản là phép nối bên trái) cho bảng A và B luôn chứa tất cả các bản ghi của bảng “bên trái” (A), ngay cả khi điều kiện nối không tìm thấy bất kỳ bản ghi phù hợp nào trong bảng “bên phải” (B).

Tham gia bên ngoài bên phải :

Một phép nối ngoài bên phải (hoặc phép nối phải) gần giống với phép nối bên ngoài bên trái, ngoại trừ việc xử lý các bảng bị đảo ngược. Mỗi hàng từ bảng “bên phải” (B) sẽ xuất hiện trong bảng đã kết hợp ít nhất một lần.

Tham gia đầy đủ :

Bảng đã nối sẽ chứa tất cả các bản ghi từ cả hai bảng và điền vào NULL cho các kết quả phù hợp bị thiếu ở hai bên.

chuỗi fibonacci trong c ++

Sau khi thực hiện xong với hive, chúng ta có thể sử dụng lệnh thoát để thoát khỏi vỏ tổ.

Thoát khỏi Hive

Hive chỉ là một phần của câu đố lớn được gọi là Dữ liệu lớn và Hadoop. Hadoop không chỉ là Hive. Nhấp vào bên dưới để xem bạn nên thành thạo những kỹ năng nào khác trong Hadoop.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần bình luận và chúng tôi sẽ liên hệ lại với bạn.

Bài viết liên quan:

7 cách đào tạo về dữ liệu lớn có thể thay đổi tổ chức của bạn

Mô hình dữ liệu Hive