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
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
验证postgresql中数据是否写成功,在postgresql编辑器中执行查询语句即可
作者:Syw