2012-08-31 41 views
16

Tôi thực sự sẽ đánh giá cao nếu ai đó đặt một số ánh sáng vào sự lựa chọn của HBase như một công cụ lưu trữ dữ liệu cho OpenTSDB?Tại sao OpenTSDB chọn HBase cho lưu trữ dữ liệu Dòng thời gian?

Lựa chọn nào khác, chẳng hạn như Whisper (Graphite front-end + Carbon persistence), được xem xét?

Làm thế nào để một db định hướng cột chẳng hạn như HBase một lựa chọn tốt hơn cho dữ liệu chuỗi thời gian?

Trả lời

52

Tôi đã chọn HBase vì nó quy mô. Whisper giống như RRD, nó là một cơ sở dữ liệu kích thước cố định, nó phải phá hủy dữ liệu để làm việc trong các ràng buộc về không gian của nó. HBase cung cấp các thuộc tính sau đây làm cho nó rất phù hợp với cơ sở dữ liệu loạt thời gian quy mô lớn:

  1. Chia tỷ lệ tuyến tính. Bạn muốn lưu trữ dữ liệu? Thêm các nút khác. Tại StumbleUpon, nơi tôi đã viết OpenTSDB, dữ liệu chuỗi thời gian của chúng tôi được đặt cùng một cụm 20 nút được sử dụng chủ yếu cho phân tích và xử lý theo lô. Cụm này đã tăng lên 120 nút một cách nhanh chóng, và trong khi đó OpenTSDB, chỉ chiếm một phần nhỏ là phần nhỏ của khối lượng công việc của cụm, đã tăng lên một nửa số liệu nghìn tỷ.
  2. Tự động sao chép. Dữ liệu của bạn được lưu trữ trong HDFS, theo mặc định có nghĩa là 3 bản sao trên 3 máy khác nhau. Nếu một chiếc máy hay ổ đĩa chết, không có vấn đề gì lớn. Các ổ đĩa và máy móc chết mọi lúc khi bạn xây dựng các máy chủ hàng hóa. Nhưng vấn đề là: bạn không thực sự quan tâm.
  3. Quét hiệu quả. Hầu hết dữ liệu chuỗi thời gian được sử dụng để trả lời các câu hỏi giống như "điểm dữ liệu giữa thời gian X và Y" là gì. Nếu bạn cấu trúc khóa của mình đúng cách, bạn có thể thực hiện điều này rất hiệu quả với HBase bằng thao tác quét đơn giản.
  4. Thông lượng ghi cao. Các Bigtable design, mà HBase sau, sử dụng LSM trees thay vì, nói, B-cây, để làm cho viết rẻ hơn (tại các chi phí có khả năng đắt hơn lần đọc).

Thực tế là HBase là cột được định hướng gần như không quan trọng khi xem xét thực tế là hệ thống khóa giá trị được phân loại thực sự lớn.

Tất cả đồng bằng sông Hồng có trụ sở và đồng bằng sông Hồng có nguồn gốc từ các công cụ không thể đáp ứng các yêu cầu về quy mô của việc có thể chính xác tỷ cửa hàng và hàng tỷ điểm dữ liệu mãi mãi cho rất rẻ (chỉ là một vài byte của không gian đĩa thực tế mỗi điểm dữ liệu).

+1

Câu trả lời hay từ nhà thiết kế OpenTSDB. Cảm ơn, tsuna! – David

+1

Chỉ cần mở rộng câu hỏi đó, Tại sao bạn lại chọn viết một front-end mới, khi chúng ta đã có thứ gì đó mạnh mẽ như graphite ?. Tại sao bạn không mở rộng backend của graphite để lưu trữ dữ liệu TimeSeries cho HBase thay vì thì thầm? –

+2

Giao diện người dùng không thực sự quan trọng. Tôi muốn có một front-end tích hợp để giảm thiểu sự phụ thuộc và làm cho dự án khép kín, nhưng cuối cùng chúng tôi không muốn ép buộc mọi người sử dụng front-end đó, cái mà tôi biết không tốt lắm. Sự thúc đẩy lớn cho bản phát hành tính năng tiếp theo là cung cấp các API tốt hơn để cho phép tích hợp với giao diện người dùng của bên thứ ba, bao gồm cả Graphite. – tsuna

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