Phoenix 对 Hbase 中表的映射 | 您所在的位置:网站首页 › hbase的操作 › Phoenix 对 Hbase 中表的映射 |
目录
* – 1)表的关系 – 2)Hbase中创建表 test – 3)视图映射 – 4)表映射 – 数字类型说明 1)表的关系默认情况下, HBase 中已存在的表,通过 Phoenix 是不可见的。如果要在 Phoenix 中操作 HBase 中已存在的表,可以在 Phoenix 中进行表的映射。映射方式有两种:视图映射和表映射。 2)Hbase中创建表 test启动 HBase Shell【首先确保hadoop、zk、hbase集群已经启动 】 bin/hbase shell![]() 创建 HBase 表 test create 'test','info1','info2' 3)视图映射Phoenix 创建的视图是只读的,所以只能用来做查询,无法通过视图对数据进行修改等操作。 开启phoenix /opt/module/phoenix/bin/sqlline.py hadoop100,hadoop101,hadoop102:2181![]() 在 phoenix 中创建关联 test 表的视图 ![]() 删除视图 drop view "test";![]() 在 Pheonix 创建表去映射 HBase 中已经存在的表,是可以修改删除 HBase 中已经存在的数据的。而且,删除 Phoenix 中的表,那么 HBase 中被映射的表也会被删除。 注:进行表映射时,不能使用列名编码,需将 column_encoded_bytes 设为 0。 ![]() 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'}![]() ![]() 解决上述问题的方案有以下两种:(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 自定义函数,将数字类型的最高位,即符号位反转即可,自定义函数可参考如下链接: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 实验室设备网 版权所有 |