一、实现功能
将需要执行sql语句写入脚本,然后,使用psql.py执行。
二、步骤
1.脚本内容
(1)us_population.sql
CREATE TABLE IF NOT EXISTS us_population (
"state" CHAR(2) NOT NULL,
"city" VARCHAR(18) NOT NULL,
"info"."population" BIGINT,
CONSTRAINT my_pk PRIMARY KEY ("state", "city")
);
(2)us_population_queries.sql
SELECT "state" as "State",count("city") as "City Count",sum("population") as "Population Sum" FROM us_population GROUP BY "state" ORDER BY sum("population") DESC;
2.执行脚本
(1)创建表
bin/psql.py localhost /opt/datas/phoenix_sql/us_population.sql
(2)phoenix中向表中插入数据
upsert into "US_POPULATION"("state","city","population") values('NY','New York',8143197);
upsert into "US_POPULATION"("state","city","population") values('CA','Los Angeles',3844829);
upsert into "US_POPULATION"("state","city","population") values('IL','Chicago',2842518);
upsert into "US_POPULATION"("state","city","population") values('TX','Houston',2016582);
upsert into "US_POPULATION"("state","city","info"."population") values('PA','Philadelphia',1463281);
upsert into "US_POPULATION"("state","city","info"."population") values('AZ','Phoenix',1461575);
upsert into "US_POPULATION"("state","city","info"."population") values('TX','San Antonio',1256509);
upsert into "US_POPULATION"("state","city","info"."population") values('CA','San Diego',1255540);
upsert into "US_POPULATION"("state","city","info"."population") values('TX','Dallas',1213825);
upsert into "US_POPULATION"("state","city","info"."population") values('CA','San Jose',912332);
(3)查询表
bin/psql.py localhost /opt/datas/us_population_queries.sql
结果:
18/06/23 00:26:16 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
18/06/23 00:26:17 WARN impl.MetricsConfig: Cannot locate configuration: tried hadoop-metrics2-phoenix.properties,hadoop-metrics2.properties
St City Count Population Sum
-- ---------------------------------------- ----------------------------------------
NY 1 8143197
CA 3 6012701
TX 3 4486916
IL 1 2842518
AZ 1 1500000
PA 1 1463281