HBase
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> HBase

Các khái niệm phát triển ứng dụng Cơ sở dữ liệu hoạt động Cloudera

Cơ sở dữ liệu hoạt động của Cloudera hiện có sẵn ở ba hệ số dạng khác nhau trong Nền tảng dữ liệu Cloudera (CDP).

Nếu bạn chưa quen với Cơ sở dữ liệu hoạt động của Cloudera, hãy xem bài đăng trên blog này. Và, hãy xem tài liệu ở đây.

Trong bài đăng trên blog này, chúng ta sẽ xem xét các khái niệm Apache HBase và Apache Phoenix có liên quan đến việc phát triển các ứng dụng cho Cơ sở dữ liệu hoạt động của Cloudera.

Nhưng trước tiên, đây là các yếu tố hình thức khác nhau trong đó Cơ sở dữ liệu hoạt động của Cloudera có sẵn cho các nhà phát triển:

Đám mây công cộng:

  • Mẫu cơ sở dữ liệu hoạt động của trung tâm dữ liệu CDP
  • Trải nghiệm Cơ sở dữ liệu hoạt động Cloudera (COD) là một giải pháp dbPaaS được quản lý

Tại chỗ:

  • Cơ sở đám mây riêng của CDP

Các yếu tố hình thức khác nhau cho phép bạn phát triển các ứng dụng có thể chạy Tại chỗ, trên đám mây công cộng hoặc cả hai.

Cơ sở dữ liệu hoạt động của Cloudera được cung cấp bởi Apache HBase và Apache Phoenix. Trong Cơ sở dữ liệu hoạt động của Cloudera, bạn sử dụng Apache HBase làm kho dữ liệu với HDFS và / hoặc S3 cung cấp cơ sở hạ tầng lưu trữ. Bạn có thể lựa chọn phát triển ứng dụng bằng cách sử dụng một trong các ứng dụng Apache HBase gốc hoặc bạn có thể sử dụng Apache Phoenix để truy cập dữ liệu. Apache Phoenix là một lớp SQL cung cấp giao diện ANSI SQL có lập trình. Nó hoạt động trên nền Apache HBase và giúp bạn có thể xử lý dữ liệu bằng cách sử dụng các truy vấn SQL tiêu chuẩn. (Các câu lệnh DML không phải là SQL chuẩn).

Nhiều nhà phát triển thích sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL) để truy cập dữ liệu được lưu trữ trong cơ sở dữ liệu và Apache Phoenix trong Cơ sở dữ liệu hoạt động Cloudera giúp bạn đạt được điều này. Nếu bạn là quản trị viên hoặc nhà phát triển cơ sở dữ liệu, bạn có thể bắt đầu viết truy vấn ngay lập tức bằng Apache Phoenix mà không cần phải quấn mã Java.

Để lưu trữ và truy cập dữ liệu trong cơ sở dữ liệu hoạt động, bạn có thể thực hiện một trong các thao tác sau:

Sử dụng API ứng dụng khách Apache HBase tự nhiên để tương tác với dữ liệu trong HBase:

  • Sử dụng các API HBase cho Java
  • Sử dụng máy chủ HBase REST

Bạn cũng có thể truy cập dữ liệu của mình bằng ứng dụng Hue HBase. Ứng dụng này là một bảng điều khiển mà bạn có thể sử dụng để truy cập dữ liệu được lưu trữ trong Apache HBase.

Hoặc, sử dụng Apache Phoenix với một trong các trình điều khiển Apache Phoenix để tương tác với dữ liệu được lưu trữ trong Apache HBase:

  • Sử dụng trình điều khiển JDBC cho Apache Phoenix
  • Sử dụng trình điều khiển ODBC cho Apache Phoenix
  • Sử dụng trình điều khiển Python cho Apache Phoenix

Hãy để chúng tôi xem xét các khái niệm trong Apache HBase và Apache Phoenix mà bạn cần để phát triển ứng dụng của mình.

Không gian tên

Không gian tên là một nhóm hợp lý các bảng tương tự như một cơ sở dữ liệu trong hệ thống cơ sở dữ liệu quan hệ.

Bảng và hàng

Một hoặc nhiều định tính cột tạo thành một hàng; một hoặc nhiều hàng tạo thành một bảng. Mỗi hàng có thể được xác định bằng một phím hàng. Khi viết ứng dụng, bạn có thể truy cập một hàng hoặc một chuỗi các hàng bằng cách sử dụng phím hàng duy nhất.

Họ cột

Họ cột được xác định tại thời điểm tạo bảng dựa trên cách chúng có liên quan với nhau. Họ cột có thể có các định tính cột nơi các giá trị có thể được lưu trữ. Các vòng loại cột đôi khi cũng chỉ được gọi là cột và được tổ chức thành các họ cột. Các họ cột được đặt cùng nhau trong kho lưu trữ.

Họ cột phân vùng dữ liệu theo chiều dọc. Nếu bạn có một trường hợp sử dụng trong đó bạn muốn truy cập một tập hợp các định tính cột, họ cột phân vùng sẽ giảm số lượng tệp lưu trữ để đọc và cải thiện hiệu suất đọc. Bạn phải tránh phân vùng nếu bạn muốn truy cập hai hoặc nhiều họ cột cùng một lúc.

Nén và mã hóa được áp dụng ở cấp cột-họ. Bạn không phải khai báo kiểu dữ liệu cho mỗi họ cột và một họ cột có thể chứa dữ liệu của nhiều kiểu dữ liệu.

Thành phần của bảng Apache HBase

Bảng Apache HBase bao gồm một hoặc nhiều họ cột và có thể chia thành nhiều vùng. Dữ liệu cho mỗi họ cột trong mỗi vùng được lưu trên một số tệp HF, nằm trong HDFS hoặc lưu trữ đối tượng như S3 và ADLS.

Mỗi vùng lưu trữ các hàng trong một phạm vi không gian phím cụ thể, nằm giữa khóa hàng bắt đầu và khóa hàng kết thúc. Các phím hàng là duy nhất cho một vùng và không có hai vùng nào trùng nhau. Một vùng được phục vụ bởi một RegionServer tại một thời điểm, đảm bảo tính nhất quán trong một hàng.

Để biết thêm về tách và hợp nhất vùng Apache HBase, hãy xem bài đăng trên blog tại đây:https://blog.cloudera.com/apache-hbase-region-splitting-and-merging/

Bố cục dữ liệu Apache HBase

Apache HBase vượt trội trong các trường hợp sử dụng Xử lý giao dịch trực tuyến (OLTP) vì có thể có nhiều hơn một phiên bản của đơn vị lưu trữ cơ bản được gọi là bộ định tính cột (CQ) dựa trên dấu thời gian. Giá trị duy nhất của từng phiên bản định tính cột được lưu trữ riêng biệt. Họ cột có thể có bất kỳ số lượng ô nào và chúng có thể hoàn toàn ngẫu nhiên và có các kiểu dữ liệu, số và tên khác nhau trong mỗi hàng. Bạn có thể lưu trữ bất kỳ số lượng ô nào trong một họ cột, nhưng lưu ý rằng các định mức cột trong một họ cột được lưu trữ riêng biệt với các định nghĩa cột trong các họ cột khác.

Nếu bạn quan tâm đến cách Apache HBase thực hiện Kiểm soát tương tranh đa vũ trụ (MVCC), bạn có thể đọc bài đăng trên blog này:https://blogs.apache.org/hbase/entry/apache_hbase_internals_locking_and.

Bảng Apache Phoenix

Bảng Apache Phoenix có mối quan hệ 1:1 với bảng Apache HBase. Bạn có thể chọn tạo bảng mới bằng câu lệnh Apache Phoenix DDL như CREATE TABLE hoặc tạo dạng xem trên bảng Apache HBase hiện có bằng câu lệnh VIEW.

Tạo, thả hoặc sửa đổi nội dung của bảng Apache HBase bằng cách sử dụng các câu lệnh Apache Phoenix DDL. Trong nhiều trường hợp, bạn có thể thay đổi bảng Apache Phoenix trực tiếp bằng cách sử dụng các API gốc Apache HBase. Điều này không được hỗ trợ trong Cơ sở dữ liệu hoạt động của Cloudera và sẽ dẫn đến lỗi, chỉ mục không nhất quán, kết quả truy vấn không chính xác và đôi khi làm hỏng dữ liệu.

Nhập dữ liệu

Bạn có thể sử dụng các câu lệnh SQL của Apache Phoenix để nhập dữ liệu vào Cơ sở dữ liệu hoạt động Cloudera (COD). COD cũng được tích hợp chặt chẽ với các dịch vụ Nền tảng Dữ liệu Cloudera khác. Bạn có thể xem cách sử dụng một số khả năng nhập dữ liệu trong các liên kết sau.

  • Sử dụng Spark hoặc Hive cùng với Apache HBase để nhập dữ liệu. Bạn có thể sử dụng đầu nối HBase-Spark. Ngoài ra, hãy xem danh sách các cách bạn có thể nhập dữ liệu vào HBase Nhập dữ liệu vào HBase.
  • Sử dụng Spark hoặc Hive cùng với Apache Phoenix để nhập dữ liệu. Bạn có thể sử dụng các đầu nối Phoenix-Spark và Phoenix-Hive. Xem, Tìm hiểu về trình kết nối Apache Phoenix-Spark và Tìm hiểu về trình kết nối Apache Phoenix-Hive.
  • Sử dụng Cloudera DataFlow (Apache NiFi) để nhập dữ liệu. Xem phần Thay đổi dữ liệu vào Apache HBase trong CDP Public Cloud.
  • Sử dụng Kỹ thuật Dữ liệu Cloudera (Spark) để nhập dữ liệu. Xem Cơ sở dữ liệu hoạt động của Cloudera - Kỹ thuật dữ liệu Cloudera sử dụng Phoenix.

Các lệnh Apache Phoenix DML

Bạn có thể sử dụng các lệnh Apache Phoenix DML như UPSERT hoặc DELETE. Đảm bảo rằng các lệnh DML mà bạn muốn sử dụng được Apache Phoenix hỗ trợ. Để biết thêm thông tin, hãy xem tài liệu tham khảo ngữ pháp Apache Phoenix.

Giao diện người dùng Huế để truy cập dữ liệu

Hue là một trình soạn thảo SQL tương tác dựa trên web cho phép bạn tương tác với dữ liệu được lưu trữ trong Cơ sở dữ liệu hoạt động của Cloudera. Để biết thêm thông tin về việc sử dụng Hue với dịch vụ Cơ sở dữ liệu hoạt động Cloudera, hãy xem truy cập Cơ sở dữ liệu hoạt động Cloudera Hue.

Đang chạy các ứng dụng trên Trung tâm dữ liệu và COD

Cơ sở dữ liệu hoạt động của Cloudera hỗ trợ các ứng dụng được viết bằng các ngôn ngữ được hỗ trợ này bằng Apache Phoenix. Bạn cũng có thể phát triển các ứng dụng Apache HBase bằng cách sử dụng các API HBase riêng cho Java. Chúng tôi sẽ trình bày thêm về cách phát triển ứng dụng và một số ứng dụng mẫu mà bạn có thể sử dụng trong một vài bài đăng blog tiếp theo.

Trải nghiệm Cơ sở dữ liệu hoạt động (COD) của Cloudera cung cấp khả năng truy cập dễ dàng vào thông tin kết nối máy khách từ giao diện người dùng. Để biết thêm thông tin, hãy xem Thông tin kết nối ứng dụng khách để soạn đơn theo COD của bạn. Để biết thêm thông tin, hãy xem Sử dụng Apache Phoenix để Lưu trữ và Truy cập Dữ liệu.

Trong CDP Private Cloud Base, bạn có thể tìm thấy thông tin này từ giao diện người dùng Apache Knox nếu bạn muốn kết nối với Máy chủ truy vấn Phoenix (PQS) thông qua Apache Knox hoặc sử dụng trình điều khiển JDBC và JAR ứng dụng khách Phoenix có mặt ở vị trí sau trong một cụm nút có vai trò cổng phượng hoàng / opt / cloudera / parcels / CDH / lib / phoenix.

Kết luận

Trong các bài đăng tiếp theo, chúng ta sẽ xem xét các cân nhắc phát triển và xây dựng ứng dụng bao gồm các ứng dụng mẫu.

Bạn có thể xem một số ứng dụng mẫu hiện có và tài liệu cho Cơ sở dữ liệu hoạt động Cloudera trong Trung tâm dữ liệu và trải nghiệm Cơ sở dữ liệu hoạt động Cloudera giải pháp dbPaaS trong các liên kết sau:

  • Tổng quan về trải nghiệm Cơ sở dữ liệu hoạt động của Cloudera
  • Bắt đầu nhanh Cơ sở dữ liệu hoạt động của Cloudera
  • Bắt đầu với mẫu Trung tâm dữ liệu cơ sở dữ liệu hoạt động
  • Xây dựng ứng dụng học máy với bàn làm việc và cơ sở dữ liệu hoạt động của khoa học dữ liệu Cloudera

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Khả năng truy cập cơ sở dữ liệu hoạt động

  2. Apache Spark đi kèm với Apache HBase với Mô-đun HBase-Spark

  3. Tìm hiểu Tính năng sẵn có cao của Hadoop

  4. Chuyển đổi kỹ thuật số là một hành trình dữ liệu từ Edge đến Insight

  5. Kho dữ liệu thế hệ tiếp theo tại Santander Vương quốc Anh