gpt4 book ai didi

hadoop - HBase:创建与现有表具有相同架构的表

转载 作者:可可西里 更新时间:2023-11-01 14:17:36 24 4
gpt4 key购买 nike

我尝试在论坛上搜索,在那里我可以从现有的 hbase 表架构创建一个新的空 hbase 表,但找不到。

更准确地说,假设我有一个包含多个列族和这些列族中的许多列限定符的表。

现在我必须创建另一个具有相同架构的空表。我们是否可以像在 RDBMS 中那样创建表。

Create table new_table as
select * from existing_table where 1=2;

现有表具有复杂的结构,因此无法使用指定列族和列限定符的普通 hbase create table 命令。

仅供引用..我正在使用 Mapr HBase 0.98.12-mapr-1506,我没有切换到任何高级版本或其他发行版的选项。

最佳答案

这是我使用的完整证明方法。希望它能帮助其他人。

1) 在命令下启动 HBase shell

 hbase shell

2) 使用以下命令查询现有表元数据

 hbase> describe ‘existing_table’;

输出类似于:

{NAME => 'cf1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING 
=> 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION
_SCOPE => '0'}
{NAME => 'cf2', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING
=> 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION
_SCOPE => '0'}

3) 将此输出复制到记事本并进行以下更改:

  a) Replace  TTL => 'FOREVER' with TTL => org.apache.hadoop.hbase.HConstants::FOREVER
b) Put an additional comma (,) between each column family description to connect column family definition.
c) Remove newline characters (\n, \r) for the text; such that the content become one line text.

4) 最后使用新表名运行创建查询:

create ‘copy_of_exsting_table_schema’, {NAME => 'cf1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING 
=> 'NONE', TTL => org.apache.hadoop.hbase.HConstants::FOREVER, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION
_SCOPE => '0'} ,{NAME => 'cf2', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING
=> 'NONE', TTL => org.apache.hadoop.hbase.HConstants::FOREVER, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION
_SCOPE => '0'}

你就完成了。新表架构与现有表完全相同。

关于hadoop - HBase:创建与现有表具有相同架构的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com