Phoenix 对 Hbase 中表的映射 您所在的位置:网站首页 hbase的操作 Phoenix 对 Hbase 中表的映射

Phoenix 对 Hbase 中表的映射

2022-12-29 04:19| 来源: 网络整理| 查看: 265

目录

* – 1)表的关系 – 2)Hbase中创建表 test – 3)视图映射 – 4)表映射 – 数字类型说明

1)表的关系

默认情况下, HBase 中已存在的表,通过 Phoenix 是不可见的。如果要在 Phoenix 中操作 HBase 中已存在的表,可以在 Phoenix 中进行表的映射。映射方式有两种:视图映射和表映射。

2)Hbase中创建表 test

启动 HBase Shell【首先确保hadoop、zk、hbase集群已经启动 】

bin/hbase shell

Phoenix 对 Hbase 中表的映射

创建 HBase 表 test

create 'test','info1','info2' 3)视图映射

Phoenix 创建的视图是只读的,所以只能用来做查询,无法通过视图对数据进行修改等操作。

开启phoenix

/opt/module/phoenix/bin/sqlline.py hadoop100,hadoop101,hadoop102:2181

Phoenix 对 Hbase 中表的映射

在 phoenix 中创建关联 test 表的视图

Phoenix 对 Hbase 中表的映射

删除视图

drop view "test";

Phoenix 对 Hbase 中表的映射 4)表映射

在 Pheonix 创建表去映射 HBase 中已经存在的表,是可以修改删除 HBase 中已经存在的数据的。而且,删除 Phoenix 中的表,那么 HBase 中被映射的表也会被删除。

注:进行表映射时,不能使用列名编码,需将 column_encoded_bytes 设为 0。

Phoenix 对 Hbase 中表的映射 ; 数字类型说明

HBase 中的数字,底层存储为补码,而 Phoenix 中的数字,底层存储为在补码的基础上,将符号位反转。故当在 Phoenix 中建表去映射 HBase 中已存在的表,当 HBase 中有数字类型的字段时,会出现解析错误的现象。

Hbase演示:

create 'test_number','info' put 'test_number','1001','info:number',Bytes.toBytes(1000) scan 'test_number',{COLUMNS => 'info:number:toLong'}

Phoenix 对 Hbase 中表的映射Phoenix 对 Hbase 中表的映射phoenix演示 create view "test_number"(id varchar primary key,"info"."number" bigint); select * from "test_number"; drop view "test_number";

解决上述问题的方案有以下两种:(1)Phoenix 种提供了 unsigned_int,unsigned_long 等无符号类型,其对数字的编码解码方式和 HBase 是相同的,如果无需考虑负数,那在 Phoenix 中建表时采用无符号类型是最合适的选择。

create view "test_number"(id varchar primary key,"info"."number" unsigned_long); select * from "test_number";

Phoenix 对 Hbase 中表的映射

如需考虑负数的情况,则可通过 Phoenix 自定义函数,将数字类型的最高位,即符号位反转即可,自定义函数可参考如下链接:https://phoenix.apache.org/udf.html

Original: https://blog.csdn.net/W2398439780/article/details/128314567Author: 夏殿灬青葛石Title: Phoenix 对 Hbase 中表的映射

相关阅读 Title: Pytorch-Lightning中的训练器—Trainer

参数名称含义默认值接受类型

添加回调函数或回调函数列表None(

默认值)Union[List[Callback], Callback, None]

是否使用callbacksTruebool

使用的gpu数量(int)或gpu节点列表(list或str)None(不使用GPU)Union[int, str, List[int], None]

指定训练精度32(

)Union[int, str]

模型保存和日志记录默认根路径None(

)Optional[str]

设置日志记录器(支持多个),若没设置logger的

,则使用

True(默认日志记录)Union[LightningLoggerBase, Iterable[LightningLoggerBase], bool]

最多训练轮数(指定为**-1

无限次**)None(1000)Optional[int]

最少训练轮数None(1)Optional[int]

最大网络权重更新次数-1(禁用)Optional[int]

最少网络权重更新次数None(禁用)Optional[int]

权重保存路径(优先级高于

未定义路径时将使用该路径None(

)Optional[str]

更新n次网络权重后记录一次日志50int

自动搜索最佳batch_size并保存到模型的

中FalseUnion[str, bool]

自动搜索最佳学习率并存储到

FalseUnion[str, bool]

每k次batches累计一次梯度NoneUnion[int, Dict[int, int], None]

每n个train epoch执行一次验证1int

开始训练前加载n个验证数据进行测试,k=-1时加载所有验证数据2int

这里 max_steps/min_steps中的step就是指的是优化器的step,优化器每step一次就会更新一次网络权重 梯度累加(Gradient Accumulation):受限于显存大小,一些训练任务只能使用较小的batch_size,但一般batch-size越大(一定范围内)模型收敛越稳定效果相对越好;梯度累加可以先累加多个batch的梯度再进行一次参数更新,相当于增大了batch_size。 Trainer.fit()

训练数据加载器None

验证数据加载器None

ckpt文件路径(从这里文件恢复训练)None

None

​ 使用该参数指定一个模型ckpt文件(需要保存整个模型,而不是仅仅保存模型权重),Trainer将从ckpt文件的下一个epoch继续训练。

net = MyNet(...) trainer = pl.Trainer(...) trainer.fit(net, train_iter, val_iter, ckpt_path='./ckpt/myresult.ckpt') 请不要使用Trainer()中的resume_from_checkpoint参数,该参数未来将被丢弃,请使用Trainer.fit()的ckpt_path参数 Trainer.test()

None(使用fit()传递的模型)

是否打印测试结果True

测试数据加载器(可以使用

)None

ckpt文件路径(从这里文件恢复训练)None

None

Original: https://blog.csdn.net/qq_27135095/article/details/122635743Author: 奈何桥边摆地摊Title: Pytorch-Lightning中的训练器—Trainer

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/276857/

转载文章受原作者版权保护。转载请注明原作者出处!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有