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