Vertica 業務用戶指定資源池加載數據


之前在“Vertica 安裝,建庫,新建測試用戶並授予權限,建表,入庫”這篇文章也簡單介紹過入庫部分的內容。
但之前測試用例若用於生產環境有明顯的局限性:
1.是用dbadmin管理員用戶入庫的。
2.沒有建立和指定入庫專用資源池。

現在我們需要規范下入庫,用普通業務用戶test進行入庫測試,並指定入庫資源池load_pool。

1.創建業務用戶test和測試表t_jingyu

創建業務用戶test ``` CREATE USER test IDENTIFIED BY 'testpwd'; CREATE SCHEMA test AUTHORIZATION test; ``` 創建測試表t_jingyu ``` vsql -Utest -wtestpwd

create table t_jingyu(
col1 int,
col2 varchar,
col3 timestamp not null)
PARTITION BY (date_part('doy', t_jingyu.col3));

<h1 id="2">2.創建入庫專用load_pool資源池並賦權給業務用戶test</h1>
## 2.1 創建入庫專用load_pool資源池 ##
使用dbadmin用戶登錄數據庫創建load_pool資源池:

CREATE RESOURCE POOL load_pool PRIORITY 2 RUNTIMEPRIORITY MEDIUM PLANNEDCONCURRENCY 12 MAXCONCURRENCY 5 QUEUETIMEOUT NONE;

因為入庫任務往往是很耗費資源,為避免爭搶過度general資源池的資源,所以就單獨設定一個資源池load_pool用來入庫,這樣只需要限制這個資源池的總資源就可以了。
## 2.2 賦給業務用戶test使用資源池的權限 ##
默認業務用戶test是沒有使用新建資源池的權限,需要賦予其使用權。

GRANT USAGE ON RESOURCE POOL load_pool TO test;

<h1 id="3">3.准備入庫腳本loadData.sh和入庫文件sourceData.dat</h1>
## 3.1 准備入庫腳本loadData.sh ##
/tmp/loadData.sh

!/bin/bash

loading data

vsql -U test -w testpwd <<-EOF 2>&1
\timing
set role all;
set session resource_pool=load_pool;
copy test.t_jingyu(
col1,
col2,
col3
)
from '$1' on v_testdb_node0001
delimiter E'|' NULL '' NO ESCAPE DIRECT;
EOF

## 3.2 准備入庫文件sourceData.dat ##
/tmp/sourceData.dat

1|jingyu|2014-06-19
2|xiaobei|2014-06-20
3|alfred|2014-05-20
4|martin|2014-06-20
5|靖宇|2014-06-19

<h1 id="4">4.賦予業務用戶test入庫文件sourceData.dat所在目錄/tmp的權限</h1>
注:這里測試舉例入庫文件是存放在/tmp目錄,實際的存放目錄,同樣需要有良好的讀寫性能。

CREATE LOCATION '/tmp' NODE 'v_testdb_node0001' USAGE 'USER';
GRANT READ ON LOCATION '/tmp' TO test;

<h1 id="5">5.調用入庫腳本入庫數據</h1>

sh /tmp/loadData.sh /tmp/sourceData.dat

腳本運行結果如下:

[dbadmin@vertica1 ~]$ sh /tmp/loadData.sh /tmp/sourceData.dat
Timing is on.
SET
Time: First fetch (0 rows): 23.649 ms. All rows formatted: 23.703 ms
SET
Time: First fetch (0 rows): 33.587 ms. All rows formatted: 33.612 ms
Rows Loaded

       5

(1 row)

Time: First fetch (1 row): 116.278 ms. All rows formatted: 116.461 ms

至此,Vertica 利用普通業務用戶test,指定專有入庫資源池load_pool,測試入庫數據成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM