Hive ETL: Đang tải JSON, XML, Ví dụ về dữ liệu văn bản

Hive như một công cụ lưu trữ dữ liệu và ETL trên Hadoop Hệ sinh thái cung cấp các chức năng như Mô hình hóa dữ liệu, Thao tác dữ liệu, Xử lý dữ liệu và Truy vấn dữ liệu. Trích xuất dữ liệu trong Hive có nghĩa là tạo các bảng trong Hive và tải dữ liệu có cấu trúc và bán cấu trúc cũng như truy vấn dữ liệu dựa trên các yêu cầu.

Để xử lý hàng loạt, chúng tôi sẽ viết các tập lệnh được xác định tùy chỉnh bằng cách sử dụng bản đồ tùy chỉnh và rút gọn các tập lệnh bằng ngôn ngữ tập lệnh. Nó cung cấp SQL như môi trường và hỗ trợ để truy vấn dễ dàng.

Làm việc với dữ liệu có cấu trúc bằng Hive

Dữ liệu có cấu trúc có nghĩa là dữ liệu có định dạng hàng và cột phù hợp. Cái này giống hơn RDBMS dữ liệu với các hàng và cột thích hợp.

Ở đây chúng ta sẽ tải dữ liệu có cấu trúc có trong tệp văn bản trong Hive

Bước 1) Trong bước này, chúng ta đang tạo bảng “employees_guru” với các tên cột như Id, Name, Age, Địa chỉ, Mức lương và Phòng ban của nhân viên với các kiểu dữ liệu.

Làm việc với dữ liệu có cấu trúc bằng Hive

Từ ảnh chụp màn hình ở trên, chúng ta có thể quan sát những điều sau:

  1. Tạo bảng “employees_guru”
  2. Đang tải dữ liệu từ Workers.txt vào bảng”employees_guru”

Bước 2) Trong bước này, chúng ta sẽ hiển thị nội dung được lưu trữ trong bảng này bằng lệnh “Select”. Chúng ta có thể quan sát nội dung của bảng trong ảnh chụp màn hình sau.

Làm việc với dữ liệu có cấu trúc bằng Hive

– Đoạn mã mẫu

Các truy vấn cần thực hiện

1) Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING)
> Row format delimited
> Fields terminated by ',';
2) load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru;
3) select * from employees_guru;

Làm việc với dữ liệu có cấu trúc bán bằng Hive (XML, JSON)

Hive thực hiện các chức năng ETL trong hệ sinh thái Hadoop bằng cách hoạt động như Công cụ ETL. Có thể khó thực hiện giảm bản đồ trong một số loại ứng dụng, Hive có thể giảm độ phức tạp và cung cấp giải pháp tốt nhất cho các ứng dụng CNTT trong lĩnh vực kho dữ liệu.

Dữ liệu bán cấu trúc như XML và JSON có thể được xử lý với độ phức tạp ít hơn bằng cách sử dụng Hive. Đầu tiên chúng ta sẽ xem cách chúng ta có thể sử dụng Hive cho XML.

BẢNG XML ĐẾN HIVE

Trong phần này, chúng tôi sẽ tải dữ liệu XML vào các bảng Hive và chúng tôi sẽ tìm nạp các giá trị được lưu trữ bên trong các thẻ XML.

Bước 1) Tạo Bảng “xmlsample_guru” với cột str kiểu dữ liệu chuỗi.

Làm việc với dữ liệu bán cấu trúc bằng Hive

Từ ảnh chụp màn hình ở trên, chúng ta có thể quan sát những điều sau

  1. Tạo bảng “xmlsample_guru”
  2. Đang tải dữ liệu từ test.xml vào bảng “xmlsample_guru”

Bước 2) Sử dụng Xpath (), chúng ta sẽ có thể tìm nạp dữ liệu được lưu trữ bên trong các thẻ XML.

Làm việc với dữ liệu bán cấu trúc bằng Hive

Từ ảnh chụp màn hình ở trên, chúng ta có thể quan sát những điều sau

  1. Sử dụng phương thức XPATH( ) chúng ta đang tìm nạp các giá trị được lưu trữ trong /emp/esal/ và /emp/ename/
  2. Các giá trị hiện diện bên trong các thẻ XML. Trong bước này, chúng tôi đang hiển thị các giá trị thực tế được lưu trữ dưới các thẻ XML trong bảng “xmlsample_guru”

Bước 3) Trong bước này, chúng tôi sẽ tìm nạp và hiển thị XML thô của bảng “xmlsample_guru”.

Làm việc với dữ liệu bán cấu trúc bằng Hive

Từ ảnh chụp màn hình ở trên, chúng ta có thể quan sát những điều sau

  • Dữ liệu XML thực tế hiển thị với các thẻ
  • Nếu chúng tôi quan sát thấy một thẻ duy nhất, thì thẻ đó có “emp” là thẻ cha và “ename” và “esal” là thẻ con.

Đoạn mã:

Các truy vấn cần thực hiện

1) create table xmlsample_guru(str string);                                                                                                   2) load data local inpath '/home/hduser/test.xml' overwrite  into table xmlsample_guru;
3) select xpath(str,'emp/ename/text()'), xpath(str,'emp/esal/text()') from xmlsample_guru;

JSON (JavaKý hiệu đối tượng tập lệnh)

Dữ liệu Twitter và trang web được lưu trữ ở định dạng JSON. Bất cứ khi nào chúng tôi cố gắng tìm nạp dữ liệu từ máy chủ trực tuyến, nó sẽ trả về các tệp JSON. Sử dụng Hive làm kho lưu trữ dữ liệu, chúng tôi có thể tải dữ liệu JSON vào bảng Hive bằng cách tạo lược đồ.

JSON ĐẾN BẢNG HIVE

Trong phần này, chúng tôi sẽ tải dữ liệu JSON vào các bảng Hive và chúng tôi sẽ tìm nạp các giá trị được lưu trữ trong lược đồ JSON.

Bước 1) Trong bước này, chúng ta sẽ tạo tên bảng JSON “json_guru”. Sau khi tạo tải và hiển thị nội dung của lược đồ thực tế.

Bảng Json To Hive

Từ ảnh chụp màn hình ở trên, chúng ta có thể quan sát những điều sau

  1. Tạo bảng “json_guru”
  2. Đang tải dữ liệu từ test.json vào bảng “json_guru”
  3. Hiển thị lược đồ thực tế của tệp JSON được lưu trữ trong bảng json_guru

Bước 2) Sử dụng Phương thức get_json_object() chúng ta có thể tìm nạp các giá trị Dữ liệu được lưu trữ trong hệ thống phân cấp JSON

Bảng Json To Hive

Từ ảnh chụp màn hình ở trên, chúng ta có thể quan sát những điều sau

  1. Sử dụng get_json_object (str,'$.ecode), nó có thể tìm nạp các giá trị ecode từ bảng json_guru. Tương tự như vậy bằng cách sử dụng get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) nó sẽ lấy các giá trị ename sal từ bảng json_guru
  2. Các giá trị được lưu trữ bên trong Hệ thống phân cấp JSON trong json_guru

Đoạn mã

Các truy vấn cần thực hiện

1) create table json_guru(str string);
2) load data inpath 'home/hduser/test.json' into table json_guru;
3) select * from json1;
4) select get_json_object(str,'$.ecode') as ecode, get_json_object(str,'$.ename') as ename ,get_json_object(str,'$.sal') as salary from json_guru;

JSON phức tạp ĐẾN BẢNG HIVE

Trong phần này, chúng ta sẽ tải dữ liệu JSON phức tạp vào các bảng Hive và chúng ta sẽ lấy các giá trị được lưu trữ trong lược đồ JSON

Bước 1) Tạo complexjson_guru với trường cột đơn

Json phức tạp đến bảng Hive

Từ ảnh chụp màn hình ở trên, chúng ta có thể quan sát những điều sau

  1. Tạo trên bảng complexjson_guru với trường cột đơn là kiểu dữ liệu chuỗi
  2. Đang tải dữ liệu vào complexjson_guru từ tệp JSON phức tạp emp.json

Bước 2) Bằng cách sử dụng get_json_object, chúng tôi có thể truy xuất nội dung thực tế được lưu trữ bên trong hệ thống phân cấp tệp JSON.

Từ ảnh chụp màn hình sau đây, chúng ta có thể thấy đầu ra của dữ liệu được lưu trữ trong complexjson_guru.

Json phức tạp đến bảng Hive

Bước 3) Trong bước này, bằng cách sử dụng lệnh “Select”, chúng ta thực sự có thể thấy dữ liệu JSON phức tạp được lưu trữ bên trong bảng “complexjson_guru”

Json phức tạp đến bảng Hive

-Đoạn mã mẫu,

Các truy vấn cần thực hiện

1) create table complexjson_guru(json string);
2) load data inpath 'home/hduser/emp.json' into table complexjson_guru;
3) select get_json_object(json,'$.ecode') as ecode ,get_json_object(json,'$.b') as code, get_json_object(json,'$.c') from complexjson_guru;
4) select * from complexjson_guru;

Hive trong các dự án thời gian thực – Sử dụng khi nào và ở đâu

Khi nào và ở đâu sử dụng Hive trên hệ sinh thái Hadoop:

Thời Gian

  • Khi làm việc với các hàm thống kê mạnh mẽ và hiệu quả trên hệ sinh thái Hadoop
  • Khi làm việc với xử lý dữ liệu có cấu trúc và bán cấu trúc
  • Là công cụ kho dữ liệu với Hadoop
  • Nhập dữ liệu theo thời gian thực với HBASE, Hive có thể được sử dụng

Ở đâu

  • Để dễ dàng sử dụng ETL và công cụ lưu trữ dữ liệu
  • Để cung cấp môi trường kiểu SQL và truy vấn như SQL bằng HIVEQL
  • Để sử dụng và triển khai các tập lệnh bản đồ và bộ giảm tốc được chỉ định tùy chỉnh cho các yêu cầu cụ thể của khách hàng