Hbase - 如何添加超级列家族? [英] Hbase - How to add a super column family?

查看:203
本文介绍了Hbase - 如何添加超级列家族?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建将MYSQL数据库转换为NOSQL Hbase数据库的Java应用程序。

到目前为止,它从MySQL读取数据并将其插入到hbase correctely

但是现在我试图处理MYSQL,
和i表之间的关系了解是否有关系,你应该添加一个表作为超级专栏系列。


我查看了apatch网站文档,但找不到任何东西。

任何想法?

I am trying to create Java application that convert MYSQL database to NOSQL Hbase database .
So far it read the data from mysql and insert it to hbase correctely
But now i'am trying to handle relationship between tables of MYSQL, and i understand if there are relationship you should add one of table as super column family .
I looked in apatch website documentation i couldn't find anything.
Any ideas ?

推荐答案

列家族与关系无关。相比之下,你必须通过行密钥设计正确地创建反向索引,这可能允许有效地O(1)通过从另一个表知道密钥来从一个表中检索数据。或者为了避免连接尝试将所有数据存储在一行中。任何为HBase提供SQL接口的工具都会产生需要时间来启动和执行的作业。如果您执行Get操作或扫描连续行,HBase会很快。
希望这是有用的。

Column family has nothing to do with relationship. In contrast you have to correctly create inversed indexes via row key design which may allow to effectively O(1) retrieve data from one table by knowing key from another. Or to avoid join try to store all data in one row. Any tool that provides SQL interface for HBase spawns jobs which take time to start and execute. HBase is fast if you do Get operation or Scan successive rows. Hope this was useful.

更新

关于专栏家庭检查出色的书
构建HBase应用程序

Regarding more details about column families check out great book Architecting HBase Applications


列系列是HBase特有的概念,您不会在其他RDBMS
应用程序中找到它。对于同一地区,不同的列系列会将数据存储到
个不同的文件中,并且可以进行不同配置。具有相同访问模式
和相同格式的数据应该分组到相同的列族中。作为格式的示例
,如果您需要为
客户配置文件存储大量文本元数据信息以及每个客户的个人资料照片的图像文件,则
可能需要存储它们分成两个不同的列系列:一个压缩(其中
所有文本信息将被存储),另一个未压缩(其中图像
文件将被存储)。作为访问模式的一个例子,如果一些信息
大部分被读取并且几乎没有被写入,并且一些信息大部分被写入并且几乎从不读取
,您可能希望将它们分成两个不同的列族。如果您要存储的不同列具有相似的格式和访问模式,请将它们重新分组到同一列家族中。
给定RegionServer的写入缓存区域由为给定主机托管的所有区域配置的所有列
族共享。滥用专栏系列将对memstore施加压力,memstore会产生许多小文件,而
反过来会产生很多可能影响性能的压缩。
对于
表格可以配置的列族数量没有技术限制。但是,在过去三年中,我们有机会使用
的大多数用例只需要一个列系列。有些需要两列系列,
但每次我们看到两个以上的列系列时,推荐使用
来减少数量以提高效率。如果你的设计包括超过三个专栏家庭
,你可能想要更深入地研究它,看看是否真的需要所有这些家庭;最有可能的是,他们可以重新组合。如果
没有任何两个列族之间的一致性约束,并且数据
会在不同的时间到达它们,而不是为单个表创建两个列族,那么也可以创建两个表,每个都有一个单列家族。这个策略在决定区域大小的时候非常有用。事实上,虽然保持两列家庭的规模几乎相同,但通过将它们分成两个不同的表格,现在更容易让我独立成长。

另外 answer 可能很有用。

这篇关于Hbase - 如何添加超级列家族?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆