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

Mục lục:

Anonim

Hive như một ETL và công cụ lưu trữ dữ liệu trên hệ sinh thái Hadoop cung cấp các chức năng như Lập mô hình 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.

Đối với 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à giảm các tập lệnh bằng ngôn ngữ kịch bản. Nó cung cấp môi trường giống SQL và hỗ trợ truy vấn dễ dàng.

Trong hướng dẫn này, bạn sẽ học-

  • Làm việc với Dữ liệu có cấu trúc bằng Hive
  • Làm việc với dữ liệu có cấu trúc Semi bằng Hive (XML, JSON)
  • Hive trong các dự án thời gian thực - Sử dụng khi nào và ở đâu

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 phù hợp của các hàng và cột. Đây giống như dữ liệu RDBMS với các hàng và cột thích hợp.

Ở đây, chúng tôi 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 tôi đang tạo bảng "nhân viên_guru" với các cột tên như Id, Tên, Tuổi, Địa chỉ, Mức lương và Bộ phận của nhân viên với các kiểu dữ liệu.

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

  1. Tạo bảng "nhân viên_guru"
  2. Đang tải dữ liệu từ Character.txt vào bảng "worker_guru"

Bước 2) Trong bước này, chúng tôi đang hiển thị nội dung được lưu trữ trong bảng này bằng cách sử dụng lệnh "Chọn". Chúng ta có thể quan sát mục lục trong ảnh chụp màn hình sau đây.

- Đoạn mã mẫu

Các truy vấn được 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 Semi 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ư một công cụ ETL. Có thể khó thực hiện việc thu nhỏ 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. Trước tiên, chúng ta sẽ xem cách chúng ta có thể sử dụng Hive cho XML.

BẢNG XML VÀO 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 với kiểu dữ liệu chuỗi.

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 phương thức XPath (), chúng tôi sẽ có thể tìm nạp dữ liệu được lưu trữ bên trong các thẻ XML.

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 tôi đ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 thị 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 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."

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 ta quan sát thẻ đơn, nó có "emp" là thẻ mẹ với "ename" và "esal" là thẻ con.

Đoạn mã:

Các truy vấn được 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 (Ký hiệu đối tượng JavaScript)

Dữ liệu Twitter và các 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ừ các 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 ta có thể tải dữ liệu JSON vào các bảng Hive bằng cách tạo các lược đồ.

JSON CHO 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ế.

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 tôi có thể tìm nạp các giá trị Dữ liệu được lưu trữ trong phân cấp JSON

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ể lấy các giá trị sinh thái 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 JSON Hierarchy trong json_guru

Đoạn mã

Các truy vấn được 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;

BẢNG JSON TO HIVE phức tạp

Trong phần này, chúng tôi sẽ tải dữ liệu JSON phức tạp 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) Tạo complexjson_guru với trường cột đơn

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àm kiểu dữ liệu chuỗi
  2. Đang tải dữ liệu vào complexjson_guru từ tệp JSON phức hợp emp.json

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

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

Bước 3) Trong bước này, bằng cách sử dụng lệnh "Chọn", chúng tôi 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"

- Đoạn mã mẫu,

Các truy vấn được 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

Sử dụng Hive khi nào và ở đâu trên Hệ sinh thái Hadoop:

Khi nào

  • Khi làm việc với các chức năng thống kê mạnh mẽ và mạnh mẽ 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 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à trình thu gọn được chỉ định tùy chỉnh cho các yêu cầu của khách hàng cụ thể