文档章节

大数据平台测试数据生产-使用TPC-H生成测试数据

lizhong815
 lizhong815
发布于 2017/06/19 16:04
字数 874
阅读 239
收藏 1

 1 TPC-H介绍

         TPC-H(商业智能计算测试)是TPC的重要测试标准之一,主要用来模拟真实商业的应用环境。 
        TPC-H 用 3NF 实现了一个数据仓库,共包含 8 个基本关系/表,其中表REGION和表NATION的记录数是固定的(分别为5和25),其它6个表的记录数,则随所设定的参数SF而有所不同,其数据量可以设定从 1GB~3TB 不等。有8个级别供用户选择。

2 TPC-H工具下载

http://www.tpc.org/tpc_documents_current_versions/current_specifications.asp

如果链接不可用,请到官网找到TPC-H下载:http://www.tpc.org

下载2.17.1

3 生产测试数据

 在linux系统中解压

unzip tpc-h-tool-2.17.1.zip
tpch_2_17_0/dbgen/

进入dbgen目录后,

复制 makefile.suite文件(此步骤的目的是为了备份原有的makefile.suite)

编辑makefile

cp makefile.suite makefile
vim makefile

 修改以下四处地方

执行

make -f makefile

生产数据:

./dbgen -s 1

-s 1 表示生成1G的数据(如果你之前曾经尝试过生成数据,最好先make clean,再重新make,接着到这步加上-f覆盖掉)

生成之后可以用head命令检查一下tbl们,会看到每一行都有一些用“|”隔开的字段.

./dbgen -h   帮助命令

执行命令后会生成8个数据文件

4 复制数据到hdfs

 hdfs dfs -mkdir /testdata
 hdfs dfs -mkdir /testdata/region
 hdfs dfs -mkdir /testdata/supplier
 hdfs dfs -mkdir /testdata/part
 hdfs dfs -mkdir /testdata/customer
 hdfs dfs -mkdir /testdata/lineitem
 hdfs dfs -mkdir /testdata/nation
 hdfs dfs -mkdir /testdata/orders
 hdfs dfs -mkdir /testdata/partsupp


 hdfs dfs -put /tmp/bigdata/region.tbl /testdata/region
 hdfs dfs -put /tmp/bigdata/supplier.tbl /testdata/supplier
 hdfs dfs -put /tmp/bigdata/part.tbl /testdata/part
 hdfs dfs -put /tmp/bigdata/customer.tbl /testdata/customer
 hdfs dfs -put /tmp/bigdata/lineitem.tbl /testdata/lineitem
 hdfs dfs -put /tmp/bigdata/nation.tbl /testdata/nation
 hdfs dfs -put /tmp/bigdata/orders.tbl /testdata/orders
 hdfs dfs -put /tmp/bigdata/partsupp.tbl /testdata/partsupp

将那8个文件复制到对应的hdfs目录下面

5 创建impala外部关联表

CREATE EXTERNAL TABLE IF NOT EXISTS region
(
	R_REGIONKEY INT,
	R_NAME STRING,
	R_COMMENT STRING
) COMMENT 'The file of TPCH  is region.tbl' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'  
STORED AS TEXTFILE
LOCATION '/testdata/region';

CREATE EXTERNAL TABLE IF NOT EXISTS nation
(
	N_NATIONKEY INT,
	N_NAME STRING,
	N_REGIONKEY INT,
	N_COMMENT STRING
) COMMENT 'The file of TPCH  is nation.tbl' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'  
STORED AS TEXTFILE
LOCATION '/testdata/nation';

CREATE EXTERNAL TABLE IF NOT EXISTS part
(
  P_PARTKEY INT,
  P_NAME STRING,
  P_MFGR STRING,
  P_BRAND STRING,
  P_TYPE STRING,
  P_SIZE INT,
  P_CONTAINER STRING,
  P_RETAILPRICE DECIMAL(15,2),
  P_COMMENT STRING
) COMMENT 'The file of TPCH  is part.tbl' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'  
STORED AS TEXTFILE
LOCATION '/testdata/part';

CREATE EXTERNAL TABLE IF NOT EXISTS lineitem
(
	L_ORDERKEY INT,
  L_PARTKEY INT,
  L_SUPPKEY INT,
  L_LINENUMBER INT,
  L_QUANTITY DECIMAL(15,2),
  L_EXTENDEDPRICE  DECIMAL(15,2),
  L_DISCOUNT DECIMAL(15,2),
  L_TAX DECIMAL(15,2),
  L_RETURNFLAG STRING,
  L_LINESTATUS STRING,
  L_SHIPDATE timestamp,
  L_COMMITDATE timestamp,
  L_RECEIPTDATE timestamp,
  L_SHIPINSTRUCT STRING,
  L_SHIPMODE STRING,
  L_COMMENT STRING
) COMMENT 'The file of TPCH  is lineitem.tbl' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'  
STORED AS TEXTFILE
LOCATION '/testdata/lineitem';

CREATE EXTERNAL TABLE IF NOT EXISTS supplier ( 
  S_SUPPKEY  INT,
  S_NAME  STRING,
  S_ADDRESS  STRING,
  S_NATIONKEY INTEGER,
  S_PHONE STRING,
  S_ACCTBAL  DECIMAL(15,2),
  S_COMMENT  STRING
  )COMMENT 'The file of TPCH  is supplier.tbl' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'  
STORED AS TEXTFILE
LOCATION '/testdata/supplier';

CREATE EXTERNAL TABLE IF NOT EXISTS partsupp ( 
  PS_PARTKEY  INT,
  PS_SUPPKEY  INT,
  PS_AVAILQTY INT,
  PS_SUPPLYCOST  DECIMAL(15,2),
  PS_COMMENT STRING
  )COMMENT 'The file of TPCH  is partsupp.tbl' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'  
STORED AS TEXTFILE
LOCATION '/testdata/partsupp';

CREATE EXTERNAL TABLE IF NOT EXISTS customer ( 
  C_CUSTKEY INT,
  C_NAME  STRING,
  C_ADDRESS  STRING,
  C_NATIONKEY INT,
  C_PHONE STRING,
  C_ACCTBAL  DECIMAL(15,2),
  C_MKTSEGMENT  STRING,
  C_COMMENT  STRING
  )COMMENT 'The file of TPCH  is customer.tbl' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'  
STORED AS TEXTFILE
LOCATION '/testdata/customer';

CREATE EXTERNAL TABLE IF NOT EXISTS orders ( 
  O_ORDERKEY INT,
  O_CUSTKEY  INT,
  O_ORDERSTATUS STRING,
  O_TOTALPRICE  DECIMAL(15,2),
  O_ORDERDATE timestamp,
  O_ORDERPRIORITY  STRING,
  O_CLERK STRING,
  O_SHIPPRIORITY INT,
  O_COMMENT STRING
  )COMMENT 'The file of TPCH  is orders.tbl' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'  
STORED AS TEXTFILE
LOCATION '/testdata/orders';

现在就可以使用sql查询这些表了。

© 著作权归作者所有

lizhong815
粉丝 0
博文 2
码字总数 1028
作品 0
深圳
程序员
私信 提问
解析大数据基准测试——TPC-H or TPC-DS

转自:https://www.csdn.net/article/2015-05-14/2824680 摘要:为了方便企业选择合适的大数据测试基准,本文将在分析总结现有成果的基础,进一步讨论大数据测试基准应该具有的要素;并以此为...

yntmdr
2018/07/16
0
0
通关TPC-DS,中国数据库领域首破纪录诞生!

  【IT168 评论】“不服跑个分?”是一个老梗了。虽然,我们不能盲目崇信跑分,但跑分的确是一种比较直观反映软硬件性能的方式。不过,相比手机跑个分,数据库性能测试却要复杂的多……  ...

it168网站
2018/05/15
0
0
PostgreSQL sharding : citus 系列2 - TPC-H

标签 PostgreSQL , citus , tpc-h 背景 紧接着上一篇文档,本文测试citus的tpc-h能力(包括兼容性). 《PostgreSQL sharding : citus 系列1 - 多机部署(含OLTP(TPC-B)测试)》 《(TPC-H测试...

德哥
04/14
0
0
Deepgreen(Greenplum) 多机部署测试 , TPC-H VS citus

标签 PostgreSQL , deepgreen , greenplum , citus , tpch , 多机部署 背景 多机部署deepgreen,与greenplum部署方法类似。 本文仅用于测试。 1 环境 与之前测试citus的环境一致,9台ECS虚拟...

德哥
04/14
0
0
TPC-DS 2.0第一个基于SQL的大数据系统基准测试标准

今天(译注:December 17, 2015),TPC发布了第一个衡量基于SQL的大数据系统性能的工业基准测试标准,TPC-DS 2.0。构建在充分研究的TPC-DS之上,2.0版本特别针对基于SQL的大数据而设计、同时...

yntmdr
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面试官问:平时碰到系统CPU飙高和频繁GC,你会怎么排查?

处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运...

Java高级架构师n
12分钟前
2
0
面向对象编程

1、类和对象 类是对象的蓝图和模板,而对象是实例;即对象是具体的实例,类是一个抽象的模板 当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定...

huijue
今天
11
0
redis异常解决 :idea启动本地redis出现 jedis.exceptions.JedisDataException: NOAUTH Authentication required

第一次安装在本地redis服务,试试跑项目,结果却出现nested exception is redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required错误,真是让人头疼 先检查一...

青慕
今天
22
0
Spring 之 IoC 源码分析 (基于注解方式)

一、 IoC 理论 IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 二、IoC方式 Spring为IoC提供了2种方式,一种是基于xml...

星爵22
今天
28
0
Docker安装PostgresSql

Docker安装PostgresSql 拉取docker镜像 # docker pull postgres:10.1010.10: Pulling from library/postgres9fc222b64b0a: Pull complete 38296355136d: Pull complete 2809e135bbdb: Pu......

Tree
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部