2012-04-05 33 views
24

Có cách nào tôi có thể xuất kết quả từ quá trình quét trong vỏ cơ sở dữ liệu vào một tệp không? Tôi giả định điều này là dễ dàng nhưng tôi đã không thể tìm thấy bất cứ điều gì trong tài liệu hướng dẫn.Lấy kết quả từ quét trong vỏ cơ sở

Trả lời

41

Tôi biết rằng bài đăng này là khá cũ nhưng tôi đã tìm kiếm một cái gì đó về HBase bản thân mình và đi qua với nó.

Tôi không biết đây có phải là cách tốt nhất để làm điều đó không, nhưng bạn chắc chắn có thể sử dụng tùy chọn kịch bản mà HBase cung cấp cho bạn. Chỉ cần mở một vỏ (tốt nhất là vào thư mục bin của HBase) và chạy

echo "scan 'foo'" | ./hbase shell > myText 

nơi foo là tên của bảng bạn muốn quét. Nếu sau đó bạn mở myText, bạn sẽ thấy kết quả trong đó. Hy vọng tôi đã giúp!

+0

Làm việc như một sự quyến rũ :) –

+1

Vấn đề với giải pháp này là hbase là khá trò chuyện, vì vậy bạn không chỉ nhận được đầu ra lệnh, bạn cũng nhận được một loạt các cuộc trò chuyện HBase. Nếu bạn muốn lấy dữ liệu và phân tích nó, nó khá là khập khiễng. –

+0

@KenWilliams Ngoài ra, nó hơi chậm. Có cách nào nhanh hơn bạn biết không. Trên thực tế tôi phải thực hiện một lệnh trong vòng lặp cho 24 lần và nó được dùng rất nhiều thời gian và tôi không muốn viết một mã java để làm điều đó. – sahu

8

Một tùy chọn sử dụng một EOF đây doc, có khả năng tùy biến hơn:

hbase shell <<EOF >myText 
scan 'foo' 
EOF 
3

Bạn cũng có thể sử dụng ở đây chuỗi quá (nếu vỏ của bạn hỗ trợ chúng):

$ hbase shell <<< "scan 'sometable'" > myoutput.txt 

Trên tôi đang làm điều này trong Bash trên một hệ thống Linux, ví dụ.

Các vấn đề liên quan