我是riak的菜鸟,并且一直在尝试使用erlang中的riakc测试riak的查询方面。但是我找不到任何关于如何查询与旧SQL方式匹配的数据库的示例,仅关于如何从单个字段中获取单个值。我想我错过了一些东西,但我真正想要的只是一个带有匹配riakc代码的标准SQL查询。
SELECT * FROM bucket;
SELECT * FROM bucket LIMIT 10, 100;
SELECT id, name FROM bucket;
SELECT * FROM bucket WHERE name="john" AND surname LIKE "Ste%";
SELECT * FROM bucket LEFT JOIN bucket2 ON bucket.id = bucket2.id2;
我认为你如何写这些没有直接的关联,但希望有一种标准的方式,并且在某处有一个简单易懂的方法来解释riakc中的这些查询(甚至只是riak)。
我看过mapreduce,但发现只是简单的查询就让人感到困惑
答案 0 :(得分:1)
Riak是一个NoSQL数据库,更具体地说是一个键值数据库,并且没有像SQL这样的查询语言。使用Riak时,与使用关系数据库的方式相比,您需要以完全不同的方式对数据进行建模和查询,以便从中获得最大收益。尝试以关系方式建模和查询数据,例如通过广泛使用二级索引或尝试使用map / reduce作为实时查询语言,通常会导致非常差的性能和可伸缩性。关于Riak development anti-patterns that can be found here的一个有用且有用的讨论。