【TPC-DS】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编辑器中执行查询语句即可
 
 
 

posted @ 2021-11-23 15:20  Syw_文  阅读(409)  评论(0编辑  收藏  举报