你在以错误的原因看待NoSQL数据库吗?

原文地址(source):http://maurizioturatti.com/blog/2015/01/06/using-nosql-wrong-reason/

PostgreSQL与MongoDB的性能评测

我最近看到一篇报道,在某些条件下,PostgreSQL在很多重要地方胜过MongoDB,这让我想起了关于数据存储选择方面的、不同选项背后的理论,特别是在SQL和NoSQL解决方案之间的天真比较——不幸的是,这一幕经常发生。

上面的评测由EnterpriseDB创建,EnterpriseDB是开发PostgreSQL的商业公司(因此测评可能会有一点儿偏见……),除了这个明显的事实,我已经注意到PostgreSQL是让人惊奇的产品,在这一点上,我推荐它作为亟待解决的、大部分数据存储问题的、最佳方案之一。有着非凡性能需求的知名企业都正在PostgreSQL上投入巨大

然而,我这里的观点稍微不同:我自问,大多数公司是否正确地看待着“NoSQL”解决方案、以及性能需求是否已经成为他们急需考虑的。比如,让我们看看MongoDB词条在维基百科上的解释,它是我这些天经常在用的、一种数据库:

MongoDB是一种跨平台的面向文档的数据库。作为一种NoSQL数据库,MongoDB没有采用传统的基于表的关系型数据库结构,而是钟情于带有动态模式的类JSON文档(MongoDB称之为BSON),使得特定类型的应用程序里的数据集成更容易、更快速。

我想刻意强调句子中的“特定类型的应用程序里”,因为这恰恰就是我要说的:你不能仅仅因为性能就抛弃关系型数据库、转而采用面向文档的数据库,因为这是愚蠢的动机:一个调优的SQL数据库每秒处理的事务能够超过14000条,因此如果你超过了这个量级,说明你已经在一流的公司里了,有着首要的扩展需求:恭喜!

相反,

当实体大部分与树形结构相关,且关系模型持续被迫地创建join或重度反规范化关系而超越了其合理性时,文档数据库就是优于关系型数据库的更好的解决方案。

在这种情况下,数据模型符合上面的约束,那么面向文档结构有能力比关系型模型创建更少的、与面向对象设计不匹配的现象。据我们所知,所有重要的关系型数据库模式创建了大量的与对象模型相关的属性,这就是饱受诟病的对象关系阻抗不匹配(Object-relational...

乐趣和利益并存的机器学习的危险世界

原文地址(source):http://www.john-foreman.com/blog/the-perilous-world-of-machine-learning-for-fun-and-profit

管道丛林和隐藏的反馈循环

我很久没有写博客了。然而,我不想放弃,没有写作的主要原因是我在MailChimp的工作太忙了。数据科学小组和公司其他人一起紧密配合,期望在未来做一些有趣的东西。

受到Google出品的优秀论文“Machine Learning: The High Interest Credit Card of Technical Debt”的启发,我写了一篇文章。

那些计划靠开发产品数学模型系统谋生的人们需要关注这篇论文了。

然而我在这里不想扼要重复整篇论文,我想强调与生活密切相关的一些观点。

管道丛林(Pipeline...

技术行业中的不快(如今)

原文地址(source):http://blog.shutdown.com/#bums

孩子,请离开我的草地

我多少把自己视作技术专家,技术让我充满激情,的确如此。我在1995年从南卡罗来纳州来到硅谷,这里超越了我的梦想。我不知道我在这里会发展得怎么样,整个硅谷充满了和我一样、深爱着巨大的网络,并充满了激情。我不确定我是否曾经听说过硅谷——只是一家ISP公司有工作等着我,和我相比,公司现在相当成功了(尽管如此,我仍然尽量让卡罗来纳州人相信,互联网比影视剧《re-runs of》更让人激动)。在这里,整个地方都可以听到人们在谈论新想法、创业、新的编程语言、路由协议,还有人们尽量围绕互联网思考,以及互联网对我们的未来意味着什么。人们乐此不疲,因为他们看到了下一个一夜致富的模式,或者为了追求时髦把他们自己称作企业家。遗憾的是,人们当时很少使用这个词语,即使我们所有人都在开公司、或在创业公司工作。在那些日子里,创业并不是一个家伙支付了某个海外软件商店而杜撰出一名MVP,去运营一堆云实例,以期成为下一个WhatsApp。我们创业是因为技术本身是令人着迷的,我们想成为其中一分子。如果你想要正规网站,你可以购买MAE-WEST或PAIX运输商在科罗拉多州的一个机柜或机架,托管你的网站或服务将产生高额费用。你不得不慎重考虑,使你坚信正在开发的东西。你购买并配置了大量的网络设备、负载均衡和存储系统来扩展你的环境,这是昂贵的。为了更好地完成,你需要理解BGP(互联网骨干网协议),具备ASN、IPv4网段,对于电力、制冷和系统还要有相当的了解。‘web开发者’的概念比较新,他们大多数甚至了解如何开发我们的系统,对网络和底层编程有些了解。如果你不知道大部分或所有这些技术点,那么你就不能把自己称作程序员。

当然,我与时俱进。我花了大量时间紧跟最新的编程实践或设计方法论。我自己用新语言创建项目,让自己能够理解新语言解决老问题和新问题的方法。尽管如此,我还是不敢说和他们的开发者社区有联系。一个开发人员不必知道应用程序是怎样与数据库通信的、以及底层系统和存储集群发生的精致细节,这是一种有瑕疵的哲学,我不认同。那些人对于雇佣他们来开发平台的公司而言,就像定时炸弹。他们将快速地推出你的原型,不过把全部流量都压在了上面,让你自己准备支付与电影《加勒比海盗》一样规模的费用。

我认为,比程序员更糟糕的是我最讨厌的‘企业家’。这个词语如今感觉被污染了。最近朋友向我展示了一个家伙的主页,他声称在过去20年职业生涯里,已经开了大约100多家公司。我猜,他‘开公司’的标准是:在午饭前用几分钟形成某个产品的凝聚愿景(cohesive vision)。当然这个人和Barney Fife【注1】一样,拥有很多技术。因此不仅仅是他没有创办和运营这些所谓的成功公司,据推测他在接下来的几个月里和每个人在一起,而且它甚至也没有开发这些产品。

与这些黄金时代相比,今天的技术行业貌似处于一个可怕的十字路口,神秘的冠以“Y世代”【注2】的头衔,千禧世代(Millennials)和用于把产品推向市场的极度廉价和可用的资源,而云和便宜的海外外包店创建了产品。后者本身不一代是坏事情,但是这种快速致富的景象被污染了,变成了房地产泡沫时期的房产中介。当然有人找到谋生的手段,本身是没有错的,但是纯粹为了金钱而做这样的事情是没有灵魂的。确信你叔叔Joe真的给房地产带来了阳光。现在告诉他,西红柿已经涨到了20块一个,看看他会在院前干什么。技术行业从来都不适合这种人——我们内心是思想者和研究人员,做同样的事甚至不是为了薪水——仅仅因为我们想去做。我们是拆开电子玩具以搞清楚工作原理的孩子。我们把美国无线电器材公司(Radio Shack)买到的零件做成了蓝盒子拨号装置,不是因为我们想省去在公用电话打电话的钱,而是因为我们能够做到,因为我们非常渴望能用手头的技术做点儿什么。对我们而言,因特网充满极客神秘感的广阔海洋,我们想探索,并想成为令人惊奇的扩张中的一部分。我们做这样的事情,是因为对于我们感兴趣的主题,有着海量的信息要学习。我们使用Archie【注3】和Gopher【注4】传播开源软件、共享知识。我们偷偷溜进附近大学的计算机实验室,是为了把手放在没有权限访问的计算机上。在互联网社区有无私奉献。

这段黄金时代已经很久远了,貌似不会有把我们带回到那个充满魔力的时代的、另一波创新了,在那个时代这种惊天动地的技术革命仅仅存在于爱它本来样子的人的手里。话说回来,它偏离方向了,我将不能够坐在这里、情不自禁地怀念貌似成为了目击摇滚乐诞生日子的一部分。