zoukankan      html  css  js  c++  java
  • 【TPCDS】trino+S3+hive+postgresql性能测试生成简单数据验证环境(四)

    1、安装与配置
    下载安装包
    git clone https://github.com/gregrahn/tpcds-kit.git
    cd tpcds-kit/tools
    make OS=LINUX
    存放的位置为:/root/trino (备注:自己定义即可,尽量与trino-server-363放在同一层目录,方便自己查找)
     
    (125\124\123\122)环境安装:awscil
    yum -y install awscli
     
    配置环境
    注意:每台服务器都要进行相同的配置
    aws configure
    aws_access_key_id = GVO55HIKELKQIN4QSOPL
    aws_secret_access_key = XgdhYuGsXHHg3yi0WySVQ8GwztW4SpIrL5irUdlA
    Default region name [None]: cn-south-2
    Default output format [None]: json

    2、生成测试数据
    如何编译及使用TPC-DS生成测试数据:https://cloud.tencent.com/developer/article/1078882
    (可根据自己的方式存放)数据存放的目录,示例图如下截图所示:
    cd /root/trino/tpcds-kit
    mkdir TpcdsData
    cd /root/trino/tpcds-kit/tools
    ./dsdgen -SCALE 1GB -DIR /root/trino/tpcds-kit/TpcdsData    #单条生成测试数据
    ./dsdgen -SCALE 500GB -DIR /root/trino/tpcds-kit/TpcdsData -parallel 4 -child 4   #并行生成测试数据 
    单独在开一个窗口,执行命令查看数据生成情况

    cd /root/trino/tpcds-kit/TpcdsData
    du -sh *

     
    3、修改mys3文件
    (124)在生成数据的目录下,新建一个script文件夹存放mys3.sh文件,示例:/root/trino/tpcds-kit/TpcdsData/script/mys3.sh

    选择一个语句,进行环境的验证,示例:选择了第一个语句,将/root/trino/tpcds-kit/TpcdsData/call_center.dat的TPC数据写入到S3的call_center中

    aws --endpoint-url http://obs.cn-southwest-2.myhuaweicloud.com s3 cp /root/trino/tpcds-kit/TpcdsData/call_center.dat s3://fastdata-tsdb/deepdevhwc/syw_postgreSQL_TPCds/call_center/
    查看目录是否生成,ls(向库中插入数据时,会读catalog_returns目录下的所有文件),命令如下
    aws --endpoint-url http://obs.cn-southwest-2.myhuaweicloud.com s3 ls s3://fastdata-tsdb/deepdevhwc/syw_postgreSQL_TPCds/catalog_returns/
     
    删除文件,rm,命令如下
    aws --endpoint-url http://obs.cn-southwest-2.myhuaweicloud.com s3 rm s3://fastdata-tsdb/deepdevhwc/syw_postgreSQL_TPCds/web_returns
     
    截图所示:如上2条命令的执行结果示例

    验证数据写入是否成功,继续下面的执行可查看结果
     
    4、hive与postgresSQL中创建库与表
    参考下面的2个文件,存放目录在:,详见hivesf500-tables.txt中建表语句(先已call_center为例进行验证)

     (不关注,直接向下执行)示例:alltables.sql内容中的几个示例

     (不关注,直接向下执行)示例:hivesf500-tables.txt内容中的几个示例

    • 进入trino,hive库创建call_center的表。
    cd /root/trino/trino-server-363
     
    ./trino --server 10.201.0.125:8080 --catalog hive
     
    trino> show schemas;
     
    注意:此处创建的库名称tpcds要与catalog>postgresql.properties中配置的库名一致
    trino> create database tpcds;

     trino> use tpcds;
    注意:call_center的创建语句,来自于【hivesf500-tables.txt】的第一个

    trino:tpcds> create table if not exists call_center(
              ->       cc_call_center_sk bigint
              -> ,     cc_call_center_id char(16)
              -> ,     cc_rec_start_date date
              -> ,     cc_rec_end_date date
              -> ,     cc_closed_date_sk bigint
              -> ,     cc_open_date_sk bigint
              -> ,     cc_name varchar(50)
              -> ,     cc_class varchar(50)
              -> ,     cc_employees int
              -> ,     cc_sq_ft int
              -> ,     cc_hours char(20)
              -> ,     cc_manager varchar(40)
              -> ,     cc_mkt_id int
              -> ,     cc_mkt_class char(50)
              -> ,     cc_mkt_desc varchar(100)
              -> ,     cc_market_manager varchar(40)
              -> ,     cc_division int
              -> ,     cc_division_name varchar(50)
              -> ,     cc_company int
              -> ,     cc_company_name char(50)
              -> ,     cc_street_number char(10)
              -> ,     cc_street_name varchar(60)
              -> ,     cc_street_type char(15)
              -> ,     cc_suite_number char(10)
              -> ,     cc_city varchar(60)
              -> ,     cc_county varchar(30)
              -> ,     cc_state char(2)
              -> ,     cc_zip char(10)
              -> ,     cc_country varchar(20)
              -> ,     cc_gmt_offset decimal(5,2)
              -> ,     cc_tax_percentage decimal(5,2)
              -> )WITH (
              ->    external_location = 's3a://fastdata-tsdb/deepdevhwc/syw_postgreSQL_TPCds/call_center',
              ->    format = 'TEXTFILE',
              ->    null_format = '',
              ->    textfile_field_separator = '|'
              -> );
    注:external_location:创建的表call_center将自动去此处配置的目录下读取数据
     
    S3数据写入到hive
    【重要】根本不需要再次执行任何脚本去写,创建hive表时,已配置了external_location将自动去读取该目录下的数据
     
    #查看S3数据写入到hive是否成功,执行语句:

    select count(1) from call_center;
    select * from call_center limit 1;

    • postgresql库创建call_center的表
    cd /root/trino/trino-server-363
    [root@cluster-data-node-02 trino-server-363]# ./trino --server 10.201.0.125:8080 --catalog postgresql --schema public
    trino:public> show tables;
    在tpcds的库中创建表call_center。

    trino:public>create table if not exists call_center(
          cc_call_center_sk bigint
    ,     cc_call_center_id char(16)
    ,     cc_rec_start_date date
    ,     cc_rec_end_date date
    ,     cc_closed_date_sk bigint
    ,     cc_open_date_sk bigint
    ,     cc_name varchar(50)
    ,     cc_class varchar(50)
    ,     cc_employees int
    ,     cc_sq_ft int
    ,     cc_hours char(20)
    ,     cc_manager varchar(40)
    ,     cc_mkt_id int
    ,     cc_mkt_class char(50)
    ,     cc_mkt_desc varchar(100)
    ,     cc_market_manager varchar(40)
    ,     cc_division int
    ,     cc_division_name varchar(50)
    ,     cc_company int
    ,     cc_company_name char(50)
    ,     cc_street_number char(10)
    ,     cc_street_name varchar(60)
    ,     cc_street_type char(15)
    ,     cc_suite_number char(10)
    ,     cc_city varchar(60)
    ,     cc_county varchar(30)
    ,     cc_state char(2)
    ,     cc_zip char(10)
    ,     cc_country varchar(20)
    ,     cc_gmt_offset decimal(5,2)
    ,     cc_tax_percentage decimal(5,2)
    );
     
    5、insert插入数据
    hive数据写入到postgresql
    在hive的SQL编辑器中执行命令如下,检查数据是否可写入成功,此时为验证环境,可以采用一条insert命令即可
    trino:tpcds> insert into postgresql.public.call_center select * from hive.tpcds.call_center;

     
    验证postgresql中数据是否写成功,在postgresql编辑器中执行查询语句即可
     
     
     

    1.作者:Syw
    2.出处:http://www.cnblogs.com/syw20170419/
    3.本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    4.如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    判断一个大于1的数是不是一个素数
    luogu P3241 [HNOI2015]开店
    换根DP
    CF1187E Tree Painting
    luogu P3345 [ZJOI2015]幻想乡战略游戏
    费用流
    FZOJ 4112 脱单计划
    计数DP
    FZOJ 4109 青青草原的表彰大会
    状压DP
  • 原文地址:https://www.cnblogs.com/syw20170419/p/15593380.html
Copyright © 2011-2022 走看看