配置单元表中的hbase快照

axkjgtzd  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(342)

我已经创建了一个hbase表

create 'user_data_table','personal_data','professional_data';

然后我在表中插入了几条记录

put 'user_data_table','user1','personal_data:Location','IL'
put 'user_data_table','user1','personal_data:FName','Deb'
put 'user_data_table','user1','personal_data:LName','D'
put 'user_data_table','user1','professional_data:dept','IT'
put 'user_data_table','user1','professional_data:salary','2000'

put 'user_data_table','user2','personal_data:FName','CH'
put 'user_data_table','user2','personal_data:LName','AK'
put 'user_data_table','user2','professional_data:dept','IT'
put 'user_data_table','user2','professional_data:salary','80000'

我创建了一个快照作为 snapshot 'user_data_table', 'snapshot-day-1' 然后我插入/更新了以下记录。

put 'user_data_table','user1','personal_data:Location','VA'
put 'user_data_table','user1','professional_data:salary','3000'

当我尝试引用配置单元表中的快照时,我没有得到旧数据。相反,我每次都会得到最新的数据。你知道为什么会这样吗。使用hbase snapshot reference创建配置单元表的命令如下所示。

CREATE EXTERNAL TABLE if not exists hbase_user_data_snapshot1_table(key string, Location string,FName string,LName string, dept string,salary string) 
    STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
    WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,personal_data:Location,personal_data:FName,personal_data:LName,professional_data:dept,professional_data:salary",
    "hive.hbase.snapshot.name"="snapshot-day-1")
    TBLPROPERTIES ("hbase.table.name" = "user_data_table");
bt1cpqcv

bt1cpqcv1#

ddl是错误的。正确的方法如下。

CREATE EXTERNAL TABLE if not exists hbase_user_data_snapshot2_table(key string, Location string,FName string,LName string, dept string,salary string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,personal_data:Location,personal_data:FName,personal_data:LName,professional_data:dept,professional_data:salary")
TBLPROPERTIES ("hive.hbase.snapshot.name"="snapshot-day-2");

注意TBL属性。我们不引用表,而是引用快照名称。

goqiplq2

goqiplq22#

快照意味着(1)不会从现有hfiles中删除任何信息,(2)创建快照时这些hfiles的内容可以按需重建(隐藏任何附加内容)
但是hive-6584说。。。
绕过在线区域服务器api为完整扫描提供了很好的性能提升
…所以他们可能选择“绕过”时间点恢复部分,而只是将快照用作直接访问hfiles的后门。包括快照创建后附加的内容。也许 吧。

相关问题