j**********3 发帖数: 3211 | 1 偶offline用芒果,于是上芒果网站上看了看,它竟然说某旅游订票网什么的用它们做
数据库。。。让偶一惊,不是说芒果不稳定,容易丢数据么?这些网站怎么这么大胆?
偶的问题, 总的来说,就是有知名网站用nosql做primary db么?为什么?相比psql好
哪里?
其他问题:
问题1: 就算网站用芒果,也不是primary db吧?虽然是cheap data,但丢了用户数据
也不好吧,明明定了机票就说你没定,是不是也气死人了?!
问题2: 是不是replica就可以解决丢数据的事?这么说,芒果就safe了??好像不是吧
。。。(偶没文化,别拍偶)
问题3: 看很多地方说redis好用,但人家是memory里的,大型网站那么多数据,存
memory里,不撑死memory了?!
问题4: redis 是key value pair, 网站上数据,全都写成key-value pair,这也吓死
人了吧?不科学吧? |
g*****g 发帖数: 34805 | 2 Netflix 95%的数据在Cassandra里。除了payment以外的用户数据都在C*里。
【在 j**********3 的大作中提到】 : 偶offline用芒果,于是上芒果网站上看了看,它竟然说某旅游订票网什么的用它们做 : 数据库。。。让偶一惊,不是说芒果不稳定,容易丢数据么?这些网站怎么这么大胆? : 偶的问题, 总的来说,就是有知名网站用nosql做primary db么?为什么?相比psql好 : 哪里? : 其他问题: : 问题1: 就算网站用芒果,也不是primary db吧?虽然是cheap data,但丢了用户数据 : 也不好吧,明明定了机票就说你没定,是不是也气死人了?! : 问题2: 是不是replica就可以解决丢数据的事?这么说,芒果就safe了??好像不是吧 : 。。。(偶没文化,别拍偶) : 问题3: 看很多地方说redis好用,但人家是memory里的,大型网站那么多数据,存
|
j**********3 发帖数: 3211 | 3 好虫大牛可以详细说说吗?谢谢!
另外可以说说为什么吗?
如果。。。可以的话,能对上边的问题也做一下答复嘛?谢谢!
【在 g*****g 的大作中提到】 : Netflix 95%的数据在Cassandra里。除了payment以外的用户数据都在C*里。
|
w**z 发帖数: 8232 | 4 Cassandra 最强的是 horizontal scalability,和 DC 之间的replication. 没有哪个
rdms 可以与之媲美. consistency, Cassandra 可以tune, 可以满足绝大多数的use
case. 但如果你的数据量,和RPS不足够大,其实没有必要上NoSQL.
【在 j**********3 的大作中提到】 : 好虫大牛可以详细说说吗?谢谢! : 另外可以说说为什么吗? : 如果。。。可以的话,能对上边的问题也做一下答复嘛?谢谢!
|
z****e 发帖数: 54598 | 5 有replica丢什么数据,再说那些垃圾数据,丢了也没啥大不了的
维持在一个范围内就都可以接受,互联网公司多的是这种数据
就是钱,账户这些关键信息不敢丢,一点错都不敢有的那种
这种不要弄nosql,都还是放在db里面,其他的nosql没啥问题 |
z****e 发帖数: 54598 | 6 一般我们说的nosql都不是mongo那种
mongo跟cassandra有比较大的差异
nosql范围太大了,从file system到db中间任何一个都有可能存在
mongo就是最接近db的nosql
没有hdfs或cassandra的经验,nosql光靠mongo那边搞
总有点隔着靴子扰痒的感觉,不过小数据用mongo倒也是没啥错
大网站都把mongo当local cache用,减少nodes之间的io |
z****e 发帖数: 54598 | 7 从file system -> db
最没有结构 -> 结构最完整
hdfs, cassandra, couch, hbase, mongo, rdbms
cache比如redis之类的,接近mongo
越左越容易scale,越像老姜说的原始社会
越右结构越严格,真正的nosql,主要是左边两个
因为结构最混乱,结构越混乱,数学尤其是统计越重要
spark就主要伺候左边两个,外加一个hbase,因为eco近 |
j**********3 发帖数: 3211 | 8 我继续小白的刨根问底。。。dc和rps代表什么呢?
个
【在 w**z 的大作中提到】 : Cassandra 最强的是 horizontal scalability,和 DC 之间的replication. 没有哪个 : rdms 可以与之媲美. consistency, Cassandra 可以tune, 可以满足绝大多数的use : case. 但如果你的数据量,和RPS不足够大,其实没有必要上NoSQL.
|
j**********3 发帖数: 3211 | 9 expedia 不是应该有transction信息么?信用卡,金额,还有订票订旅馆信息,这些丢
了,用户骂死吧?
另外,mongo既然有replica,为啥还说芒果不安全?
【在 z****e 的大作中提到】 : 有replica丢什么数据,再说那些垃圾数据,丢了也没啥大不了的 : 维持在一个范围内就都可以接受,互联网公司多的是这种数据 : 就是钱,账户这些关键信息不敢丢,一点错都不敢有的那种 : 这种不要弄nosql,都还是放在db里面,其他的nosql没啥问题
|
j**********3 发帖数: 3211 | 10 大网站都把mongo当local cache用,减少nodes之间的io ---------这个是为啥?
另外,node之间io,是说node之间读写,对么?为啥要减少啊?它不是号称读写查找都
快么?
【在 z****e 的大作中提到】 : 一般我们说的nosql都不是mongo那种 : mongo跟cassandra有比较大的差异 : nosql范围太大了,从file system到db中间任何一个都有可能存在 : mongo就是最接近db的nosql : 没有hdfs或cassandra的经验,nosql光靠mongo那边搞 : 总有点隔着靴子扰痒的感觉,不过小数据用mongo倒也是没啥错 : 大网站都把mongo当local cache用,减少nodes之间的io
|
|
|
w**z 发帖数: 8232 | 11 data center, request per second
【在 j**********3 的大作中提到】 : 我继续小白的刨根问底。。。dc和rps代表什么呢? : : 个
|
p*****2 发帖数: 21240 | 12 大牛过来踢场子了
【在 j**********3 的大作中提到】 : 偶offline用芒果,于是上芒果网站上看了看,它竟然说某旅游订票网什么的用它们做 : 数据库。。。让偶一惊,不是说芒果不稳定,容易丢数据么?这些网站怎么这么大胆? : 偶的问题, 总的来说,就是有知名网站用nosql做primary db么?为什么?相比psql好 : 哪里? : 其他问题: : 问题1: 就算网站用芒果,也不是primary db吧?虽然是cheap data,但丢了用户数据 : 也不好吧,明明定了机票就说你没定,是不是也气死人了?! : 问题2: 是不是replica就可以解决丢数据的事?这么说,芒果就safe了??好像不是吧 : 。。。(偶没文化,别拍偶) : 问题3: 看很多地方说redis好用,但人家是memory里的,大型网站那么多数据,存
|
d******e 发帖数: 2265 | 13 有啊。著名4sq,两台大内存mongo.然后某天挂了。
【在 j**********3 的大作中提到】 : 偶offline用芒果,于是上芒果网站上看了看,它竟然说某旅游订票网什么的用它们做 : 数据库。。。让偶一惊,不是说芒果不稳定,容易丢数据么?这些网站怎么这么大胆? : 偶的问题, 总的来说,就是有知名网站用nosql做primary db么?为什么?相比psql好 : 哪里? : 其他问题: : 问题1: 就算网站用芒果,也不是primary db吧?虽然是cheap data,但丢了用户数据 : 也不好吧,明明定了机票就说你没定,是不是也气死人了?! : 问题2: 是不是replica就可以解决丢数据的事?这么说,芒果就safe了??好像不是吧 : 。。。(偶没文化,别拍偶) : 问题3: 看很多地方说redis好用,但人家是memory里的,大型网站那么多数据,存
|
d******e 发帖数: 2265 | 14 3.我门这里的傻逼程序猿现在把所有东西都load到redis里面。你妈不会挑性能,就这
么糊弄老板。
【在 j**********3 的大作中提到】 : 偶offline用芒果,于是上芒果网站上看了看,它竟然说某旅游订票网什么的用它们做 : 数据库。。。让偶一惊,不是说芒果不稳定,容易丢数据么?这些网站怎么这么大胆? : 偶的问题, 总的来说,就是有知名网站用nosql做primary db么?为什么?相比psql好 : 哪里? : 其他问题: : 问题1: 就算网站用芒果,也不是primary db吧?虽然是cheap data,但丢了用户数据 : 也不好吧,明明定了机票就说你没定,是不是也气死人了?! : 问题2: 是不是replica就可以解决丢数据的事?这么说,芒果就safe了??好像不是吧 : 。。。(偶没文化,别拍偶) : 问题3: 看很多地方说redis好用,但人家是memory里的,大型网站那么多数据,存
|
j**********3 发帖数: 3211 | 15 哦哦这样子。。。
【在 w**z 的大作中提到】 : data center, request per second
|
j**********3 发帖数: 3211 | 16 引来众多校长观摩,您也来说几句?
【在 p*****2 的大作中提到】 : 大牛过来踢场子了
|
j**********3 发帖数: 3211 | 17 能具体说说么?
为啥啊?然后怎么解决?
如果有replica,为何还挂了?
【在 d******e 的大作中提到】 : 有啊。著名4sq,两台大内存mongo.然后某天挂了。
|
j**********3 发帖数: 3211 | 18 能具体说说么?
为啥不能把所有东西都load到redis里,,为什么他们想load到redis里?
【在 d******e 的大作中提到】 : 3.我门这里的傻逼程序猿现在把所有东西都load到redis里面。你妈不会挑性能,就这 : 么糊弄老板。
|
z****e 发帖数: 54598 | 19
丢未必会丢,但是对于很多应用来说,不精确是无法接受的
c*最常见的一个应用是天气预报,你指望天气预报100%正确吗?
不可能吧?但是如果用天气预报的方式搞你的银行账户
你的账户里面大概有300块钱,但其实你有309.32
你对于大概300块钱这种回答会满意吗?估计直接冲到银行去砸柜台了
分布式有replica,但是导致同时会导致不同nodes的数据不一致
如果强求一致,就像mongo那样,就慢,随着nodes增加
慢的级别会呈指数级上升,最后无法忍受,不用了
这个对于绝大多数涉及到金钱交易的persistence来说是无法接受的
【在 j**********3 的大作中提到】 : expedia 不是应该有transction信息么?信用卡,金额,还有订票订旅馆信息,这些丢 : 了,用户骂死吧? : 另外,mongo既然有replica,为啥还说芒果不安全?
|
z****e 发帖数: 54598 | 20
node之间的io都是通过网络,这个什么时候快过?
【在 j**********3 的大作中提到】 : 大网站都把mongo当local cache用,减少nodes之间的io ---------这个是为啥? : 另外,node之间io,是说node之间读写,对么?为啥要减少啊?它不是号称读写查找都 : 快么?
|
|
|
w***g 发帖数: 5958 | 21 我们这里也是redis当道。通往技术正确的道路是很坎坷的,不过只要钱砸下去,
技术不正确也没关系。
觉得SQL要过时的,其实都是不懂SQL背后的技术。扔掉transaction, 可以快100倍,扔
掉persistence,可以快1000倍。再推广下,如果随便啥错误结果都可以忍受,快个100
万倍也没啥问题。各种NoSQL,上来的时候糙快猛,做了一阵,用的人多了,基本上都
会引入各种传统DB的特性。光说SQL语言,Cassandra上来的时候是个key-value store
,现在不也SQL了。
【在 d******e 的大作中提到】 : 3.我门这里的傻逼程序猿现在把所有东西都load到redis里面。你妈不会挑性能,就这 : 么糊弄老板。
|
S*********t 发帖数: 78 | 22 我觉得看是什么应用, 有些应用都load到memory里也可以的, 而且 redis 可以
cluster sharding的, 一台机器内存不够用多几台. |
S*********t 发帖数: 78 | 23 redis key value pair 当数据库用也可以的. 只要key 定义的好.
比如两个table: article, tag
在 redis里头
article:123 = "{article json}"
artlcle:123:tag = ['tag1', 'tag2']
这样就实现了 join |
g*****g 发帖数: 34805 | 24 你这啥理解?CQL就是个壳而已,底下的 wide column 是不变的。NoSQL本来就是 Not
only SQL的意思,叫嚣着要替代 SQL的都是门外汉。
100
store
【在 w***g 的大作中提到】 : 我们这里也是redis当道。通往技术正确的道路是很坎坷的,不过只要钱砸下去, : 技术不正确也没关系。 : 觉得SQL要过时的,其实都是不懂SQL背后的技术。扔掉transaction, 可以快100倍,扔 : 掉persistence,可以快1000倍。再推广下,如果随便啥错误结果都可以忍受,快个100 : 万倍也没啥问题。各种NoSQL,上来的时候糙快猛,做了一阵,用的人多了,基本上都 : 会引入各种传统DB的特性。光说SQL语言,Cassandra上来的时候是个key-value store : ,现在不也SQL了。
|
j**********3 发帖数: 3211 | 25 大牛快详细说说
Not
【在 g*****g 的大作中提到】 : 你这啥理解?CQL就是个壳而已,底下的 wide column 是不变的。NoSQL本来就是 Not : only SQL的意思,叫嚣着要替代 SQL的都是门外汉。 : : 100 : store
|
d****i 发帖数: 4809 | 26 大牛果然是明白人,NoSQL不是什么新东西,历史上出现过很多号称要替代SQL的数据库
技术,结果最后不是死了就是最后变成了SQL RDBMS,所以SQL用了五十年被证明是最优
解而且还会永久下去不是没有道理的,现在的NoSQL很多都是吹吹牛骗点钱,搞了半天
最后还要往SQL上面靠。
100
store
【在 w***g 的大作中提到】 : 我们这里也是redis当道。通往技术正确的道路是很坎坷的,不过只要钱砸下去, : 技术不正确也没关系。 : 觉得SQL要过时的,其实都是不懂SQL背后的技术。扔掉transaction, 可以快100倍,扔 : 掉persistence,可以快1000倍。再推广下,如果随便啥错误结果都可以忍受,快个100 : 万倍也没啥问题。各种NoSQL,上来的时候糙快猛,做了一阵,用的人多了,基本上都 : 会引入各种传统DB的特性。光说SQL语言,Cassandra上来的时候是个key-value store : ,现在不也SQL了。
|
w**z 发帖数: 8232 | 27 没用过,别瞎起哄。
【在 d****i 的大作中提到】 : 大牛果然是明白人,NoSQL不是什么新东西,历史上出现过很多号称要替代SQL的数据库 : 技术,结果最后不是死了就是最后变成了SQL RDBMS,所以SQL用了五十年被证明是最优 : 解而且还会永久下去不是没有道理的,现在的NoSQL很多都是吹吹牛骗点钱,搞了半天 : 最后还要往SQL上面靠。 : : 100 : store
|
n*****t 发帖数: 22014 | 28 作为一个马工,知其然还要知其所以然,每种技术都有特定的环境,选择合适的工具很
重要。nosql 给了更多的选项,对有些功能很合适,换一个可能很不合适,具体情况具
体分析了。
其实无所谓是不是 primary,你怎么定义是不是?比如 acct balance 存 oracle,
user review 存 redis,product detail 在 c*,到底哪个算 primary,按重要性还是
数据量还是使用频率?知道差异就行了。
版上有些人看到 sql 看到 sp 就头大群,我觉得基本的原理还是要学的,一个查询到
底怎么做效率最高,相应怎么设计 DB,等等。 |
w**z 发帖数: 8232 | 29 如果不理解cassandrad的工作原理,直接套用rdms 的思路用cql 会死得很难看。
Not
【在 g*****g 的大作中提到】 : 你这啥理解?CQL就是个壳而已,底下的 wide column 是不变的。NoSQL本来就是 Not : only SQL的意思,叫嚣着要替代 SQL的都是门外汉。 : : 100 : store
|
w**z 发帖数: 8232 | 30 cassandra 加cql 是为了吸引更多人来用。在community里,其实不喜欢它的人很多,
我也是其中之一。
100
store
【在 w***g 的大作中提到】 : 我们这里也是redis当道。通往技术正确的道路是很坎坷的,不过只要钱砸下去, : 技术不正确也没关系。 : 觉得SQL要过时的,其实都是不懂SQL背后的技术。扔掉transaction, 可以快100倍,扔 : 掉persistence,可以快1000倍。再推广下,如果随便啥错误结果都可以忍受,快个100 : 万倍也没啥问题。各种NoSQL,上来的时候糙快猛,做了一阵,用的人多了,基本上都 : 会引入各种传统DB的特性。光说SQL语言,Cassandra上来的时候是个key-value store : ,现在不也SQL了。
|
|
|
j**********3 发帖数: 3211 | 31 为什么不喜欢它?
【在 w**z 的大作中提到】 : cassandra 加cql 是为了吸引更多人来用。在community里,其实不喜欢它的人很多, : 我也是其中之一。 : : 100 : store
|
w***g 发帖数: 5958 | 32 NoSQL == non relational
NoSQL数据库的特点是存储的数据不是规则的表格。
后来变成not only sql是因为底气不足了。这种现象叫“backronym”。
Not
【在 g*****g 的大作中提到】 : 你这啥理解?CQL就是个壳而已,底下的 wide column 是不变的。NoSQL本来就是 Not : only SQL的意思,叫嚣着要替代 SQL的都是门外汉。 : : 100 : store
|
b******y 发帖数: 9224 | 33
100
store
哈哈,笑死了,正解。其实都是新瓶儿装旧酒。。。
SQL背后真正强大的还不只是技术,而是它的数学基础。nosql没有啥数学技术。
另外,确实是啊,最快的就是啥都往内存里鼓捣,很多时候简化就是最好的
optimization措施了。
【在 w***g 的大作中提到】 : 我们这里也是redis当道。通往技术正确的道路是很坎坷的,不过只要钱砸下去, : 技术不正确也没关系。 : 觉得SQL要过时的,其实都是不懂SQL背后的技术。扔掉transaction, 可以快100倍,扔 : 掉persistence,可以快1000倍。再推广下,如果随便啥错误结果都可以忍受,快个100 : 万倍也没啥问题。各种NoSQL,上来的时候糙快猛,做了一阵,用的人多了,基本上都 : 会引入各种传统DB的特性。光说SQL语言,Cassandra上来的时候是个key-value store : ,现在不也SQL了。
|
b******y 发帖数: 9224 | 34
我曾经认真研究过历史上的数据库,不过,看来,看去,再看来,看去,还是sql数据
库长久。历史上曾经出现过object database,最后也就是缩到telecom用了。历史上还
出现过file based system, 和今天的no sql差不多的架势,比如ibm的数据库(
universe db?)。其实说白了,就是极端的optimize到某些应用上了。牺牲了某些
transaction特性,当然性能提高了。
NoSQL其实就是历史的产物,硬件性能提升了,网络发达了,这些都给nosql提供了土壤。
其实,分布式系统和一台计算机系统,将来还会此起彼伏的博弈的。。。
【在 d****i 的大作中提到】 : 大牛果然是明白人,NoSQL不是什么新东西,历史上出现过很多号称要替代SQL的数据库 : 技术,结果最后不是死了就是最后变成了SQL RDBMS,所以SQL用了五十年被证明是最优 : 解而且还会永久下去不是没有道理的,现在的NoSQL很多都是吹吹牛骗点钱,搞了半天 : 最后还要往SQL上面靠。 : : 100 : store
|
a9 发帖数: 21638 | 35 其实这个nosql跟db2搞了好多年的xml库也没啥太大不同吧。
据库
最优
半天
壤。
【在 b******y 的大作中提到】 : : 我曾经认真研究过历史上的数据库,不过,看来,看去,再看来,看去,还是sql数据 : 库长久。历史上曾经出现过object database,最后也就是缩到telecom用了。历史上还 : 出现过file based system, 和今天的no sql差不多的架势,比如ibm的数据库( : universe db?)。其实说白了,就是极端的optimize到某些应用上了。牺牲了某些 : transaction特性,当然性能提高了。 : NoSQL其实就是历史的产物,硬件性能提升了,网络发达了,这些都给nosql提供了土壤。 : 其实,分布式系统和一台计算机系统,将来还会此起彼伏的博弈的。。。
|
p***o 发帖数: 1252 | 36 现在连c*不用cql用啥?
【在 w**z 的大作中提到】 : cassandra 加cql 是为了吸引更多人来用。在community里,其实不喜欢它的人很多, : 我也是其中之一。 : : 100 : store
|
g*****g 发帖数: 34805 | 37 如果你学过CAP theorem,你就不会把他们弄到对立面了。纯粹是CAP的不同取舍而已。
你这显示了基础不扎实。Non relational也好,not-only relational也好,从理论基
础上他们就是互补的。
【在 w***g 的大作中提到】 : NoSQL == non relational : NoSQL数据库的特点是存储的数据不是规则的表格。 : 后来变成not only sql是因为底气不足了。这种现象叫“backronym”。 : : Not
|
d****i 发帖数: 4809 | 38 你怎么知道我没用过?当然是用过了有比较了才会看清本质。
【在 w**z 的大作中提到】 : 没用过,别瞎起哄。
|
g*****g 发帖数: 34805 | 39 还是那句话,去学习一下 CAP theorem. NoSQL的出现,是因为 RDBMS永远不能解决
partition的问题,不是暂时的。两个互补的东西本来就谁都替代不了谁。
这个跟欧式和非欧几何是相似的,不要先入为主。
壤。
【在 b******y 的大作中提到】 : : 我曾经认真研究过历史上的数据库,不过,看来,看去,再看来,看去,还是sql数据 : 库长久。历史上曾经出现过object database,最后也就是缩到telecom用了。历史上还 : 出现过file based system, 和今天的no sql差不多的架势,比如ibm的数据库( : universe db?)。其实说白了,就是极端的optimize到某些应用上了。牺牲了某些 : transaction特性,当然性能提高了。 : NoSQL其实就是历史的产物,硬件性能提升了,网络发达了,这些都给nosql提供了土壤。 : 其实,分布式系统和一台计算机系统,将来还会此起彼伏的博弈的。。。
|
g*****g 发帖数: 34805 | 40 所以说本版水平低,就喜欢瞎嚷嚷。一会这个语言一会那个语言的,Helloworld懂几十
种。能熟练运用RDBMS和NoSQL做后端架构的,一个手就能数得过来。 |
|
|
j**********3 发帖数: 3211 | 41 好虫兄赶紧教教我啊!!赶紧教教我啊。。。。。我不知道才发帖问的啊。。。。。。。
【在 g*****g 的大作中提到】 : 所以说本版水平低,就喜欢瞎嚷嚷。一会这个语言一会那个语言的,Helloworld懂几十 : 种。能熟练运用RDBMS和NoSQL做后端架构的,一个手就能数得过来。
|
w***g 发帖数: 5958 | 42 我当然学过CAP theorem。基础不扎实的是你。
SQL vs NoSQL跟CAP完全是正交的概念。
当年MySQL和SQLite,连transaction都没有,也都是SQL数据库。
BerkeleyDB有transaction,仍然是NoSQL。
我看不上的(不是说你的C*)是很多鸡毛软件连个consistency model都没有
也出来混,更有一批屁都不懂的程序员还当个宝。
Most NoSQL stores lack true ACID transactions。原因不是因为NoSQL和
ACID冲突,而是程序员水平太差,写不出来支持ACID的软件。
【在 g*****g 的大作中提到】 : 如果你学过CAP theorem,你就不会把他们弄到对立面了。纯粹是CAP的不同取舍而已。 : 你这显示了基础不扎实。Non relational也好,not-only relational也好,从理论基 : 础上他们就是互补的。
|
g*****g 发帖数: 34805 | 43 我看你还是再读一遍CAP theorem吧。NoSQL如果完全支持ACID,就跟RDBMS的属性一样
了,那还叫
NoSQL干啥。NoSQL就是跟ACID不兼容的。Berkeley DB能支持ACID本质上是因为是单机
系统,你来个多机的Berkeley DB还能支持ACID我就服。
RDBMS支持ACID,是CA系统,NoSQL可以是CP或者AP,两者在CAP theorem下是互补的,
不是冲突的。
【在 w***g 的大作中提到】 : 我当然学过CAP theorem。基础不扎实的是你。 : SQL vs NoSQL跟CAP完全是正交的概念。 : 当年MySQL和SQLite,连transaction都没有,也都是SQL数据库。 : BerkeleyDB有transaction,仍然是NoSQL。 : 我看不上的(不是说你的C*)是很多鸡毛软件连个consistency model都没有 : 也出来混,更有一批屁都不懂的程序员还当个宝。 : Most NoSQL stores lack true ACID transactions。原因不是因为NoSQL和 : ACID冲突,而是程序员水平太差,写不出来支持ACID的软件。
|
w***g 发帖数: 5958 | 44 Transaction/ACID不是说一条数据写写进去还能读出来就可以了。
而是一段增删查改的程序作为一个整体,要没都运行了,要么都不运行。
一段程序运行到一半出了错,得全都能rollback才行(A = atomicity)。
这个可以说是整个数据库领域的基石,是非常底层的东西,是没法轻易绕过的。
不是说C*不牛。和老牌SQL数据比,C*只是入了门而已。
【在 w***g 的大作中提到】 : 我当然学过CAP theorem。基础不扎实的是你。 : SQL vs NoSQL跟CAP完全是正交的概念。 : 当年MySQL和SQLite,连transaction都没有,也都是SQL数据库。 : BerkeleyDB有transaction,仍然是NoSQL。 : 我看不上的(不是说你的C*)是很多鸡毛软件连个consistency model都没有 : 也出来混,更有一批屁都不懂的程序员还当个宝。 : Most NoSQL stores lack true ACID transactions。原因不是因为NoSQL和 : ACID冲突,而是程序员水平太差,写不出来支持ACID的软件。
|
w***g 发帖数: 5958 | 45 不反驳,做个snapshot。
【在 g*****g 的大作中提到】 : 我看你还是再读一遍CAP theorem吧。NoSQL如果完全支持ACID,就跟RDBMS的属性一样 : 了,那还叫 : NoSQL干啥。NoSQL就是跟ACID不兼容的。Berkeley DB能支持ACID本质上是因为是单机 : 系统,你来个多机的Berkeley DB还能支持ACID我就服。 : RDBMS支持ACID,是CA系统,NoSQL可以是CP或者AP,两者在CAP theorem下是互补的, : 不是冲突的。
|
g*****g 发帖数: 34805 | 46 你不用钻牛角尖。Berkeley DB能实现ACID是因为单机,你同样在上面可以实现SQL。
key-value,还是column based在我看来根本不是关键的区别。CAP theorom 说的取舍
也不管你用什么组织方式实现。
【在 w***g 的大作中提到】 : 不反驳,做个snapshot。
|
g*****g 发帖数: 34805 | 47 多新鲜呀,CAP theorem说了CAP不能同时满足,C*从设计上就没打算满足C,一旦能支
持C,A就要打折扣了。你本末倒置了。
【在 w***g 的大作中提到】 : Transaction/ACID不是说一条数据写写进去还能读出来就可以了。 : 而是一段增删查改的程序作为一个整体,要没都运行了,要么都不运行。 : 一段程序运行到一半出了错,得全都能rollback才行(A = atomicity)。 : 这个可以说是整个数据库领域的基石,是非常底层的东西,是没法轻易绕过的。 : 不是说C*不牛。和老牌SQL数据比,C*只是入了门而已。
|
w***g 发帖数: 5958 | 48 A in CAP == availability
A in ACID == atomicity
概念混淆。
【在 g*****g 的大作中提到】 : 多新鲜呀,CAP theorem说了CAP不能同时满足,C*从设计上就没打算满足C,一旦能支 : 持C,A就要打折扣了。你本末倒置了。
|
g*****g 发帖数: 34805 | 49 SO? 我说的是不满足C,我又没说不满足A。C in CAP本来就意味着Atomic consistency
,我看是你概念混淆了。
【在 w***g 的大作中提到】 : A in CAP == availability : A in ACID == atomicity : 概念混淆。
|
w***g 发帖数: 5958 | 50 你是对的,我太激动了。确实是不满足C。
【在 g*****g 的大作中提到】 : SO? 我说的是不满足C,我又没说不满足A。C in CAP本来就意味着Atomic consistency : ,我看是你概念混淆了。
|
|
|
g*****g 发帖数: 34805 | 51 所以虽然berkeley确实不是rdbms,但从cap角度看,跟rdbms就是一类东西。关键在于
取舍,而不在于实现的数据结构。nosql是coin name,不是什么严格定义,基本上就是
说非CA系统而已,不是非relational的意思。
【在 w***g 的大作中提到】 : 你是对的,我太激动了。确实是不满足C。
|
w**z 发帖数: 8232 | 52 有几个正经用过NoSQL的?都他妈的瞎起哄。用不用SQL其实不是重点。你说的对,CAP
才是重点。目测没几个真正理解Cap的。
【在 g*****g 的大作中提到】 : 所以说本版水平低,就喜欢瞎嚷嚷。一会这个语言一会那个语言的,Helloworld懂几十 : 种。能熟练运用RDBMS和NoSQL做后端架构的,一个手就能数得过来。
|
w**z 发帖数: 8232 | 53 把你的use case 拿出来看看, rdms 和 NoSQL 本质上怎么就一样了? SQL 就是一个用
来access data 的 语言而已,和rdms vs NoSQL 有毛关系?
【在 d****i 的大作中提到】 : 你怎么知道我没用过?当然是用过了有比较了才会看清本质。
|
B*****g 发帖数: 34098 | 54 马丹,这么强的帖子不留名哪行。同时求大牛们推荐卡桑工作机会,这一阵搞芒果真心
觉得不给力。 |
j**********3 发帖数: 3211 | 55 竟然引来了著名的北京mm!
北京mm赶紧来说几句嘛,我考虑了一下没去data sciense/database版发帖,因为。。
。那边的人都不活跃,发帖问问题没有人理啊。。。
北京mm来说说用mongo的心得,我现在自己玩mongo呢,不过只是存了一些data,做做
query而已。。。
【在 B*****g 的大作中提到】 : 马丹,这么强的帖子不留名哪行。同时求大牛们推荐卡桑工作机会,这一阵搞芒果真心 : 觉得不给力。
|
B*****g 发帖数: 34098 | 56 刚开始用,没经验
【在 j**********3 的大作中提到】 : 竟然引来了著名的北京mm! : 北京mm赶紧来说几句嘛,我考虑了一下没去data sciense/database版发帖,因为。。 : 。那边的人都不活跃,发帖问问题没有人理啊。。。 : 北京mm来说说用mongo的心得,我现在自己玩mongo呢,不过只是存了一些data,做做 : query而已。。。
|
z****e 发帖数: 54598 | 57 搞java的很少说sql过时,相反,jdbc, hibernate等的使用是java程序员的基本功,多
数是其它语言程序员爱说这个过时
但是,sql虽然横行了一段时间,同样存在先天不足,根本就没考虑分布式的情况,而
且对于很多垃圾数据,完全没有必要那么精确,将数据分级,哪些数据要重点保护,需
要投入足够资源搞脚本引擎,搞事务,哪些不要,这才是王道,而非无脑全部用一种精
度予以维护,软件发展到今天,几乎每个层面都在分级
:我们这里也是redis当道。通往技术正确的道路是很坎坷的,不过只要钱砸下去,
:技术不正确也没关系。 |
z****e 发帖数: 54598 | 58 是,nosql本来就是从这些东西发展起来的,实际上很多big data分析工具比如tableau
,palantir这些都可以从xml, spreadsheet中取数据
:其实这个nosql跟db2搞了好多年的xml库也没啥太大不同吧。
: |
z****e 发帖数: 54598 | 59 ql是一个脚本,绝大多数nosql都支持一个或者多个脚本,只不过未必是ql,js什么都
有可能,只要有实际的crud api你自己可以实现脚本引擎
:现在连c*不用cql用啥?
: |
z****e 发帖数: 54598 | 60 c*的工作几乎都是java的工作
只要是java的工作,都可以尝试着用上hdfs和c*
进一步还有spark
可以从log开始往这两个上面迁移
【在 B*****g 的大作中提到】 : 马丹,这么强的帖子不留名哪行。同时求大牛们推荐卡桑工作机会,这一阵搞芒果真心 : 觉得不给力。
|
|
|
z****e 发帖数: 54598 | 61
不用写,会用就行
系统之间的集成也是基本功的一种
看这个
http://www.bigsql.org/se/
【在 w***g 的大作中提到】 : 我当然学过CAP theorem。基础不扎实的是你。 : SQL vs NoSQL跟CAP完全是正交的概念。 : 当年MySQL和SQLite,连transaction都没有,也都是SQL数据库。 : BerkeleyDB有transaction,仍然是NoSQL。 : 我看不上的(不是说你的C*)是很多鸡毛软件连个consistency model都没有 : 也出来混,更有一批屁都不懂的程序员还当个宝。 : Most NoSQL stores lack true ACID transactions。原因不是因为NoSQL和 : ACID冲突,而是程序员水平太差,写不出来支持ACID的软件。
|
z****e 发帖数: 54598 | 62 json比起relational table来说,更object一点
所以如果数据结构用json的话,用的时候就非常直接了
而relational table还需要做一层orm
从这一方面说,oop的思想还是很重要的
只要用了oop,所有东西都可以变得简单
而不用oo,屎坑就不远了,java好就好在强制oo
就好比一个法律制度,不许所有人随地大小便
整个环境就干净了,而其他语言,只要你不注意
就有人随地大小便,一不小心就踩到了屎 |
x****u 发帖数: 44466 | 63 强制oo的不是java而是各种框架啊
【在 z****e 的大作中提到】 : json比起relational table来说,更object一点 : 所以如果数据结构用json的话,用的时候就非常直接了 : 而relational table还需要做一层orm : 从这一方面说,oop的思想还是很重要的 : 只要用了oop,所有东西都可以变得简单 : 而不用oo,屎坑就不远了,java好就好在强制oo : 就好比一个法律制度,不许所有人随地大小便 : 整个环境就干净了,而其他语言,只要你不注意 : 就有人随地大小便,一不小心就踩到了屎
|
j**********3 发帖数: 3211 | 64 How comes?
【在 x****u 的大作中提到】 : 强制oo的不是java而是各种框架啊
|
d*******r 发帖数: 3299 | 65 对啊,SQL 就是以 access data 语言,而且我觉得就是个残疾货.
SQL 其实和 Atomic Consistency 没有本质必然联系.
一直希望 SQL 早死,不过历史包袱太重,它死得比较慢.
【在 w**z 的大作中提到】 : 把你的use case 拿出来看看, rdms 和 NoSQL 本质上怎么就一样了? SQL 就是一个用 : 来access data 的 语言而已,和rdms vs NoSQL 有毛关系?
|
n*****t 发帖数: 22014 | 66 你们为什么跟 sql 这么深仇大恨啊
【在 d*******r 的大作中提到】 : 对啊,SQL 就是以 access data 语言,而且我觉得就是个残疾货. : SQL 其实和 Atomic Consistency 没有本质必然联系. : 一直希望 SQL 早死,不过历史包袱太重,它死得比较慢.
|
B*****g 发帖数: 34098 | 67 胡说,我们都支持SQL,现在大家都在学SQL,哈哈
【在 n*****t 的大作中提到】 : 你们为什么跟 sql 这么深仇大恨啊
|
w***g 发帖数: 5958 | 68 没有恨。BBS嘛,大家都是贬低别人来提升自己的逼格。
对方越牛B,贬低它就越显得自己牛B。
所以就老有java和C++互相干的,你有见过java和C++去跟python干的吗?
我一串帖子下来都在骂NoSQL,也是因为事实上这几年NoSQL确实比较牛B。
不说技术,至少银子都花花的在里面。
【在 n*****t 的大作中提到】 : 你们为什么跟 sql 这么深仇大恨啊
|
d*******r 发帖数: 3299 | 69 我确实恨SQL, 真不是为了提升逼格 :D
从本科开 RDBMS&SQL 这课, 我就恨死这套用关系和相关范式来建模的道道,
每次用都觉得超级别扭 ...
【在 n*****t 的大作中提到】 : 你们为什么跟 sql 这么深仇大恨啊
|
w**z 发帖数: 8232 | 70 我从来不贬低c++, c++听上去比Java 逼格高多了。会用pointer, 多他妈的牛b。
【在 w***g 的大作中提到】 : 没有恨。BBS嘛,大家都是贬低别人来提升自己的逼格。 : 对方越牛B,贬低它就越显得自己牛B。 : 所以就老有java和C++互相干的,你有见过java和C++去跟python干的吗? : 我一串帖子下来都在骂NoSQL,也是因为事实上这几年NoSQL确实比较牛B。 : 不说技术,至少银子都花花的在里面。
|
|
|
g*****g 发帖数: 34805 | 71 看来我老人家逼格最低。虽然这个版上NoSQL比我熟的一只手能数的过来。但我从来说
的就是99%的应用不需要NoSQL。 |
w***g 发帖数: 5958 | 72 赵策呢?赵策在哪儿?赶紧过来表个态。
【在 g*****g 的大作中提到】 : 看来我老人家逼格最低。虽然这个版上NoSQL比我熟的一只手能数的过来。但我从来说 : 的就是99%的应用不需要NoSQL。
|
w**z 发帖数: 8232 | 73 别谦虚了,你自称第二,没人敢说第一。
【在 g*****g 的大作中提到】 : 看来我老人家逼格最低。虽然这个版上NoSQL比我熟的一只手能数的过来。但我从来说 : 的就是99%的应用不需要NoSQL。
|
N********n 发帖数: 8363 | 74
SQL is un-debug-able.
【在 n*****t 的大作中提到】 : 你们为什么跟 sql 这么深仇大恨啊
|
d****i 发帖数: 4809 | 75 错鸟,错鸟,你用卡桑德拉就显得比别人用传统数据库的牛逼,不能让别人说NoSQL的
不是,这不就是wdong说的显得逼格高,就是装逼吗?我们用SQL的都是老土,但是能解
决99%的实际问题(如goodbug所言)就行鸟。
【在 w**z 的大作中提到】 : 把你的use case 拿出来看看, rdms 和 NoSQL 本质上怎么就一样了? SQL 就是一个用 : 来access data 的 语言而已,和rdms vs NoSQL 有毛关系?
|
n*****t 发帖数: 22014 | 76 时代不同了,阿拉小时候一塌刮子就没几种语言,BASIC COBOL,连 Pascal 都觉得很
高大上了。说实话 SQL 算不错了,COBOL 才是真尼玛恶心到吐啊。
【在 d*******r 的大作中提到】 : 我确实恨SQL, 真不是为了提升逼格 :D : 从本科开 RDBMS&SQL 这课, 我就恨死这套用关系和相关范式来建模的道道, : 每次用都觉得超级别扭 ...
|
j**********3 发帖数: 3211 | 77 发个帖子问技术,结果成了大牛们互喷了。。。。给菜鸟讲讲技术才是王道 |
w**z 发帖数: 8232 | 78 我哪个帖子讲了Cassandra 比mysql 牛?我一直说,量不大,rps 不大,没必要上
nosql, mysql 足以。你可以翻我以前的帖子看看。我说过很多次,我大部分的code是
jdbc connection
pool 加 sql 直接上的,我还用不少sp, 可以翻我以前的帖子。
【在 d****i 的大作中提到】 : 错鸟,错鸟,你用卡桑德拉就显得比别人用传统数据库的牛逼,不能让别人说NoSQL的 : 不是,这不就是wdong说的显得逼格高,就是装逼吗?我们用SQL的都是老土,但是能解 : 决99%的实际问题(如goodbug所言)就行鸟。
|
z****e 发帖数: 54598 | 79 对于大多数应用,db明显过剩了,当然能用db解决,但是sql并不容易搞,任何脚本过
度使用都是不合适的,无论是js还是sql,中间业务逻辑应该坚决交给java搞,至于后
面挂的东西,对于大部分需求来说,一般的file system足够了,尤其是web上的crud,
除非是金融银行这种大量涉及金钱的系统,一般网站,用db浪费了,绝大多数需求,用
single node cassadra足够了,下面需要做的就是简化c*的使用,让它的使用再傻瓜一点
:赵策呢?赵策在哪儿?赶紧过来表个态。
: |
z****e 发帖数: 54598 | 80 老型这破站就没用db不是?
:对于大多数应用,db明显过剩了,当然能用db解决,但是sql并不容易搞,任何脚本过
:度使用都是不合适的,无论是js还是sql,中间业务逻辑应该坚决交给java搞,至于后 |
|
|
O***b 发帖数: 104 | 81 赵老师,你说用file system 的意思是完全依靠文件做无结构存储,还是说用file-
based database 比如SQLite ?
一点
【在 z****e 的大作中提到】 : 对于大多数应用,db明显过剩了,当然能用db解决,但是sql并不容易搞,任何脚本过 : 度使用都是不合适的,无论是js还是sql,中间业务逻辑应该坚决交给java搞,至于后 : 面挂的东西,对于大部分需求来说,一般的file system足够了,尤其是web上的crud, : 除非是金融银行这种大量涉及金钱的系统,一般网站,用db浪费了,绝大多数需求,用 : single node cassadra足够了,下面需要做的就是简化c*的使用,让它的使用再傻瓜一点 : : :赵策呢?赵策在哪儿?赶紧过来表个态。 : :
|
z****e 发帖数: 54598 | 82 前者,其实vert.x就有file system,可以直接用来做存储
什么都自己写的话,很多概念更清晰,big data整个idea都是直接从file开始的
【在 O***b 的大作中提到】 : 赵老师,你说用file system 的意思是完全依靠文件做无结构存储,还是说用file- : based database 比如SQLite ? : : 一点
|
O***b 发帖数: 104 | 83 能不能给个应用场景?什么情况下文件系统就能满足绝大部分的要求?
Vert.x 看了下确实能直接操作文件。但是要 query 的情况下用文件系统怎么搞,或者
单个数据文件有描述性的 meta info,这些不用 db 怎么搞法?
【在 z****e 的大作中提到】 : 前者,其实vert.x就有file system,可以直接用来做存储 : 什么都自己写的话,很多概念更清晰,big data整个idea都是直接从file开始的
|
N********n 发帖数: 8363 | 84
别呀,HASHTABLE当QUEUE用,你的逼格很高啊。别人谁也不敢放这个卫星。
【在 g*****g 的大作中提到】 : 看来我老人家逼格最低。虽然这个版上NoSQL比我熟的一只手能数的过来。但我从来说 : 的就是99%的应用不需要NoSQL。
|
l*********s 发帖数: 5409 | 85 what is the problem?
【在 N********n 的大作中提到】 : : 别呀,HASHTABLE当QUEUE用,你的逼格很高啊。别人谁也不敢放这个卫星。
|
z****e 发帖数: 54598 | 86
好问题,这就是db跟file system一个最开始的不同
对于简单的file system,你当然什么都需要自己build from scratch
所以index这些需要你自己建,但是问题在于,大多数需求需要query吗?
还有一个,db的query是精确查找,但是大多数时候
对于无规则的数据,比如txt file这种,精确查找复杂度太高,太慢
只能找最相似的,这需要用到线性代数,所以这两种query是不一样的
db和nosql在这里就产生了分歧,走上了不同的道路
【在 O***b 的大作中提到】 : 能不能给个应用场景?什么情况下文件系统就能满足绝大部分的要求? : Vert.x 看了下确实能直接操作文件。但是要 query 的情况下用文件系统怎么搞,或者 : 单个数据文件有描述性的 meta info,这些不用 db 怎么搞法?
|
z****e 发帖数: 54598 | 87
当然vert.x现在还只是做到了一个file system
你可以再此基础之上做后续的开发,建立index这些
你上算法课不是学了一堆的排序嘛,这个时候就用得到了
上big data就从inverted index table开始学
这个时候也用得到了,看你想做什么,是想做一个精确查找的工作呢
还是一个相似度比较的工具,当然前者更精确,速度也更快
后者更慢,但是普适性更强,现有的nosql file system都是基于hdfs的
你可以考虑根据vert.x的file system来建立nosql,然后一步一步走向db
当然是单机,其实无非那几个东西,index, transaction,similarity
这几个解决了,问题就解决了一大半,db还有write ahead log
那这个就是纯粹为了对付断电这种事搞的,很多时候没有必要
【在 O***b 的大作中提到】 : 能不能给个应用场景?什么情况下文件系统就能满足绝大部分的要求? : Vert.x 看了下确实能直接操作文件。但是要 query 的情况下用文件系统怎么搞,或者 : 单个数据文件有描述性的 meta info,这些不用 db 怎么搞法?
|
g*****g 发帖数: 34805 | 88 问题在于这傻逼不懂得 C*长啥样。
【在 l*********s 的大作中提到】 : what is the problem?
|
k****i 发帖数: 101 | 89 Consistency, Availability, Partition-tolerance
RDBMS: favor C over A or P => CP, (CA unlikely if network unreliable)
NoSql: favor P over A or C => AP, (CP sub-optimal w/o normalized join)
NewSql: RDBMS 2.0
Mongo: NoSql-CP
【在 j**********3 的大作中提到】 : 偶offline用芒果,于是上芒果网站上看了看,它竟然说某旅游订票网什么的用它们做 : 数据库。。。让偶一惊,不是说芒果不稳定,容易丢数据么?这些网站怎么这么大胆? : 偶的问题, 总的来说,就是有知名网站用nosql做primary db么?为什么?相比psql好 : 哪里? : 其他问题: : 问题1: 就算网站用芒果,也不是primary db吧?虽然是cheap data,但丢了用户数据 : 也不好吧,明明定了机票就说你没定,是不是也气死人了?! : 问题2: 是不是replica就可以解决丢数据的事?这么说,芒果就safe了??好像不是吧 : 。。。(偶没文化,别拍偶) : 问题3: 看很多地方说redis好用,但人家是memory里的,大型网站那么多数据,存
|
g*****g 发帖数: 34805 | 90 RDBMS is CA, NoSQL can be AP or CP.
【在 k****i 的大作中提到】 : Consistency, Availability, Partition-tolerance : RDBMS: favor C over A or P => CP, (CA unlikely if network unreliable) : NoSql: favor P over A or C => AP, (CP sub-optimal w/o normalized join) : NewSql: RDBMS 2.0 : Mongo: NoSql-CP
|
|
|
x***4 发帖数: 1815 | 91 Yes. Cassandra is AP while mongo is CP. one can pick what he needs.
I feel Cassandra is further away from RDMS than mongo.
【在 g*****g 的大作中提到】 : RDBMS is CA, NoSQL can be AP or CP.
|
k****i 发帖数: 101 | 92 Standalone RDBMS or cluster of shards can be CA.
【在 g*****g 的大作中提到】 : RDBMS is CA, NoSQL can be AP or CP.
|
j**********3 发帖数: 3211 | 93 what is CA, what is CP
【在 k****i 的大作中提到】 : Standalone RDBMS or cluster of shards can be CA.
|
w**z 发帖数: 8232 | 94 Google CAP theorem
【在 j**********3 的大作中提到】 : what is CA, what is CP
|
j**********3 发帖数: 3211 | 95 谢谢!这个帖子里的东西我好好搜搜
【在 w**z 的大作中提到】 : Google CAP theorem
|
h******k 发帖数: 388 | 96 这个太抽象了。多少量算大?为什么淘宝用的mysql,facebook用cassandra?话说谁知道
amazon用到什么?听说好像amazon什么都是自己一套,而且不开源。
【在 w**z 的大作中提到】 : 我哪个帖子讲了Cassandra 比mysql 牛?我一直说,量不大,rps 不大,没必要上 : nosql, mysql 足以。你可以翻我以前的帖子看看。我说过很多次,我大部分的code是 : jdbc connection : pool 加 sql 直接上的,我还用不少sp, 可以翻我以前的帖子。
|
h**********c 发帖数: 4120 | 97 db主要问题不是断电,应该硬盘机械故障和盘面物理损伤
这个比率是非常高的,按我老经验,企业级硬盘的life time里100块最少坏掉一块
【在 z****e 的大作中提到】 : : 当然vert.x现在还只是做到了一个file system : 你可以再此基础之上做后续的开发,建立index这些 : 你上算法课不是学了一堆的排序嘛,这个时候就用得到了 : 上big data就从inverted index table开始学 : 这个时候也用得到了,看你想做什么,是想做一个精确查找的工作呢 : 还是一个相似度比较的工具,当然前者更精确,速度也更快 : 后者更慢,但是普适性更强,现有的nosql file system都是基于hdfs的 : 你可以考虑根据vert.x的file system来建立nosql,然后一步一步走向db : 当然是单机,其实无非那几个东西,index, transaction,similarity
|
z****e 发帖数: 54598 | 98
i was talking about write ahead log
not db as a whole
【在 h**********c 的大作中提到】 : db主要问题不是断电,应该硬盘机械故障和盘面物理损伤 : 这个比率是非常高的,按我老经验,企业级硬盘的life time里100块最少坏掉一块
|
h**********c 发帖数: 4120 | 99 那你的write ahead log应该是为了应付写失败,完整的句子
【在 z****e 的大作中提到】 : : i was talking about write ahead log : not db as a whole
|