2011-11-17 21 views
6

Tôi có tệp XML phân cấp nhận được từ máy khách, tôi cần lưu trữ nó trong cơ sở dữ liệu Hbase, vì tôi mới sử dụng Hbase tôi không thể hiểu cách tiếp cận, bạn có thể hướng dẫn không tôi làm thế nào tôi nên tiến hành lưu trữ dữ liệu phân cấp này để HBase.Cách tốt nhất để lưu trữ dữ liệu phân cấp trong HBase

Cảm ơn trước

Trả lời

7

Dữ liệu cửa hàng HBase ở định dạng khôn ngoan Cột. Mỗi bản ghi phải có một khóa duy nhất. Các cột phụ có thể được tạo ra trên bay nhưng không phải là các cột chính.

Ví dụ: trình điều khiển xml này.

<X1> 
    <X2 name = "uniqueid">1</X2> 
    <X3> 
     <X4>value1</X4> 
     <X5>value2</X5> 
     <X6> 
      <X7>value3</X7> 
      <X8>value4</X8> 
     </X6> 
    </X3> 
    <X7>value5</X7> 
</X1> 

Trong trường hợp này, họ cột chính sẽ là X3 và X7. Id hàng có thể được lấy từ X2. Bạn có thể xây dựng một mục HBase tương đương này bằng java api như,

Put p = new Put("/*put the unique row id */ ".getBytes()); 

p.add("X3".getBytes(), "X4".getBytes(), value1.getBytes()); 

nơi đối số đầu tiên là gia đình cột và điều thứ hai được gọi là vòng loại cột (cột phụ).

Bạn cũng có thể sử dụng 2 nhà xây dựng lập luận như thế nào,

p.add("X3:X6:X7".getBytes(),value3); 

sau đó table.put(p). Đó là nó!!!

+0

Cảm ơn bạn rất nhiều .. tôi sẽ cố gắng và cung cấp cho bạn feedbak :) – Infinity