Skip to content

Instantly share code, notes, and snippets.

@jster1357
Created July 7, 2025 19:03
Show Gist options
  • Select an option

  • Save jster1357/8f74db175a9401b9248452ce1bd23c25 to your computer and use it in GitHub Desktop.

Select an option

Save jster1357/8f74db175a9401b9248452ce1bd23c25 to your computer and use it in GitHub Desktop.
optimized tpch ddl with clustering
DROP TABLE tpch_optimized.region;
CREATE OR REPLACE TABLE tpch_optimized.region (
r_regionkey INT64 NOT NULL,
r_name STRING,
r_comment STRING)
CLUSTER BY r_regionkey;
DROP TABLE tpch_optimized.nation;
CREATE OR REPLACE TABLE tpch_optimized.nation (
n_nationkey INT64 NOT NULL,
n_name STRING,
n_regionkey INT64,
n_comment STRING)
CLUSTER BY n_nationkey;
DROP TABLE tpch_optimized.customer;
CREATE OR REPLACE TABLE tpch_optimized.customer (
c_custkey INT64 NOT NULL,
c_name STRING,
c_address STRING,
c_nationkey INT64,
c_phone STRING,
c_acctbal FLOAT64,
c_mktsegment STRING,
c_comment STRING)
CLUSTER BY (c_custkey);
DROP TABLE tpch_optimized.orders;
CREATE OR REPLACE TABLE tpch_optimized.orders (
o_orderkey INT64 NOT NULL,
o_custkey INT64,
o_orderstatus STRING,
o_totalprice FLOAT64,
o_orderdate DATE,
o_orderpriority STRING,
o_clerk STRING,
o_shippriority INT64,
o_comment STRING)
CLUSTER BY o_orderdate;
CREATE OR REPLACE TABLE tpch_optimized.supplier (
s_suppkey INT64 NOT NULL,
s_name STRING,
s_address STRING,
s_nationkey INT64,
s_phone STRING,
s_acctbal FLOAT64,
s_comment STRING)
CLUSTER BY s_suppkey;
DROP TABLE tpch_optimized.lineitem;
CREATE OR REPLACE TABLE tpch_optimized.lineitem (
l_orderkey INT64 NOT NULL,
l_partkey INT64,
l_suppkey INT64,
l_linenumber INT64 NOT NULL,
l_quantity INT64,
l_extendedprice FLOAT64,
l_discount FLOAT64,
l_tax FLOAT64,
l_returnflag STRING,
l_linestatus STRING,
l_shipdate DATE,
l_commitdate DATE,
l_receiptdate DATE,
l_shipinstruct STRING,
l_shipmode STRING,
l_comment STRING)
CLUSTER BY l_shipdate;
DROP TABLE tpch_optimized.part;
CREATE OR REPLACE TABLE tpch_optimized.part(
p_partkey INT64 NOT NULL,
p_name STRING,
p_mfgr STRING,
p_brand STRING,
p_type STRING,
p_size INT64,
p_container STRING,
p_retailprice FLOAT64,
p_comment STRING)
CLUSTER BY p_partkey;
DROP TABLE tpch_optimized.partsupp;
CREATE OR REPLACE TABLE tpch_optimized.partsupp (
ps_partkey INT64 NOT NULL,
ps_suppkey INT64 NOT NULL,
ps_availqty INT64,
ps_supplycost FLOAT64,
ps_comment STRING
)
CLUSTER BY ps_partkey,ps_suppkey;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment