2014-04-15 15 views
7

Tôi đã cố gắng để hiểu rõ hơn lựa chọn quyết định thiết kế khi thực hiện các mục nhập bảng trong cassandra và khi loại blob là một lựa chọn tốt.Khi nào sử dụng Blobs trong bảng Cassandra (và CQL) và các đốm màu chính xác là gì?

Tôi nhận ra rằng tôi không thực sự biết khi nào nên chọn blob làm kiểu dữ liệu vì tôi không chắc chắn về blob thực sự là gì (hoặc viết tắt của từ viết tắt). Vì vậy tôi quyết định đọc tài liệu sau đây cho kiểu dữ liệu blob:

http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/blob_r.html

Blob

Cassandra 1.2.3 still supports blobs as string constants for input (to allow smoother transition to blob constant). Blobs as strings are 

nay phản đối và sẽ không được hỗ trợ trong tương lai gần. Nếu bạn đang sử dụng các chuỗi làm hình tròn, hãy cập nhật mã máy khách của bạn để chuyển sang blob hằng số. Hằng số blob là số thập lục phân được xác định bởi 0xX + trong đó hex là ký tự thập lục phân, chẳng hạn như [0-9a-fA-F]. Ví dụ: 0xcafe.

Blob conversion functions 

A number of functions convert the native types into binary data (blob). For every <native-type> nonblob type supported by CQL3, the 

typeAsBlob function lấy đối số kiểu loại và trả về dạng blob. Ngược lại, hàm blobAsType lấy đối số blob 64 bit và chuyển đổi nó thành giá trị bigint. Ví dụ, bigintAsBlob (3) là 0x0000000000000003 và blobAsBigint (0x0000000000000003) là 3.

Những gì tôi bước ra khỏi nó là nó chỉ là một lâu hexadecimal/nhị phân. Tuy nhiên, tôi không thực sự đánh giá cao khi tôi sẽ sử dụng nó như là một loại cột cho một bảng tiềm năng và làm thế nào nó tốt hơn hoặc tồi tệ hơn loại khác. Ngoài ra, đi qua một số thuộc tính của nó có thể là một cách tốt để tìm ra những tình huống blobs là tốt cho.

Trả lời

6

Blobs (Binary Large OBjectS) là giải pháp khi dữ liệu của bạn không phù hợp với các loại tiêu chuẩn do C * cung cấp. Ví dụ: Giả sử bạn muốn tạo một diễn đàn nơi người dùng được phép tải lên các tệp thuộc bất kỳ loại nào. Để lưu trữ chúng trong C *, bạn sẽ sử dụng cột Blob (hoặc có thể một số cột blob vì bạn không muốn các ô riêng lẻ trở nên lớn).

Ví dụ khác có thể là bảng nơi người dùng được phép có ảnh hiện tại, ảnh này có thể được thêm dưới dạng blob và được lưu trữ cùng với phần còn lại của thông tin người dùng.

+0

Nhưng văn bản và blob có cùng giới hạn đối với kích thước tức là 2 GB? – pinkpanther

+0

Bạn không nên tạo các ô lớn cho một trong hai loại nhưng đó là giới hạn trên – RussS

+0

Tôi đồng ý! Tôi chỉ nói vì bạn đã đề cập rằng BLOB sẽ được sử dụng khi dữ liệu không phù hợp với loại tiêu chuẩn. Khi tất cả các trường có cùng giới hạn, nó không quan trọng đúng không? Ofcourse, nếu đó là dữ liệu nhị phân, chúng tôi sử dụng BLOB. – pinkpanther

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