Phoenix(3):Phoenix執行sql指令碼
阿新 • • 發佈:2018-12-08
一、實現功能
將需要執行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