OushuDB 資料庫基本用法 (上)
1、啟動/停止OushuDB
啟動OushuDB有兩種方式,一種是通過”hawq start cluster”命令來啟動整個叢集,包括master和segment。啟動哪些segment是由”/hawq-install-path/etc/slaves”中包含的節點確定的。
source / usr / local / hawq / greenplum_path . sh # 設定OushuDB環境變數 hawq start cluster # 啟動整個OushuDB叢集
另外一種方式是分別啟動OushuDB master和segment。因為OushuDB master和segment是解耦合的,分別啟動master和segment是可行的。
hawq start master # 啟動master,指的是啟動本地master hawq start segment # 啟動segment,指的是啟動本地segment
重新啟動或者停止OushuDB也有兩種方式:
# 方式一 hawq restart cluster # 重啟OushuDB叢集 hawq stop cluster # 停止OushuDB叢集# 方式二 hawq restart master # 重啟本機的OushuDB master hawq restart segment # 重啟本機的OushuDB segment hawq stop master # 停止本機OushuDB master hawq stop segment # 停止本機OushuDB segment
啟動/停止Magma
OushuDB4.0 實現了單獨起停Magma服務,具體命令如下:
# 方式一 OushuDB4.0 叢集起停帶Magma服務 [只有hawq init|start|stop cluster命令可以帶--with_magma選項] hawq init cluster -- with_magma # 啟動OushuDB叢集時,使用--with_magma選項,同時啟動Magma服務, 3.X版本不支援。# 方式二 Magma服務單獨起停 magma start | stop | restart clustermagma start | stop | restart node
關於OushuDB hawq命令的詳細用法,可以通過”hawq –help”命令得到。
changlei:build ChangLei$ hawq --help
usage: hawq <command> [<object>] [options]
[--version]
The most commonly used hawq "commands" are:
start Start hawq service.
stop Stop hawq service.
init Init hawq service.
restart Restart hawq service.
activate Activate hawq standby master as master.
version Show hawq version information.
config Set hawq GUC values.
state Show hawq cluster status.
filespace Create hawq filespaces.
extract Extract table metadata into a YAML formatted file.
load Load data into hawq.
scp Copies files between multiple hosts at once.
ssh Provides ssh access to multiple hosts at once.
ssh-exkeys Exchanges SSH public keys between hosts.
check Verifies and validates HAWQ settings.
checkperf Verifies the baseline hardware performance of hosts.
register Register parquet files generated by other system into the corrsponding table in HAWQ
See 'hawq <command> help' for more information on a specific command.
2、建立資料庫和表
本節通過使用OushuDB的命令列工具psql來說明如何建立基本資料庫物件:database和table。因為OushuDB和PostgreSQL相容,所以使用OushuDB的方式和使用PostgresSQL的方式基本相同,如果OushuDB的文件有些地方說明不清楚的話,使用者也可以通過查閱PostgresSQL的幫助文件來了解更多關於OushuDB的資訊。
下面這條命令使用psql連線OushuDB預設安裝的資料庫postgres,然後建立一個新的資料庫test,並在新的資料庫中建立一個表foo。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
changlei:build ChangLei$ psql -d postgres psql (8.2.15) Type "help" for help.
postgres=# create database test; # 建立資料庫test CREATE DATABASE
postgres=# \c test # 連線進入test資料庫 You are now connected to database "test" as user "ChangLei".
test=# create table foo(id int, name varchar); # 建立表foo CREATE TABLE
test=# \d # 顯示當前資料庫test中所有表 List of relations Schema | Name | Type | Owner | Storage --------+------+-------+----------+------------- public | foo | table | ChangLei | append only (1 row)
test=# insert into foo values(1, 'hawq'),(2, 'hdfs'); INSERT 0 2
test=# select * from foo; # 從表foo中選擇資料 id | name ----+------ 1 | hawq 2 | hdfs (2 rows)
如果想刪除表或者資料庫的話可以使用drop語句。
test=# drop table foo; DROP TABLE
test=# \d No relations found.
test=# drop database test; # 因為現在在test資料庫中,所以不能刪除 ERROR: cannot drop the currently open database
test=# \c postgres # 首先連線到postgres資料庫,然後刪除test資料庫 You are now connected to database "postgres" as user "ChangLei".
postgres=# drop database test; DROP DATABASE |
|
3、檢視查詢執行情況
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
使用\timing命令可以列印出查詢執行的時間。
test=# \timing on Timing is on.
test=# select * from foo; # 這時再執行SQL語句會給出語句執行時間。 id | name ----+------ 1 | hawq 2 | hdfs (2 rows)
Time: 16.369 ms
test=# \timing off # 關閉時間輸出 Timing is off.
使用explain語句可以顯示出查詢計劃。 test=# explain select count(*) from foo; QUERY PLAN ---------------------------------------------------------------------------------- Aggregate (cost=1.07..1.08 rows=1 width=8) -> Gather Motion 1:1 (slice1; segments: 1) (cost=1.03..1.06 rows=1 width=8) -> Aggregate (cost=1.03..1.04 rows=1 width=8) -> Append-only Scan on foo (cost=0.00..1.02 rows=2 width=0) Settings: default_hash_table_bucket_number=6 (5 rows)
|
|
使用explain analyze可以顯示出查詢在具體執行時的狀態,包括每一個操作符開始執行時間,以及結束時間,可以幫助使用者找到查詢的瓶頸,進而優化查詢。關於查詢計劃以及explain analyze的執行結果的解釋可以參考查詢計劃與查詢執行章節。針對一個查詢,可能會有無數個查詢計劃。得出優化的查詢計劃是查詢優化器的功能。一個查詢執行時間的長短與查詢的計劃有很大關係,所以熟悉查詢計劃以及具體查詢的執行對查詢優化有很大意義。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
test=# explain analyze select count(*) from foo; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Aggregate (cost=1.07..1.08 rows=1 width=8) Rows out: Avg 1.0 rows x 1 workers. Max/Last(seg-1:changlei/seg-1:changlei) 1/1 rows with 5.944/5.944 ms to end, start offset by 6.568/6.568 ms. -> Gather Motion 1:1 (slice1; segments: 1) (cost=1.03..1.06 rows=1 width=8) Rows out: Avg 1.0 rows x 1 workers at destination. Max/Last(seg-1:changlei/seg-1:changlei) 1/1 rows with 5.941/5.941 ms to first row, 5.942/5.942 ms to end, start offset by 6.569/6.569 ms. -> Aggregate (cost=1.03..1.04 rows=1 width=8) Rows out: Avg 1.0 rows x 1 workers. Max/Last(seg0:changlei/seg0:changlei) 1/1 rows with 5.035/5.035 ms to first row, 5.036/5.036 ms to end, start offset by 7.396/7.396 ms. -> Append-only Scan on foo (cost=0.00..1.02 rows=2 width=0) Rows out: Avg 2.0 rows x 1 workers. Max/Last(seg0:changlei/seg0:changlei) 2/2 rows with 5.011/5.011 ms to first row, 5.032/5.032 ms to end, start offset by 7.397/7.397 ms. Slice statistics: (slice0) Executor memory: 223K bytes. (slice1) Executor memory: 279K bytes (seg0:changlei). Statement statistics: Memory used: 262144K bytes Settings: default_hash_table_bucket_number=6 Dispatcher statistics: executors used(total/cached/new connection): (1/1/0); dispatcher time(total/connection/dispatch data): (1.462 ms/0.000 ms/0.029 ms). dispatch data time(max/min/avg): (0.029 ms/0.029 ms/0.029 ms); consume executor data time(max/min/avg): (0.012 ms/0.012 ms/0.012 ms); free executor time(max/min/avg): (0.000 ms/0.000 ms/0.000 ms). Data locality statistics: data locality ratio: 1.000; virtual segment number: 1; different host number: 1; virtual segment number per host(avg/min/max): (1/1/1); segment size(avg/min/max): (56.000 B/56 B/56 B); segment size with penalty(avg/min/max): (56.000 B/56 B/56 B); continuity(avg/min/max): (1.000/1.000/1.000); DFS metadatacache: 0.049 ms; resource allocation: 0.612 ms; datalocality calculation: 0.085 ms. Total runtime: 13.398 ms (20 rows) |
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957629/viewspace-2843973/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 國產資料庫OushuDB(Database)簡介資料庫Database
- Android資料庫Sqlite的基本用法及升級策略Android資料庫SQLite
- IndexedDB 資料庫用法Index資料庫
- 【MySQL】資料型別的基本用法MySql資料型別
- 資料庫基本操作資料庫
- 【Falsk 使用資料庫】---- 資料庫基本操作資料庫
- Oracle資料庫-----資料庫的基本概念Oracle資料庫
- Android資料庫高手祕籍(2):建立表和LitePal的基本用法Android資料庫
- Laravel 資料庫基本操作Laravel資料庫
- postgresql 資料庫基本操作SQL資料庫
- MySQL資料庫基本操作MySql資料庫
- Mongo 資料庫 基本操作Go資料庫
- postgresql 資料庫基本管理SQL資料庫
- 預備知識-python核心用法常用資料分析庫(上)Python
- 二, 基本資料型別(上)資料型別
- 常用資料庫基本資料型別資料庫資料型別
- maven學習(上)- 基本入門用法Maven
- 資料庫內功心法:資料庫基本理論資料庫
- MySQL資料庫基本知識MySql資料庫
- mysql資料庫基本操作(六)MySql資料庫
- mysql資料庫基本操作(三)MySql資料庫
- mysql資料庫基本操作(四)MySql資料庫
- mysql資料庫基本操作(五)MySql資料庫
- 02、MySQL—資料庫基本操作MySql資料庫
- SQLSERVER 資料庫效能的基本SQLServer資料庫
- PHP--資料庫基本操作PHP資料庫
- mysql資料庫基本命令MySql資料庫
- 資料庫備份基本策略資料庫
- java資料庫操作基本流程Java資料庫
- 資料庫基本操作 術語資料庫
- SQL資料庫中Truncate的用法SQL資料庫
- 資料庫Delete的多種用法資料庫delete
- Sql連結資料庫的用法SQL資料庫
- 不上資料庫資料庫
- VB6基本資料庫應用(二):建立資料庫資料庫
- MySQL(一) 資料表資料庫的基本操作MySql資料庫
- [資料庫] Navicat for Oracle基本用法(匯入匯出正刪改查)圖文介紹資料庫Oracle
- MongoDB資料庫的基本操作梳理MongoDB資料庫