parlor是什么意思lor在线翻译读音例句-迷失第三季
2023年3月29日发(作者:学习英语的软件)
Phoenix简介及安装部署使⽤
Phoenix简介及安装部署使⽤
什么是Phoenix
phoenix,中⽂译为“凤凰”,很美的名字。Phoenix是由开源的⼀个项⽬,后⼜捐给了Apache基⾦会。它相当于
⼀个Java中间件,提供jdbc连接,操作hbase数据表。Phoenix是⼀个HBase的开源SQL引擎。你可以使⽤标准的JDBCAPI代
替HBase客户端API来创建表,插⼊数据,查询你的HBase数据。Phoenix的团队⽤了⼀句话概括Phoenix:\"WeputtheSQLback
inNoSQL\"意思是:我们把SQL⼜放回NoSQL去了!这边说的NoSQL专指HBase,意思是可以⽤SQL语句来查询Hbase,你可
能会说:“Hive和Impala也可以啊!”。但是Hive和Impala还可以查询⽂本⽂件,Phoenix的特点就是,它只能查Hbase,别的类
型都不⽀持!但是也因为这种专⼀的态度,让Phoenix在Hbase上查询的性能超过了Hive和Impala!
Phoenix性能
Phoenix是构建在HBase之上的SQL引擎。你也许会存在“Phoenix是否会降低HBase的效率?”或者“Phoenix效率是否很
低?”这样的疑虑,事实上并不会,Phoenix通过以下⽅式实现了⽐你⾃中国地震网今天发生地震最新消息 ⼰⼿写的⽅式相同或者可能是更好的性能(更不⽤说可以少写了很
多代码):
编译你的SQL查询为原⽣HBase的scan语句。
检测scan语句最佳的开始和结束的key。
精⼼编排你的scan语句让他们并⾏执⾏。
推送你的WHERE⼦句的谓词到服务端过滤器处理。
执⾏聚合查询通过服务端钩⼦(称为协同处理器)。
除此之外,Phoenix还做了⼀些有趣的增强功能来更多地优化性能除此之外,Phoenix还做了⼀些有趣的增强功能来更多地优化性桃花劫是什么意思 能
实现了⼆级索引来提升⾮主键字段查询的性能。
统计相关数据来提⾼并⾏化⽔平,并帮助选择最佳优化⽅案。
跳过扫描过滤器来优化IN,LIKE,OR查询。
优化主键的来均匀分布写压⼒。
Phoenix的安柳宗元的诗五言绝句 装部署
1.安装好zk集群,hadoop集群,hbase集群。
2.
3.配置
1.将phoenix⽬录下的、拷贝到hbase的lib⽬录
下。
2.将hbase的配置⽂件、hadoop/etc/hadoop下的、放到phoenix/bin/下,替换
phoenix原来的配置⽂件。
3.(3)重启hbase集群,使Phoenix的jar包⽣效。
4.验证是否成功
1.在phoenix/bin下输⼊命令:
端⼝可以省略
[root@bw01bin]#./01:2181
出现如下界⾯说明启动成功
2.输⼊!tables查看都有哪些表。红框部分是⽤户建的表,其他为Phoenix系统表,系统表中维护了⽤户表的元数据信息。
3.退出phoenix,输⼊!quit
Phoenix的使⽤
Phoenix可以有4种⽅式调⽤:
批处理⽅式
1.创建user_⽂件
CREATETABLEIFNOTEXISTSuser_phoenix(stateCHAR(2)NOTNULL,cityVARCHARNOTNULL,populationBIGINTCONSTRAINTmy_pk
PRIMARYKEY(state,city));
2.创建user_数据⽂件
NY,NewYork,8143197
CA,LosAngeles,3844829
IL,Chicago,2842518
TX,Houston,2016582
PA,Philadelphia,1463281
AZ,Phoenix,1461575
TX,SanAntonio,1256509
CA,SanDiego,1255540
TX,Dallas,1213825
CA,SanJose,912332
3.创建user_phoenix_⽂件
SELECTstateas\"State\",count(city)as\"CityCount\",sum(population)as\"PopulationSum\"FROMuser_phoenixGROUPBYstateORDERBYsum(po
pulation)DESC;
4.执⾏
/var/local/phoenix/焚薮而田 bin/01:2181user_r_r_phoenix_
这条命令同时做了三件事:创建表、插⼊数据、查询结果
⽤Hbaseshell看下会发现多出来⼀个USER_PHOENIX表,⽤scan命令查看⼀下这个表的数据
结论:
1.之前定义的Primarykey为state,city,于是Phoenix就把输⼊的state,city的值拼起来成为rowkey。
2.其他的字段还是按照列名去保存,默认的列族为0。
3.还有⼀个0:_0这个列是没有值的,这个是Phoenix处于性能⽅⾯考虑增加的⼀个列,不⽤管这个列。
命令⾏⽅式
1.执⾏./01:2181
2.可以进⼊命令⾏模式0:jdbc:phoenix:vm01>,然后执⾏相关的命令
3.退出命令⾏⽅式!quit
4.命令开头需要⼀个感叹号
使⽤helo可以打印出所有命令
0:jdbc:phoenix:vm01>help
!allExecutethespecifiedSQLagainstallthecurrentconnections
!autocommitSetautocommitmodeonoroff
!batchStartorexecuteabatchofstatements
!briefSetverbosemodeoff
!callExecuteacallablestatement
!closeClosethecurrentconnect《袖里春》镜里片 iontothedatabase
!closeallCloseallcurrentopenconnections
!columnsListallthecolumnsforthespecifiedtable
!commitCommitthecurrenttransaction(ifautocommitisoff)
!connectOpenanewconnectiontothedatabase.
!dbinfoGivemetadatainformationaboutthedatabase
!describeDescribeatable
!dropallDropalltablesinthecurrentdatabase
!exportedkeysListalltheexportedkeysforthespecifiedtable
!goSelectthecurrentconnection
!helpPrintasummaryofcommandusage
!historyDisplaythecommandhistory
!importedkeysListalltheimportedkeysforthespecifiedtable
!indexesListalltheindexesforthespecifiedtable
!isolationSetthetransactionisolationforthisconnection
!listListthecurrentconnections
!manualDisplaytheSQLLinemanual
!metadataObtainmetadatainformation
!nativesqlShowthenativeSQLforthespecifiedstatement
!outputformatSettheoutputformatfordisplayingresults(table,vertical,csv,tsv,xmlattrs,xmlelements)
!primarykeysListalltheprimarykeysforthespecifiedtable
!proceduresListalltheprocedures
!propertiesConnecttothedatabasespecifiedinthepropertiesfile(s)
!quitExitstheprogram
!reconnectReconnecttothedatabase
!recordRecordalloutputtothespecifiedfile
!rehashFetchtableandcolumnnamesforcommandcompletion
!rollbackRollbackthecurrenttransaction(ifautocommitisoff)
!runRunascriptfromthespecifiedfile
!saveSavethecurrentvariabesandaliases
!scanScanforinstalledJDBCdrivers
!scriptStartsavingascripttoafile
!setSetasqllinevariable
5.建⽴employee的映射表—数据准备
数据准备然后我们来建⽴⼀个映射表,有2个列族company、family
数据准备然后我们来建⽴⼀个映射表,有2个列族company、family
create\'employee\',\'company\',\'family\'
put\'employee\',\'row1\',\'company:name\',\'ted\'
put\'employee\',\'row1\',\'company:position\',\'worker\'
put\'employee\',\'row1\',\'family:tel\',\'\'
put\'employee\',\'row2\',\'company:name\',\'michael\'
put\'employee\',\'row2\',\'company:position\',\'manager\'
put\'employee\',\'row2\',\'family:tel\',\'1894225698\'
scan\'employee\'
在建⽴映射表之前要说明的是,Phoenix是⼤⼩写敏感的,并且所有命令都是⼤写,如果你建的表明没有⽤双引号括起来,那么
⽆论你输⼊的是⼤写还是⼩写,建⽴出来的表名都是⼤写的,如果你需要建⽴出同时包含⼤写和⼩写的表名和字段名,请把表名或者
字段名⽤双引号括起来。
你可以把建⽴读写的表或者只读的表,他们的区别如下:
读写表:如果你定义的列族不存在,会被⾃动建⽴出来,并且赋以空值。
只读表:你定义的列族必须事先存在。
6.建⽴映射表
0:jdbc:phoenix:bw01>CREATETABLEIFNOTEXISTS\"employee\"(\"no\"VARCHAR(10)NOTNULLPRIMARYKEY,\"company\".\"name\"VARCHAR(
30),\"company\".\"position\"VARCHAR(20),\"family\".\"tel\"VARCHAR(20),\"family\".\"age\"INTEGER);
语句有以下⼏个注意点:
作为rowkey的字段⽤PRIMARYKEY标定
列族⽤Name来表⽰。
是新增的字段,我之前建⽴测试数据的时候没有建⽴这个字段的原因是在hbaseshell下⽆法直接写⼊数字型,等等
我⽤UPSERT命令插⼊数据的时候你就可以看到真正的数字型在hbase下是如何显⽰的
建⽴好后,查询⼀下数据。
7.查询映射表数据
0:jdbc:phoenix:bw01>SELECT*FROM“employee”;
--------------------------------------------+
|no|name|position|tel|age|
--------------------------------------------+
|row1|ted|worker||null|
|row2|michael|manager|1894225698|null|
--------------------------------------------+
8.插⼊数据、更改数据
插⼊或者更改数据在phoenix中使⽤upsert关键字,如果表中不存在该数据则插⼊,否则更新。
插⼊:
0:jdbc:phoenix:bw01>upsertINTO\"employee\"VALUES(\'row3\',\'billy\',\'worker\',\'\',33);
修改数据:
0:jdbc:phoenix:bw01:2181>UPSERTINTO\"employee\"(\"no\",\"tel\")VALUES(\'row2\',\'\');
查询:
0:jdbc:phoenix:bw01:2181>select*from\"employee\";
--------------------------------------------+
|no|name|position|tel|age|
--------------------------------------------+
--------------------------------------------+
|row1|ted|worker||null|
|row2|michael|manager||null|
|row3|billy|worker||33|
--------------------------------------------+
3rowsselected(0.06seconds)
9.查询HBase数据
hbase(main):056:0>scan\'employee\'
ROWCOLUMN+CELL
row1column=company:_0,timestamp=61,value=
row1column=company:name,timestamp=27,value=ted
row1column=company:position,t李清照的诗词大全100首 imestamp=65,value=worker
row1column=family:tel,timestamp=61,value=
row2column=company:_0,timestamp=62,value=
row2column=company:name,timestamp=02,value=michael
row2column=company:position,timestamp=30,value=manager
row2column=family:tel,timestamp=62,value=
row3column=company:_0,timestamp=87,value=x
row3column=company:name,timestamp=87,value=billy
row3column=company:position,timestamp=87,value=worker
row3column=family:age,timestamp=87,value=x80x00x00!
row3column=family:tel,timestamp=87,value=
GUI下载
el下载
el安装
window下:通过cmd进⼊window控制台,输⼊
显⽰安装界⾯:
el配置连接Phoenix
配置squirrel
解压的包的主⽬录下将如下⼏个jar包拷贝到squirrel安装⽬录的lib下
在安装⽬录下双击、点击左侧的Drivers,添加图标
配置说明:
在出现的窗⼝中填写如下项
Name:就是个名字任意取就可以,这⾥使⽤phoenix
ExampleURL:jdbc:phoenix:bw01:2181(这⾥是你的phonenix的jdbc地址,注意端⼝也可以不写,多个⽤逗号隔开)
ClassName:xDriver
4.连接Phoenix
点击Aiiasses,点击右边的添加图标
配置说明:
这⾥还是名字随意写(这⾥使⽤phoenix),driver要选择刚才配置的可⽤的driver,我们刚才配置的是phoenix。
url这⾥就是连接phonex的url选择了phoenix的driver以后⾃动出现也可以改,username就是phoenix连接的主机的
⽤户名,密码就是该机器的密码,点击⾃动登录
然后点击test,显⽰连接成功即可(在这⾥最好不要直接点OK,先点Test,连接成功了再OK)
点击OK按钮
查看对应的表
通过sql语句查询数据
调⽤⽅式
打开Eclipse建⽴⼀个简单的Maven项⽬phoenix。
⽂件内容:
xsi:schemaLocation=\"/POM/4.0.0/xsd/\">
建⽴⼀个类PhoenixManager
tion;
Manager;
Set;
eption;
ent;
/**
*@authorlishas
*/
publicclassPhoenixManager{
publicstaticvoidmain(String[]args)throwsSQLException{
Connectionconn=null;
Statementstate=null;
ResultSetrs=null;
try{
e(\"xDriver\");
conn=nection(\"jdbc:phoenix:bw01:2181\");
state=Statement();
rs=eQuery(\"select*from\"employee\"\");
while(()){
while(()){
n(\"no:\"+ing(\"no\"));
n(\"name:\"+ing(\"name\"));
n(\"position:\"+ing(\"position\"));
n(\"age:\"+(\"age\"));
n(\"-------------------------\");
}
}catch(Exceptione){
tackTrace();
}finally{
if(rs!=null)();
if(state!=null)();
if(conn!=null)();
}
}
}
运⾏结果展现:
no:row1
name:ted
position:worker
age:0
-------------------------
no:row2
name:michael
position:manager
age:0
-------------------------
no:row3
name:billy
position:worker
age:33
-------------------------
更多推荐
phoenix是什么意思enix的用法读音典
发布评论