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/\">

4.0.0

phoenix

0.0.1-SNAPSHOT

jar

phoenix

UTF-8

junit

junit

3.8.1

x

phoenix-core

4.7.0-HBase-1.1

建⽴⼀个类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的用法读音典