加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

nosql – 如何在Cassandra中过滤数据?

发布时间:2020-12-13 13:55:17 所属栏目:百科 来源:网络整理
导读:我一直在使用mySQL作为应用程序,我收集的数据越多,它就越慢.所以我一直在研究NOSQL选项.我在mySQL中拥有的一件事是从一堆连接创建的视图.该应用程序显示网格中的所有重要信息,用户可以选择范围,搜索等.在此数据集上.标准查询内容. 看看Cassandra,我已经根据
我一直在使用mySQL作为应用程序,我收集的数据越多,它就越慢.所以我一直在研究NOSQL选项.我在mySQL中拥有的一件事是从一堆连接创建的视图.该应用程序显示网格中的所有重要信息,用户可以选择范围,搜索等.在此数据集上.标准查询内容.

看看Cassandra,我已经根据我在storage-conf.xml中提供的参数对所有参数进行了排序.所以我会在SuperColumn中将某个字符串作为我的键,并在下面的列中保留一堆数据.但是我只能按一个列排序,我不能在列中进行任何实际搜索而不拉动所有的SuperColumns,并循环遍历数据,对吧?

我不想在不同的ColumnFamilies中复制数据,所以我想确保Cassandra适合我.在Facebook,Digg,Twitter中,他们有很多搜索功能,所以也许我只是没有看到解决方案.

我是否有办法让Cassandra在SuperColumn或其相关的列中搜索或过滤特定的数据值?如果没有,是否有另一个NOSQL选项?

在下面的例子中,似乎我只能查询phatduckk,friend1,John等.但是,如果我想找到住在城市==“Beverley Hills”的ColumnFamily中的任何人?可以在不返回所有记录的情况下完成吗?如果是这样,我可以搜索城市==“贝弗利山”和州==“CA”吗?我似乎也不能这样做,但我想确定并看看我的选择是什么.

AddressBook = { // this is a ColumnFamily of type Super
  phatduckk: {    // this is the key to this row inside the Super CF
    friend1: {street: "8th street",zip: "90210",city: "Beverley Hills",state: "CA"},John: {street: "Howard street",zip: "94404",city: "FC",Kim: {street: "X street",zip: "87876",city: "Balls",state: "VA"},Tod: {street: "Jerry street",zip: "54556",city: "Cartoon",state: "CO"},Bob: {street: "Q Blvd",zip: "24252",city: "Nowhere",state: "MN"},},// end row
  ieure: {     
    joey: {street: "A ave",zip: "55485",city: "Hell",state: "NV"},William: {street: "Armpit Dr",zip: "93301",city: "Bakersfield",

}

你不能在Cassandra中执行这些操作.有一些选择谓词可以在列键上设置,但它们所持有的值没有任何内容.查看 API并检查get_slice / get_superslice和get_range查询类型.同样,所有这些都与ColumnFamily或SuperColumnFamily中的键有关,而不是值.

如果你想要你所描述的那种功能,那么你最好的选择是SQL数据库.在表上构建适当的索引,尤其是在查询最多的列上,您将看到查询性能的巨大差异.希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读