在工作中用到vertica,環境都是直接HP的人來部署的,在網上查也很少有學習資料,一下總結了一部分常用操作,僅供參考:
進入vertica的sql環境:
vsql -d dbname -w passwd
創建序列:
CREATE SEQUENCE sq1 MAXVALUE 5000 START 1;
使用序列:
SELECT NEXTVAL('my_seq');
刪除序列:
DROP SEQUENCE seq_name;
修改列名:
alter table csaprp.test rename statis_date to statis_month;
增加列:
alter table test.DIM_DETAIL_SVCTYPE add column if_app numeric(10,0);
刪除表列:
alter table test.DIM_DETAIL_SVCTYPE drop column if_app;
查找用戶:
select * from v_catalog.users;
修改表為分區表:
alter table test.test partition by day_id;
修改表名:
alter table test.test rename to test;
修改表所屬用戶:
alter table test.test owner to dev_test;
查詢表:
select * from tables;
查詢注釋:
select * from comments where object_name='tb_test';
產生隨機數:
SELECT RANDOM();
從vertica數據的表中導出數據到數據文件,shell命令:
echo `vsql -d dbname -U dbadmin -Atq -w xx -c "select * from test.testorder by flow_type_code"> /database/datastage/export/dim_all/test`;
通過數據文件向vertica數據庫里加載數據:
copy test.fct_flux_se_bus_res_ana_d from '/database/imp_file/test' on v_dbname_node0002 delimiter '|';
顯示表結構:\d table;
從vertica數據的表中導出數據到數據文件,shell命令:
``echo vsql -d dbname -U dbadmin -Atq -w Zongfen_12 -c "select * from test.testorder by flow_type_code"> /database/datastage/export/dim_all/test``` 通過數據文件向vertica數據庫里加載數據:
copy test.test from '/database/imp_file/test' on v_dbname_node0002 delimiter '|';更改字段數據類型
alter table test.test alter column cell_id set data type numeric(15,0);對於數值類型: types–INTEGER, INT, BIGINT, TINYINT, INT8, SMALLINT, and all NUMERIC values of scale <=18 and precision 0 之間是可以互相轉化的。此外,numeric類型的精度(precision)是無法更改的,但是長度(scale)是可以修改的,(0-18)之間可以 互修改,(19-37)之間可以互修改。 修改表所屬的用戶
alter table test.fct_fournet_wlanap_equp_ana_d owner to dev_test;vertica怎么修改一個表字段允許為空呢,查看官方文檔得到:
alter table TABLE_NAME alter column prov_name drop not NULL; 殺鎖:
SELECT transaction_id FROM locks; ---查看transaction_id
SELECT * FROM sessions where transaction_id=<>;
SELECT INTERRUPT_STATEMENT('<session_id>', '<statement_id>');`