HBase Protobuf_1 | 学习笔记

简介: 快速学习 HBase Protobuf_1

开发者学堂课程【HBase入门教程HBase Protobuf_1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/397/detail/5089


HBase Protobuf_1


内容介绍

一、解疑

二、Protobuf


一、解疑

查看 phone 表的数据

scan ‘phone’

一行数据

186997321279223370583159845807 column=cfl:prium,timestamp=1478681870662,value=17017869843

186997321279223370583159845807 column=cf1:time,timestamp=1478681870662value=20160125120850

186997321279223370583159845807 column=cfl:type,timestamp=1.478681870662value=1

每个作为一个列来存储,分散来进行存储,大部分存储空间被 rowkey 占用。

priumtimetype 糅合成一个列封装起来,就只用对应一个 cell ,便节省了存储空间。

每存储一个 cfl 都带一个 rowkey ,列族、列名等等这些信息,每一个 cfl 对应的 rowkey, 列族、列名、操作、版本也就是 value,最终才是一个 second 的值。本身存的值就很短,前面的 rowkey 很长,这样的设计最终,大部分的存储空间被rowkey 所占用,实际上的数据很少。

 

二、Protobuf

1.简介

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++ Java Python 三种语言的 APl

2.安装 Google Protocol Buffer

在网站 http/lcode google.com'pIprotobufldownloadslist 上可以下载 Protobuf 的源代码。然后解压编译安装便可以使用它了。安装步骤如下所示,

tar.-xzt protobuf-2.1.0.tar.gz

cd protobuf-2.1.0

./configure --prefix=$INSTALL_DIR

make .

make check

make install

3.书写 .proto 文件

首先需要编写一个 proto 文件,定义程序中需要处理的结构化数据,在 protobuf 的术语中,结构化数据被称为 Messageproto 文件非常类似 java 或者 C 语言的数据定义。

package com.sxt.hbase;

message helloworld

{

requiced int32      id = 1;  //ID

required string  str = 2; // str

optional int32      opt = 3; //optional field

}

4.嵌套 Message 的例子

message Person {

//一天通话详单

required string name = 1;

required int32 id = 2;  //unique 1D number for this person.

optiona1 string email = 3;

reneated PhoneNumeber phone = 4;

message PhoneNumber {

//通话详单

required. string number = 1;

optiona1 PhoneType type = 2 [default = HOME];

}

}

package com.sxt.hbase;

message pdetail {

required string pnum = 1;

required string time = 2;

required string type = 3;

}

message pday {

repeated pdetail plist = 1;

}

相关文章
|
11月前
|
XML JSON API
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
173 1
|
SQL 存储 安全
第4章 数据库安全性——4.2 数据库安全性控制
第4章 数据库安全性——4.2 数据库安全性控制
|
测试技术 Python
cypress 和allure 集成生成测试报告
cypress 和allure 集成生成测试报告
322 1
cypress 和allure 集成生成测试报告
|
存储 关系型数据库 MySQL
【阿里规约】阿里开发手册解读——数据库和ORM篇
从命名规范、建表规范、查询规范、索引规范、操作规范等角度出发,详细阐述MySQL数据库使用过程中所需要遵循的各种规范。
【阿里规约】阿里开发手册解读——数据库和ORM篇
|
机器学习/深度学习 数据可视化 Swift
Florence-2,小模型推进视觉任务的统一表征
Florence-2是一种新颖的视觉基础模型,具有统一的、基于提示的表示,可用于各种计算机视觉和视觉语言任务。
|
存储 安全 算法
三种常见的加密算法:MD5、对称加密与非对称加密的比较与应用
网络安全聚焦加密算法:MD5用于数据完整性校验,易受碰撞攻击;对称加密如AES快速高效,密钥管理关键;非对称加密如RSA提供身份验证,速度慢但安全。三种算法各有所长,适用场景各异,安全与效率需权衡。【6月更文挑战第17天】
2430 2
|
传感器 自动驾驶 安全
深入探讨自动驾驶感知技术:实现无人驾驶的关键
深入探讨自动驾驶感知技术:实现无人驾驶的关键
453 5
|
Kubernetes 安全 网络安全
搭建k8s集群kubeadm搭建Kubernetes二进制搭建Kubernetes集群
搭建k8s集群kubeadm搭建Kubernetes二进制搭建Kubernetes集群
808 0
|
Java Maven
【已解决】MAC安装maven,The JAVA_HOME environment variable is not defined correctly, this environment
【已解决】MAC安装maven,The JAVA_HOME environment variable is not defined correctly, this environment
1159 0
|
SQL 分布式计算 大数据
大数据SQL数据倾斜与数据膨胀的优化与经验总结
目前市面上大数据查询分析引擎层出不穷,但在业务使用过程中,大多含有性能瓶颈的SQL,主要集中在数据倾斜与数据膨胀问题中。本文结合业界对大数据SQL的使用与优化,尝试给出相对系统性的解决方案。
13995 5