2014-04-15 31 views
7

Cassandra'da tablo girişleri yaparken ve blob tipi iyi bir seçim olduğunda tasarım kararı seçimini daha iyi anlamaya çalışıyordum.Bir Cassandra (ve CQL) tablosunda Blobs'u ne zaman kullanacaksınız ve bloblar tam olarak nedir?

Veri bloğu olarak bir bloğu ne zaman seçeceğimi gerçekten bilmediğimi anladım çünkü bir blobun gerçekten ne olduğundan (ya da kısaltmanın ne anlama geldiğinden) emin değildim. şimdi artık yok

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

Blob

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

ve yakın gelecekte destek verilmeyecektir: Böylece ben veri türü damla için aşağıdaki belgeleri okuyun karar verdi. dizeleri lekeler olarak kullanıyorlarsa, kullanıcı kodunuzu blob sabitlerine geçmek için güncelleyin. Blob sabiti 0xX + tarafından tanımlanan onaltılık bir sayıdır, burada hex, [0-9a-fA-F] gibi onaltılık bir karakterdir. Örneğin, 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 fonksiyon tipi tür bir argüman alır ve bir damla gibi döndürür. Tersine, blobAsType işlevi bir 64 bit blob argümanı alır ve bir bigint değerine dönüştürür. Örneğin, bigintAsBlob (3) 0x0000000000000003 ve blobAsBigint (0x0000000000000003) Ben bunun dışında ne var 3.

o onun sadece uzun onaltılık/ikili olmasıdır. Ancak, potansiyel bir tablo için bir sütun türü olarak ve diğer türden daha iyi ya da daha kötü nasıl kullanacağımı gerçekten takdir etmiyorum. Ayrıca, bazı özelliklerinden geçmek blobların hangi durumlarda iyi olduğunu anlamanın iyi bir yolu olabilir.

cevap

6

Blobs (İkili Büyük Objeler), verilerinizin C * tarafından sağlanan standart türlere uymadığı bir çözümdür. Örneğin, kullanıcıların herhangi bir türde dosya yüklemesine izin verildiği bir forum oluşturmak istediğini varsayalım. Bunları C * 'de saklamak için bir Blob kolonu (veya münferit hücrenin büyük olmasını istemediğiniz için muhtemelen birkaç blob sütunu) kullanırsınız.

Başka bir örnek, kullanıcıların geçerli bir fotoğrafa sahip olmalarına izin verilen bir tablo olabilir, bu fotoğraf bir blob olarak eklenebilir ve geri kalan kullanıcı bilgileriyle birlikte depolanabilir.

+0

Ancak metin ve blob, 2 GB veya diğer boyutlara göre aynı sınırlamalara sahiptir? – pinkpanther

+0

Her iki tür için de büyük olan hücreleri yapmamalısınız, ancak üst limit – RussS

+0

Kabul ediyorum! Sadece söylüyorum çünkü veri standart verilere uymayan yerlerde BLOB'un kullanılacağını belirttiniz. Tüm alanlar aynı sınırlamalara sahip olduğunda, önemli değil mi? Tabii, eğer ikili veri ise BLOB kullanıyoruz. – pinkpanther

İlgili konular