如果 HBase 不是运行在分布式环境中,它还有意义吗?

2024-05-04

我正在构建数据索引,这将需要以形式存储大量三元组(document, term, weight)。我将存储多达几百万个这样的行。目前我正在 MySQL 中将其作为一个简单的表来执行。我将文档和术语标识符存储为字符串值,而不是其他表的外键。我正在重写软件并寻找更好的数据存储方法。

看看 HBase 的工作方式,这似乎非常适合该架构。我可以映射,而不是存储大量三元组document to {term => weight}.

我在单个节点上执行此操作,所以我不关心分布式节点等。我应该坚持使用 MySQL 因为它有效,还是尝试 HBase 是明智之举?我看到 Lucene 使用它进行全文索引(这与我正在做的类似)。我的问题是,单个 HBase 节点与单个 MySQL 节点相比如何?我来自 Scala,那么直接的 Java API 是否比 JDBC 和 MySQL 解析等每个查询有优势?

我主要关心的是插入速度,因为这一直是以前的瓶颈。处理后,我可能最终会将数据放回 MySQL 进行实时查询,因为我需要做一些计算,这些计算最好在 MySQL 中完成。

我会尝试对两者进行原型设计,但我相信社区可以为我提供一些对此有价值的见解。


使用适合工作的正确工具。

有很多反 RDBMS 或 BASE 系统(基本可用、软状态、最终一致),而不是 ACID(原子性、一致性、隔离性、持久性)可供选择here http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/ and here http://themindstorms.blogspot.com/2009/05/quick-reference-to-alternative-data.html.

我使用过传统的 RDBMS,虽然您可以存储 CLOB/BLOB,但它们确实可以 没有专门为搜索这些对象而定制的内置索引。

您想要完成大部分工作(计算加权频率 插入文档时找到的每个元组)。

您可能还想做一些对有用性进行评分的工作 每次搜索后的每个 (documentId,searchWord) 对。

这样您每次都可以提供越来越好的搜索。

您还想存储每次搜索的分数或权重并进行加权 与其他搜索的相似度得分。

某些搜索可能比其他搜索更常见,并且 用户没有正确表达他们的搜索查询,尽管他们的意思是 进行共同搜索。

插入文档也会导致搜索权重发生一些变化 索引。

我想得越多,解决方案就变得越复杂。 你必须首先从一个好的设计开始。你的因素越多 设计预期越好,结果就越好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果 HBase 不是运行在分布式环境中,它还有意义吗? 的相关文章

  • 在shell命令行中创建mysql触发器

    我需要在命令行中创建一个mysql触发器 这个sql在mysql控制台中运行良好 sql USE DB1 DROP TRIGGER IF EXISTS my trigger DELIMITER CREATE TRIGGER my trigg
  • 如何从 MySQL 中的布尔类型返回不同的字符串?

    如果我在 MySql 中将一列设置为布尔值 则查询将返回以下值 0 or 1 是否可以做这样的事情 SELECT bool value AS yes OR no 我的意思是 根据真假返回两个不同的字符串 SELECT CASE WHEN b
  • PHP,文本从数据库中回显,没有换行,全部一体

    我的数据库中有一个长文本 从 php mayadmin 来看它看起来很好 但是当我将它回显到页面时 它会丢失所有格式 即没有新行 全部都在一个块中 有任何想法吗 Thanks 可能是因为换行符是 n 并且 html 想要 br 所以使用nl
  • 如何编写可以补偿拼写错误数据的 MySQL 搜索?

    有没有什么方法可以编写一个 MySQL 搜索来弥补用户在拼写等方面的错误 作为随机示例 有人可能会输入 电子邮件受保护 cdn cgi l email protection代替 电子邮件受保护 cdn cgi l email protect
  • 外键和索引

    我有 2 张桌子 products and 类别 每个类别有很多产品 一个产品可以属于多个类别 products product id int primary auto increment name unique etc 类别 catego
  • SQLAlchemy - 批量插入忽略:“重复条目”

    我有一个名为user data 列id and user id作为唯一的密钥 我想将一些历史数据导入到该表中 我用批量插入映射 http docs sqlalchemy org en rel 1 0 orm session api html
  • 如何将 mysql 转换为 mysqli? [复制]

    这个问题在这里已经有答案了 我厌倦了将 mysql 转换为 mysqli 但似乎收到了很多错误和警告 连接到数据库没有问题 但其余代码似乎错误 我做错了什么 sql
  • 计算 mysql 数据库行数的最佳方法

    在遇到 mysql 查询加载时间慢的问题后 我现在正在寻找计算行数的最佳方法 我曾经愚蠢地使用过mysql num rows 函数来做到这一点 现在意识到这是最糟糕的方法 我实际上正在制作一个分页来用 PHP 制作页面 我找到了几种计算行数
  • 我可以将 MAMP (MySQL) 或 XAMPP (MySQL) 与 Ruby on Rails 3 一起使用吗?

    我可以将 MAMP MySQL 或 XAMPP MySQL 与 Ruby on Rails 3 一起使用吗 我从 MYSQL com 安装了 MySQL 但遇到了很多麻烦 所以我喜欢使用 MAMP XAMPP Mysql 有人这样做吗 另外
  • Hibernate + MySQL + rewriteBatchedStatements=true

    我有以下 Hibernate 配置
  • 在一个后台为MYSQL的网站上集成搜索

    我有一个位置搜索website http www jammulinks com对于一个城市 我们首先收集该城市所有可能类别的数据 如学校 学院 百货商店等 并将其信息存储在单独的表中 因为每个条目除了名称 地址和电话号码外都有不同的详细信息
  • Laravel 5.4 升级 - 违反完整性约束 - 列不能为空

    奇怪的是 所有这些都在 5 2 中工作 但我不知道可以改变什么来实现这一点 下面是错误和正在插入的数组 SQLSTATE 23000 Integrity constraint violation 1048 Column gender can
  • 非 hdfs 文件系统上的 hadoop/yarn 和任务并行化

    我已经实例化了 Hadoop 2 4 1 集群 并且发现运行 MapReduce 应用程序的并行化方式会有所不同 具体取决于输入数据所在的文件系统类型 使用 HDFS MapReduce 作业将生成足够的容器 以最大限度地利用所有可用内存
  • 无法在 .net core 2 中从 MySQL 构建“日期”类型列

    我已经开始了一个新的 net core 2 项目 我正在尝试将 MySQL 数据库导入实体框架 我使用此命令来搭建数据库 Scaffold DbContext server localhost port 3306 user id user
  • oursql 中的参数化查询

    如果有人能告诉我是否可以使用命名占位符进行参数化查询 我将不胜感激oursql 一个用于与 MySQL 数据库交互的 python 模块 例如 我尝试了一种可以与 sqlite3 一起使用的查询 c execute select from
  • MySQL集群启动失败

    这不是我第一次创建ndbcluster 但我没有收到这样的问题 我正在关注本手册 https hub docker com r mysql mysql cluster by mysql团队 我正在使用回显的默认配置在此 GitHub 存储库
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不
  • 在同一查询中选择 Count of ip 和 Count of DISTINCT ip

    我有一个这样的表结构 TABLE NAME counter id datetime url ip 1 2013 04 12 13 27 09 url1 ip01 2 2013 04 13 10 55 43 url2 ip02 3 2013

随机推荐

  • jQuery 对表列重新排序

    我找到了适用于行的各种解决方案 以及适用于普通表列的各种解决方案 但我需要一个允许我拖放 colspan gt 1 的列标题的解决方案 例如 table thead tr th A1 th th A2 th th A4 th th A5 t
  • 事件源和 SQL Server 多个关系表

    我们使用 SQL Server 2016 的事件源 我们有完整的客户产品应用程序 每个应用程序都标记为CustomerId并在事件商店中获取单个指南行项目 这是写入事件存储指南的主要标识符 产品应用程序附带许多不同的关系事物 没有引导 但有
  • SpriteKit:如何使用混合模式在图层中打孔

    我有一个简单的场景 添加了一些元素 现在我想专注于一个带有遮罩的特定元素 在与我想要关注的元素相同的位置切割整个元素 与我们在某些游戏第一次启动时看到的显示某种教程非常相似 基本上我添加了一个全屏层alpha 0 7 因此用户仍然可以看到所
  • ViewPager 中显示多个页面,位置不正确

    我正在尝试实现 Dave Smith 的 PagerContainer 以在我的 ViewPager 中显示多个页面 我已经实现了一个点击监听器来显示页码 但是当我单击左侧页面时 会显示 单击项目 2 消息 项目 0 是正确的 如果我单击中
  • VS Code 中运行代码和不调试运行的区别

    我是 cpp 编程的新手 使用 Visual Studio 代码 我不明白 Ctrl Alt N 运行代码 和 Ctrl F5 运行而不调试 之间有什么区别 Ctrl Alt N Run Code is a shortcut provide
  • 如果我有一些其他编程经验,学习 C++ 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 只是想知道您对我学习 C 的策略有何看法 虽然我知道掌握一门编程语言需要数年时间 但我只是想尽快达到可以被认为有能力的水平 为什么要快 好吧 当
  • MSBuild:OutputPath 目录为空

    我想部署我的 ASP NET MVC 站点并具有以下脚本
  • Razor 三元表达式中的 Html 文字

    我正在尝试做类似以下的事情 div string IsNullOrEmpty myString nbsp myString div 上面的语法无效 我尝试了很多不同的东西但无法让它工作 请尝试以下操作 Html Raw string IsN
  • Windows 铿锵声Hello World lnk4217

    我已经安装了 clang 版本 6 0 以及 Visual Studio 2017 我正在编译一个简单的 hello world 应用程序 include
  • 参数的值类别在重载解析(或更一般的函数调用处理)的哪一部分中发挥作用?

    C 模板 完整指南 http www tmplbook com 在 C 1中 读取 执行重载解析以找到best候选人 如果有则选择 否则 调用是不明确的 然后 在 C 2中 对可能的匹配 给定参数与可行候选的相应参数 进行排序 如下所示 我
  • Filezilla - 需要将项目从服务器复制到桌面[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这可能非常简单明了 但我对 Filezilla 不太熟悉 不能犯错误 我需要将文件从服务器复制到桌面 而不实际将其从服务器中删除 实时站点
  • Doctrine2大合集

    在过去的几天里 我一直在玩doctrine2 ZF 设置 我仍然无法弄清楚的一件事是大型数组集合关联 例如 假设我们有一个名为 Post 的实体 每个帖子可以有很多评论 现在 如果我这样做 这将加载所有评论 post gt comments
  • Excel 文件的正确内容类型是什么? [复制]

    这个问题在这里已经有答案了 我希望网站上的 Excel 文件在单击时在 Excel 中打开 而不是保存在桌面上 或者嵌入在浏览器中打开等 现在显然 这一切都取决于如何为每个用户配置所有内容 但最好的内容类型是什么以及其他设置以在大多数情况下
  • 在wix中添加文件夹到安装程序而不是文件?

    我的安装程序必须将文件复制到 installdir 我的应用程序有大约 2000 个文件 我不可能编写脚本将每个文件添加到安装程序中 wix中是否有任何选项可以让我一次添加所有文件或包含文件的整个文件夹 我是 wix 新手 我在任何教程中都
  • 向量分配会使“保留”无效吗?

    假设我写 std vector
  • 将键和值转换为具有单个键/值的对象的类型安全方法

    我想写一个函数valueToObject给定一个键和一个值 会生成一个具有该单个键和值的对象 例如 valueToObject myKey 3 should return myKey 3 我尝试了以下代码 type Wrapped
  • Castle Windsor - 将泛型实现解析为基本类型

    我正在尝试使用 Windsor 作为工厂来提供基于子类型的规范实现XAbstractBase 在我的例子中是一个抽象消息基类 我有如下代码 public abstract class XAbstractBase public class Y
  • 将静态类的字符串变量数据绑定到 Phone 7 中的 textBlock?

    这是 C 代码 public static class Global public static string Temp get return temp set temp value public static string temp 10
  • 使用 python 运行另一个程序? [复制]

    这个问题在这里已经有答案了 我有一个从命令行运行的程序 如下所示 program a txt b txt 该程序需要两个文本文件作为参数 我正在尝试编写一个 Python 3 2 脚本来运行上述程序 我怎样才能做到这一点 目前 我正在尝试使
  • 如果 HBase 不是运行在分布式环境中,它还有意义吗?

    我正在构建数据索引 这将需要以形式存储大量三元组 document term weight 我将存储多达几百万个这样的行 目前我正在 MySQL 中将其作为一个简单的表来执行 我将文档和术语标识符存储为字符串值 而不是其他表的外键 我正在重