zoukankan      html  css  js  c++  java
  • 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
    iming
    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,测试入库数据成功。
  • 相关阅读:
    winform中文本框添加拖拽功能
    jQuery返回顶部代码
    判断IP地址是否在指定范围内的方法
    jQuery提示通知插件jBox
    Windows 8.1 SecureBoot未正确配置的解决方法
    操作系统下载
    js中(function(){…})()立即执行函数写法理解
    。net MVC 序列化 反序列化
    js点击button按钮跳转到页面代码
    单例模式
  • 原文地址:https://www.cnblogs.com/jyzhao/p/4916932.html
Copyright © 2011-2022 走看看