2010-05-09 69 views
26

在SQL或NoSQL世界中是否有支持protocol buffers的數據庫? (支持可能意味着各種各樣的東西,但希望包括能夠在協議緩衝區中的字段上索引。)有沒有支持協議緩衝區的數據庫?

+0

15分鐘花在google搜索沒來任何積極的結果。 Hadoop HBase使用協議緩衝區作爲服務通信的一部分,並具有Thrift客戶端API,但數據存儲層沒有任何內容。 Hadoop Avro與PBs處於同一個空間,或許我們將來會看到與HBase的整合? – mdma 2010-05-09 19:05:52

+0

爲什麼不使用關係數據庫(將每個值放在它自己的列中而不是一列中的所有值)? – 2010-05-30 22:15:03

+0

@Brendan:當然,這是一條路。大多數情況下,我很驚訝noSQL數據庫沒有一個開箱即用的解決方案,因爲像MongoDB這樣的一些存儲類似的二進制blob。 – 2010-05-31 01:29:18

回答

3

我不知道任何(不是他們不存在,我只是不知道他們) ,但也許值得討論一個替代戰略和利弊。

通常你會想要存儲你的協議緩衝區的序列化版本,通過一些特定的鍵(一個唯一的標識符,也許)索引。然後,您可以爲指向該唯一標識符的其他感興趣的字段構建二級索引。這個想法是,你會希望像這樣的顯式索引擴展到提供任意索引的系統之外。這顯然打開了一個新問題的世界(比如陳舊的任意索引)。

+1

爲什麼任何人想要把key和其他實體包裝到protobuf中,而不是任何語言只能用於數據庫索引的基本類型等等。它對於它的目的非常有用,但並不意味着它應該被用於任何不使用的地方任何意義, – mamu 2010-06-16 03:49:39

+0

如果你想在很多機器上使用你的數據庫,你可能需要自己處理二級索引,而不是依靠某些數據庫軟件來完成它。 – allenporter 2010-07-05 02:36:56