前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vertica 业务用户指定资源池加载数据

Vertica 业务用户指定资源池加载数据

作者头像
Alfred Zhao
发布2022-05-06 14:33:10
5180
发布2022-05-06 14:33:10
举报

之前在“Vertica 安装,建库,新建测试用户并授予权限,建表,入库”这篇文章也简单介绍过入库部分的内容。 但之前测试用例若用于生产环境有明显的局限性: 1.是用dbadmin管理员用户入库的。 2.没有建立和指定入库专用资源池。

现在我们需要规范下入库,用普通业务用户test进行入库测试,并指定入库资源池load_pool。

1.创建业务用户test和测试表t_jingyu

代码语言:javascript
复制
 创建业务用户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));

2.创建入库专用load_pool资源池并赋权给业务用户test 2.1 创建入库专用load_pool资源池 使用dbadmin用户登录数据库创建load_pool资源池:

代码语言:javascript
复制
CREATE RESOURCE POOL load_pool PRIORITY 2 RUNTIMEPRIORITY MEDIUM PLANNEDCONCURRENCY 12 MAXCONCURRENCY 5 QUEUETIMEOUT NONE;

因为入库任务往往是很耗费资源,为避免争抢过度general资源池的资源,所以就单独设定一个资源池load_pool用来入库,这样只需要限制这个资源池的总资源就可以了。 2.2 赋给业务用户test使用资源池的权限 默认业务用户test是没有使用新建资源池的权限,需要赋予其使用权。

代码语言:javascript
复制
GRANT USAGE ON RESOURCE POOL load_pool TO test;

3.准备入库脚本loadData.sh和入库文件sourceData.dat 3.1 准备入库脚本loadData.sh

代码语言:javascript
复制
/tmp/loadData.sh
!/bin/bash
loading data
代码语言:javascript
复制
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

代码语言:javascript
复制
/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

4.赋予业务用户test入库文件sourceData.dat所在目录/tmp的权限 注:这里测试举例入库文件是存放在/tmp目录,实际的存放目录,同样需要有良好的读写性能。

代码语言:javascript
复制
CREATE LOCATION '/tmp' NODE 'v_testdb_node0001' USAGE 'USER';
 GRANT READ ON LOCATION '/tmp' TO test;

5.调用入库脚本入库数据

代码语言:javascript
复制
sh /tmp/loadData.sh /tmp/sourceData.dat

脚本运行结果如下:

代码语言:javascript
复制
[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
代码语言:javascript
复制
       5
代码语言:javascript
复制
(1 row)
Time: First fetch (1 row): 116.278 ms. All rows formatted: 116.461 ms

至此,Vertica 利用普通业务用户test,指定专有入库资源池load_pool,测试入库数据成功。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创建业务用户test和测试表t_jingyu
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档