Helpex - Trao đổi & giúp đỡ Đăng nhập

Tận dụng kỹ năng Db2 của bạn với dữ liệu lớn

Ngô Minh Hà
· 17:00 09/09/2019
15 giờ trước

Tận dụng kỹ năng Db2 của bạn với dữ liệu lớn

Xem cách tận dụng kỹ năng Db2 của bạn với Dữ liệu lớn.

Các thách thức

Ý tưởng về trung tâm dữ liệu truyền thống tập trung vào công nghệ cơ sở dữ liệu quan hệ đang nhanh chóng phát triển. Nhiều nguồn dữ liệu mới tồn tại ngày nay mà không tồn tại ít như 5 năm trước. Các thiết bị như cảm biến máy hoạt động trên máy móc, ô tô và máy bay, cảm biến y tế, RFID, cũng như mạng xã hội và hoạt động nhấp qua web đang tạo ra khối lượng lớn dữ liệu chủ yếu là phi cấu trúc, không thể được lưu trữ hoặc phân tích trong RDMS truyền thống.

Các nguồn dữ liệu mới này đang thúc đẩy các công ty khám phá các khái niệm về Dữ liệu lớn và kiến ​​trúc Hadoop, vốn đang tạo ra một loạt vấn đề mới cho CNTT của công ty. Việc phát triển và quản trị Hadoop có thể phức tạp và tốn nhiều thời gian. Phát triển các chương trình MapReduce phức tạp để khai thác dữ liệu này là một kỹ năng phức tạp và rất chuyên biệt. Các công ty cần đầu tư vào việc đào tạo nhân sự hiện có của họ hoặc thuê những người chuyên về lập trình và quản trị MapReduce. Đây chính là lý do khiến nhiều doanh nghiệp chần chừ trong việc đầu tư vào các ứng dụng dữ liệu lớn.

Bạn cũng có thể thích:  Đơn giản hóa quyền truy cập vào cơ sở dữ liệu Db2 trong Máy tính xách tay Jupyter

Tận dụng các kỹ năng hiện có

Giải pháp cho vấn đề này là có thể tận dụng các kỹ năng SQL hiện có để phân tích dữ liệu Hadoop. Apache Hive là giải pháp ban đầu cho vấn đề này. Nó cung cấp một giao diện SQL mã nguồn mở cho Hadoop. Điều này cho phép một người có các kỹ năng SQL cơ bản chạy phân tích dữ liệu Hadoop bằng cách sử dụng ngôn ngữ SQL được gọi là HiveQL mà không có sự phức tạp của MapReduce.

Apache Hive

Vậy, chính xác thì Hive là gì? Apache Hive là một hệ thống kho dữ liệu cho Hadoop. Hive không phải là một cơ sở dữ liệu; nó là một trung tâm chứa các định nghĩa cấu trúc bảng mà bạn xác định khi bạn tạo một bảng hive. Kho lưu trữ này được gọi là HCatalog và thực sự là một cơ sở dữ liệu quan hệ. RDBMS thường là MySQL, Postgres hoặc Oracle.

Điều quan trọng là phải hiểu rằng Hive không cung cấp khả năng loại OLTP cho các Truy vấn Hadoop. HiveQL sẽ được dịch thành các công việc MapReduce bên dưới. Nó thực sự phù hợp nhất cho các truy vấn loại hàng loạt chạy dài do những hạn chế về hiệu suất của quá trình này.

Hive về cơ bản là 3 Điều:

  • Công cụ thực thi MapReduce
  • Mô hình lưu trữ
  • Kho hàng

Tận dụng kỹ năng Db2 của bạn với dữ liệu lớn

Bảng Hive có thể được phân vùng để giúp cải thiện hiệu suất:

Tận dụng kỹ năng Db2 của bạn với dữ liệu lớn

Db2 SQL lớn

Db2 Big SQL của IBM nâng khả năng Hive SQL lên một cấp độ cao hơn. Big SQL dựa trên kiến ​​trúc Db2 MPP và nằm trên Hive. Big SQL thay thế MapReduce bằng kiến ​​trúc MPP, nhanh hơn nhiều và cung cấp tính đồng thời cao, cho phép thể hiện trải nghiệm OLTP gần hơn nhiều.

Đối với một người có nền tảng Db2, Big SQL giúp dữ liệu Hadoop dễ dàng truy cập. Nó có một SQL hoàn toàn tuân thủ ANSI, cộng với cú pháp cho DDL và DML cũng gần giống với Db2 bản địa.

Đây là một ví dụ về câu lệnh tạo bảng:

create hadoop table users

(

 id int not null primary key,

 office_id int null,

 fname varchar(30) not null,

 lname varchar(30) not null)

row format delimited

 fields terminated by '|'

stored as textfile;


Lưu ý việc sử dụng "không null" và "khóa chính" trong các định nghĩa. Cú pháp này là duy nhất cho Big SQL. Những từ khóa này không thực sự được thực thi trong Hadoop nhưng vì cốt lõi của nó là Db2 nên thông tin được cung cấp cho trình tối ưu hóa và sẽ trải qua quá trình viết lại và tối ưu hóa truy vấn rất giống với Db2. Việc xác định mối quan hệ RI trong các bảng này cho phép trình tối ưu hóa thông minh hơn về thứ tự nối giống như Db2. Khi DDL này được thực thi, siêu dữ liệu sẽ được lưu trữ trong Hive HCatalog giống như các bảng Hive gốc.

Vì vậy, bây giờ bạn có thể muốn tạo một dạng xem. Ở đây một lần nữa cú pháp giống với Db2

create view my_users as

select fname, lname from myschema.users where id > 100;


Các tính năng khác trông quen thuộc với bạn:

  • “Bảng gốc” với hỗ trợ giao dịch đầy đủ trên Head Node:
    • Các bảng DB2 truyền thống, được định hướng theo hàng
    • BLU Columnar, Bảng trong bộ nhớ (Chỉ trên Head Node)
    • Bảng truy vấn được vật chất hóa
  • TẢI SNAPSHOT / chức năng bảng chụp nhanh
  • Lệnh RUNSTATS (db2) à lệnh ANALYZE (SQL lớn)
  • Bảo mật hàng và cột
  • Liên kết / Truy vấn linh hoạt
  • Lượt xem
  • Các thủ tục & UDF được lưu trữ trong SQL PL
  • Trình quản lý khối lượng công việc
  • Hệ thống không gian bảng tạm thời để hỗ trợ tràn sắp xếp
  • Không gian bảng tạm thời của người dùng cho các bảng tạm thời toàn cầu đã khai báo
  • HADR cho Head Node
  • Hỗ trợ Oracle PL / SQL
  • Bảng tạm thời toàn cầu đã khai báo
  • Truy vấn du hành thời gian

Phần kết luận

Hiện tại, có vô số công cụ SQL cho Hadoop. Các động cơ khác nhau giải quyết các vấn đề khác nhau. Rất có thể, không có công cụ SQL nào sẽ giải quyết tất cả các nhu cầu hoặc trường hợp sử dụng kho dữ liệu hiện đại của bạn. Tùy thuộc vào cách tổ chức của bạn đang lên kế hoạch sử dụng Hadoop, rất có thể bạn sẽ sử dụng kết hợp các công cụ SQL. Đối với các truy vấn hàng loạt chạy dài, bạn có thể muốn sử dụng Hive bản địa, đối với các truy vấn đặc biệt đơn giản, bạn có thể sử dụng Apache Spark SQL bản địa và đối với loại truy vấn BI phức tạp, Big SQL sẽ điền vào hóa đơn.

Vì vậy, nếu công ty của bạn đang bắt đầu sử dụng Hadoop hoặc có các cụm sản xuất hoàn chỉnh, các công cụ SQL này có thể giúp bạn tận dụng các kỹ năng Db2 của mình để bắt đầu làm việc với Hadoop. Hy vọng rằng, bài viết ngắn này sẽ giúp bạn bắt đầu hành trình khám phá Dữ liệu lớn!

Đọc thêm

Cách di chuyển cơ sở dữ liệu tại chỗ sang DB2 trên đám mây của IBM

Vùng chứa Docker và Kho DB2 của IBM - Giới thiệu

6 hữu ích 0 bình luận 8.7k xem chia sẻ

Có thể bạn quan tâm