DuckDB学习-1
文章目录
- DuckDB学习-1
- 跑TPC-DS
- 编译DuckDB支持TPC-DS扩展
- 执行数据生成及查询
- TPC-DS简单分析(v3.2.0)
- 事实表
- 维度表
跑TPC-DS
编译DuckDB支持TPC-DS扩展
下载代码,然后进源码目录,执行下面两个步骤。
export BUILD_TPCDS=1
make debug
执行数据生成及查询
在build/debug下可以看到duckdb二进制,直接执行它
./duckdb tpcds.db
这样可以让数据持久化
接着执行call dsdgen(sf=0.01)
生成10MB的tpcds测试数据。
可以开始执行tpcds语句测试了,执行pragma tpcds(1)
执行第一条query语句,参数是查询语句的序号,范围是1~99。
如果想看语句的原始语句,可以通过翻源码,在extension/tpcds/include/queries下有99条语句的duckdb改写版。
TPC-DS简单分析(v3.2.0)
事实表
Store_Sales
表中每行代表一个单独的订单项,这些订单项都是通过店铺渠道销售的,并且记录在事实表store_sales中。
Store_returns
表中每行代表一个单独的退货项,这些退货项都是通过店铺渠道销售的,并且记录在事实表store_returns中。
Catalog_sales
表中每行代表一个单独的订单项,这些订单项都是通过目录渠道销售的,并且记录在事实表catalog_sales中。
Catalog_returns
表中每行代表一个单独的退货项,这些退货项都是通过目录渠道销售的,并且记录在事实表catalog_returns中。
Web_sales
表中每行代表一个单独的订单项,这些订单项都是通过网络渠道销售的,并且记录在事实表web_sales中。
Web_returns
表中每行代表一个单独的退货项,这些退货项都是通过网络渠道销售的,并且记录在事实表web_returns中。
Inventory
表中每行表示指定周特定仓库中某商品的数量。
维度表
Stores
该维度表中每行显示一个商店的细节信息。
Call Center
该维度表中每行显示一个呼叫中心的细节信息。
Catalog_page
该维度表中每行显示一个目录页的细节信息。
Web_site
该维度表中每行显示一个网站的细节信息。
Web_page
该维度表中每行显示一个网页的细节信息。
Warehouse
该维度表中代表显示一个存货仓库的信息。
Customer
该维度表中每行代表一个顾客的信息。
Customer_address
该维度表中每行代表一个唯一的顾客地址信息(有些顾客会有不止一个地址)。
Customer_demographics
顾客人群统计表中,有一行是用来显示特定的人群信息组合。
Date_dim
该表中,每一行代表一个公历日。该行的儒略日可以用作代理关键字(d_date_sk)
Household_demographics
该表中,每一行表示一个家庭人群状况。
Item
该表中,每一行表示一个特定产品的构成(例如,尺寸,颜色,制造商等)。
Income_band
该表中的每一行表示一个收入范围的信息。
Promotion
该表中,每行表示一个特定商品的促销信息(例如广告,销售,公关)。
Reason
此表中的每一行表示一个被退货的商品的退货原因。
Ship_mode
此表中的每一行表示一种运送模式。
Time_dim
该表中每行表示一秒。
dsdgen_version
基准测试时不会用到这个表,dsdgen会生成一个flat file(见附录F),这个文件可以确保你在使用时,当前的数据集是由正确版本的TPC-DS搭建的。
参考:
- https://github.com/duckdb/duckdb
- https://blog.csdn.net/github_38325884/article/details/72835953?ops_request_misc=&request_id=&biz_id=102&utm_term=TPC-DS&utm_medium=distribute.pc_search_result.none-task-blog-2blogsobaiduweb~default-5-72835953.nonecase&spm=1018.2226.3001.4450