是否可以创建由现有HBase表支持的Phoenix表?

问题描述 投票:0回答:1

1)是否可以创建由现有HBase表支持的Phoenix表?根据这里的信息http://phoenix.apache.org/language/#create_table应该有可能,但是我不确定到底需要传递哪些选项。我在那里看不到任何例子。

“ HBase表和列配置选项可以作为键/值对传递,以根据需要配置HBase表。请注意,在使用IF NOT EXISTS子句时,如果表已经存在,则不会进行任何更改给它。”

2)另外,在创建表的过程中,我是否可以控制自己将菲尼克斯列名映射到HBase列名?

3)我知道凤凰城视图(由HBase表支持)在写入过程直接写入基础HBase表而不是凤凰城视图时,在维护其索引方面存在某些问题/限制。

https://issues.apache.org/jira/browse/PHOENIX-1499https://issues.apache.org/jira/browse/PHOENIX-1619

所以...如果我们创建一个由HBase表支持的Phoenix表(并写入Phoenix背后的HBase表),也将是一个问题吗?我的意思是,如果对1)的回答是肯定的,那么Phoenix表和Phoenix视图是否会遇到相同的问题(前提是我的写入内容不通过Phoenix)?

java sql hadoop hbase phoenix
1个回答
1
投票

直接点击此处的答案。

a)一般可以将特定属性传递给列族或表。这些是使用选项定义的各种选项。可以在此处引用选项:http://phoenix.apache.org/language/#options。您可以创建引用现有hbase表的视图。我更喜欢视图,因为,我可以删除并重新创建它们而不会出现与表不同的问题,表的删除也会导致基础HBase表消失。

b)这不是AFAIK。现有的hbase表和相应的phoenix视图之间没有映射选项(即phoenix中的fN引用了HBase中的firstName)

c)是正确的。在Phoenix的4.x版本中,这是正确的。

i)如果创建Phoenix表(将自动创建HBase表)并直接写入HBase,则必须注意使用Phoenix类型进行写入,以便可以从HBase中正确读取它们(https://github.com/apache/phoenix/blob/master/phoenix-core/src/main/java/org/apache/phoenix/schema/types )。另请注意,如果您已从phoenix中定义了表,则必须拥有SALT_BUCKETS和phoenix盐,否则必须小心]

© www.soinside.com 2019 - 2024. All rights reserved.