Phoenix的使用
phoenix可以处理实时数据
(1)启动数据库的连接
bin/sqlline.py数据库安装服务器ip或主机名:zookeeper的服务端口号
!table查看所有的表使用
!quit退出
(2)创建表
create table hbase_test
(
s1 varchar not null primary key,
s2 varchar,
s3 varchar,
s4 varchar
在phoenix数据库层中所有的命令最好大写,最终会把所有的字符转化为大写字符,创建数据表的名称,列族可以使用引号括住,保证其不被强制转化为大写。
(3)更新表和插入数据
upsert into hbase_testvalues('1','testname','testname1','testname2');
upsert into hbase_test values('2','tom','jack','harry');
插入多条数据需要执行多条upsert语句,没办法将所有的数据都写到一个“values”后面。
(4)删除
delete from hbase_test where s1='1'; (删除是按rowkey)
(5)查询
select * from hbase_test where s1='1';
(6)批量导入数据bulkload
默认情况下,直接在hbase中创建的表,通过phoenix是查看不到的
如果需要在phoenix中操作直接在hbase中创建的表,则需要在phoenix中进行表的映射。映射方式有两种:视图映射和表映射。
表映射的话,在phoenix中的表与hbase中的表会被同时删除与修改,视图映射中的表删除,hbase中的表不会被删除。
(7)创建与删除视图
create view"test"(empid varcharprimarykey,"name"."firstname"varchar,"name"."lastname"varchar,"company"."name" varchar,"company"."address"varchar);
drop view "test";
表映射
使用ApachePhoenix创建对HBase的表映射,有两种方法:
1)
当HBase中已经存在表时,可以以类似创建视图的方式创建关联表,只需要将createview改为createtable即可。
2)当HBase中不存在表时,可以直接使用createtable指令创建需要的表,并且在创建指令中可以根据需要对HBase表结构进行显示的说明。
1种情况下,如在之前的基础上已经存在了test表,则表映射的语句如下:
create table "test"(empid varcharprimarykey,"name"."firstname"varchar,"name"."lastname"varchar,"company"."name"varchar,"company"."address"varchar);
种情况下,直接使用与第1)种情况一样的createtable语句进行创建即可,这样系统将会自动在Phoenix和HBase中创建person_infomation的表,并会根据指令内的参数对表结构进行初始化。
使用createtable创建的关联表,如果对表进行了修改,源数据也会改变,同时如果关联表被删除,源表也会被删除。但是视图就不会,如果删除视图,源数据不会发生改变。
- Flash/Flex学习笔记(37):不用系统组件(纯AS3)的视频播放器--只有8.82K
- Flash/Flex学习笔记(35):如何正确监听Stage对象的事件
- Flash/Flex学习笔记(34):AS3中的自定义事件
- 字符串处理总结(旧)
- 计算某年某月的某一天是星期几的算法
- Flash/Flex学习笔记(33):如何用As3协同Flash CS IDE控制MovieClip实例
- live writer的折腾
- 用C语言写的万年历---亲手写的。好累哦
- Flash/Flex学习笔记(32):播放音乐并同步显示lyc歌词(适用于Silverlight)
- Flash/Flex学习笔记(31):对象拖拽与投掷
- 如何评价张小龙在2016微信公开课的演讲
- VS2010如何做WAP开发
- (原创)详解KMP算法
- Flash/Flex学习笔记(30):不用startDrag和stopDrag的对象拖动
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- AntUI卡片Cards
- AntUI常规Forms表单
- 二叉树:看看这些树的最大深度
- C++核心准则SF.5: .cpp文件必须包含定义它接口的.h文件
- C++核心准则SF.6:(只)为转换,基础库或在局部作用域内部使用using namspace指令
- C++核心准则SF.7:不要在头文件中的全局作用域中使用using namespace指令
- 二叉树:看看这些树的最小深度
- Hive初体验
- Hive数据的存储以及在centos7下进行Mysql的安装
- 一个改进的数学学习工具
- 配置hive的元数据到Mysql中
- 二叉树:我有多少个节点?
- POST请求和GET请求如何传递和接收解析参数
- 二叉树:我平衡么?
- 机器学习中的常用编码方式(二)