更新时间:2024-10-22 GMT+08:00
分享

建表与导入TPC-DS数据

创建TPC-DS目标表

连接DWS数据库后执行以下SQL语句。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
CREATE TABLE customer_address
(
ca_address_sk             integer               not null,
ca_address_id             varchar(16)              not null,
ca_street_number          varchar(10)                      ,
ca_street_name            varchar(60)                   ,
ca_street_type            varchar(15)                      ,
ca_suite_number           varchar(10)                      ,
ca_city                   varchar(60)                   ,
ca_county                 varchar(30)                   ,
ca_state                  varchar(2)                       ,
ca_zip                    varchar(10)                      ,
ca_country                varchar(20)                   ,
ca_gmt_offset             decimal(5,2)                  ,
ca_location_type          varchar(20)
) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (ca_address_sk);
CREATE TABLE customer_demographics
(
cd_demo_sk                integer               not null,
cd_gender                 varchar(1)                       ,
cd_marital_status         varchar(1)                       ,
cd_education_status       varchar(20)                      ,
cd_purchase_estimate      integer                       ,
cd_credit_rating          varchar(10)                      ,
cd_dep_count              integer                       ,
cd_dep_employed_count     integer                       ,
cd_dep_college_count      integer
) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (cd_demo_sk);
CREATE TABLE date_dim
(
d_date_sk                 integer               not null,
d_date_id                 varchar(16)              not null,
d_date                    date                          ,
d_month_seq               integer                       ,
d_week_seq                integer                       ,
d_quarter_seq             integer                       ,
d_year                    integer                       ,
d_dow                     integer                       ,
d_moy                     integer                       ,
d_dom                     integer                       ,
d_qoy                     integer                       ,
d_fy_year                 integer                       ,
d_fy_quarter_seq          integer                       ,
d_fy_week_seq             integer                       ,
d_day_name                varchar(9)                       ,
d_quarter_name            varchar(6)                       ,
d_holiday                 varchar(1)                       ,
d_weekend                 varchar(1)                       ,
d_following_holiday       varchar(1)                       ,
d_first_dom               integer                       ,
d_last_dom                integer                       ,
d_same_day_ly             integer                       ,
d_same_day_lq             integer                       ,
d_current_day             varchar(1)                       ,
d_current_week            varchar(1)                       ,
d_current_month           varchar(1)                       ,
d_current_quarter         varchar(1)                       ,
d_current_year            varchar(1)
) WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (d_date_sk)
PARTITION BY Range(d_year) (
partition p1 values less than(1950),
partition p2 values less than(2000),
partition p3 values less than(2050),
partition p4 values less than(2100),
partition p5 values less than(3000),
partition p6 values less than(maxvalue)
);
create table warehouse
(
w_warehouse_sk            integer               not null,
w_warehouse_id            varchar(16)              not null,
w_warehouse_name          varchar(20)                   ,
w_warehouse_sq_ft         integer                       ,
w_street_number           varchar(10)                      ,
w_street_name             varchar(60)                   ,
w_street_type             varchar(15)                      ,
w_suite_number            varchar(10)                      ,
w_city                    varchar(60)                   ,
w_county                  varchar(30)                   ,
w_state                   varchar(2)                       ,
w_zip                     varchar(10)                      ,
w_country                 varchar(20)                   ,
w_gmt_offset              decimal(5,2)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY replication;
create table ship_mode
(
sm_ship_mode_sk           integer               not null,
sm_ship_mode_id           varchar(16)              not null,
sm_type                   varchar(30)                      ,
sm_code                   varchar(10)                      ,
sm_carrier                varchar(20)                      ,
sm_contract               varchar(20)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY replication;
create table time_dim
(
t_time_sk                 integer               not null,
t_time_id                 varchar(16)              not null,
t_time                    integer                       ,
t_hour                    integer                       ,
t_minute                  integer                       ,
t_second                  integer                       ,
t_am_pm                   varchar(2)                       ,
t_shift                   varchar(20)                      ,
t_sub_shift               varchar(20)                      ,
t_meal_time               varchar(20)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (t_time_sk);
create table reason
(
r_reason_sk               integer               not null,
r_reason_id               varchar(16)              not null,
r_reason_desc             varchar(100)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY replication;
create table income_band
(
ib_income_band_sk         integer               not null,
ib_lower_bound            integer                       ,
ib_upper_bound            integer
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY replication;
create table item
(
i_item_sk                 integer               not null,
i_item_id                 varchar(16)              not null,
i_rec_start_date          date                          ,
i_rec_end_date            date                          ,
i_item_desc               varchar(200)                  ,
i_current_price           decimal(7,2)                  ,
i_wholesale_cost          decimal(7,2)                  ,
i_brand_id                integer                       ,
i_brand                   varchar(50)                      ,
i_class_id                integer                       ,
i_class                   varchar(50)                      ,
i_category_id             integer                       ,
i_category                varchar(50)                      ,
i_manufact_id             integer                       ,
i_manufact                varchar(50)                      ,
i_size                    varchar(20)                      ,
i_formulation             varchar(20)                      ,
i_color                   varchar(20)                      ,
i_units                   varchar(10)                      ,
i_container               varchar(10)                      ,
i_manager_id              integer                       ,
i_product_name            varchar(50)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (i_item_sk);
create table store
(
s_store_sk                integer               not null,
s_store_id                varchar(16)              not null,
s_rec_start_date          date                          ,
s_rec_end_date            date                          ,
s_closed_date_sk          integer                       ,
s_store_name              varchar(50)                   ,
s_number_employees        integer                       ,
s_floor_space             integer                       ,
s_hours                   varchar(20)                      ,
s_manager                 varchar(40)                   ,
s_market_id               integer                       ,
s_geography_class         varchar(100)                  ,
s_market_desc             varchar(100)                  ,
s_market_manager          varchar(40)                   ,
s_division_id             integer                       ,
s_division_name           varchar(50)                   ,
s_company_id              integer                       ,
s_company_name            varchar(50)                   ,
s_street_number           varchar(10)                   ,
s_street_name             varchar(60)                   ,
s_street_type             varchar(15)                      ,
s_suite_number            varchar(10)                      ,
s_city                    varchar(60)                   ,
s_county                  varchar(30)                   ,
s_state                   varchar(2)                       ,
s_zip                     varchar(10)                      ,
s_country                 varchar(20)                   ,
s_gmt_offset              decimal(5,2)                  ,
s_tax_precentage          decimal(5,2)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY replication;
create table call_center
(
cc_call_center_sk         integer               not null,
cc_call_center_id         varchar(16)              not null,
cc_rec_start_date         date                          ,
cc_rec_end_date           date                          ,
cc_closed_date_sk         integer                       ,
cc_open_date_sk           integer                       ,
cc_name                   varchar(50)                   ,
cc_class                  varchar(50)                   ,
cc_employees              integer                       ,
cc_sq_ft                  integer                       ,
cc_hours                  varchar(20)                      ,
cc_manager                varchar(40)                   ,
cc_mkt_id                 integer                       ,
cc_mkt_class              varchar(50)                      ,
cc_mkt_desc               varchar(100)                  ,
cc_market_manager         varchar(40)                   ,
cc_division               integer                       ,
cc_division_name          varchar(50)                   ,
cc_company                integer                       ,
cc_company_name           varchar(50)                      ,
cc_street_number          varchar(10)                      ,
cc_street_name            varchar(60)                   ,
cc_street_type            varchar(15)                      ,
cc_suite_number           varchar(10)                      ,
cc_city                   varchar(60)                   ,
cc_county                 varchar(30)                   ,
cc_state                  varchar(2)                       ,
cc_zip                    varchar(10)                      ,
cc_country                varchar(20)                   ,
cc_gmt_offset             decimal(5,2)                  ,
cc_tax_percentage         decimal(5,2)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY replication;
create table customer
(
c_customer_sk             integer               not null,
c_customer_id             varchar(16)              not null,
c_current_cdemo_sk        integer                       ,
c_current_hdemo_sk        integer                       ,
c_current_addr_sk         integer                       ,
c_first_shipto_date_sk    integer                       ,
c_first_sales_date_sk     integer                       ,
c_salutation              varchar(10)                      ,
c_first_name              varchar(20)                      ,
c_last_name               varchar(30)                      ,
c_preferred_cust_flag     varchar(1)                       ,
c_birth_day               integer                       ,
c_birth_month             integer                       ,
c_birth_year              integer                       ,
c_birth_country           varchar(20)                   ,
c_login                   varchar(13)                      ,
c_email_address           varchar(50)                      ,
c_last_review_date        varchar(10)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (c_customer_sk);
create table web_site
(
web_site_sk               integer               not null,
web_site_id               varchar(16)              not null,
web_rec_start_date        date                          ,
web_rec_end_date          date                          ,
web_name                  varchar(50)                   ,
web_open_date_sk          integer                       ,
web_close_date_sk         integer                       ,
web_class                 varchar(50)                   ,
web_manager               varchar(40)                   ,
web_mkt_id                integer                       ,
web_mkt_class             varchar(50)                   ,
web_mkt_desc              varchar(100)                  ,
web_market_manager        varchar(40)                   ,
web_company_id            integer                       ,
web_company_name          varchar(50)                      ,
web_street_number         varchar(10)                      ,
web_street_name           varchar(60)                   ,
web_street_type           varchar(15)                      ,
web_suite_number          varchar(10)                      ,
web_city                  varchar(60)                   ,
web_county                varchar(30)                   ,
web_state                 varchar(2)                       ,
web_zip                   varchar(10)                      ,
web_country               varchar(20)                   ,
web_gmt_offset            decimal(5,2)                  ,
web_tax_percentage        decimal(5,2)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY replication;
create table household_demographics
(
hd_demo_sk                integer               not null,
hd_income_band_sk         integer                       ,
hd_buy_potential          varchar(15)                      ,
hd_dep_count              integer                       ,
hd_vehicle_count          integer
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (hd_demo_sk);
create table web_page
(
wp_web_page_sk            integer               not null,
wp_web_page_id            varchar(16)              not null,
wp_rec_start_date         date                          ,
wp_rec_end_date           date                          ,
wp_creation_date_sk       integer                       ,
wp_access_date_sk         integer                       ,
wp_autogen_flag           varchar(1)                       ,
wp_customer_sk            integer                       ,
wp_url                    varchar(100)                  ,
wp_type                   varchar(50)                      ,
wp_char_count             integer                       ,
wp_link_count             integer                       ,
wp_image_count            integer                       ,
wp_max_ad_count           integer
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY replication;
create table promotion
(
p_promo_sk                integer               not null,
p_promo_id                varchar(16)              not null,
p_start_date_sk           integer                       ,
p_end_date_sk             integer                       ,
p_item_sk                 integer                       ,
p_cost                    decimal(15,2)                 ,
p_response_target         integer                       ,
p_promo_name              varchar(50)                      ,
p_channel_dmail           varchar(1)                       ,
p_channel_email           varchar(1)                       ,
p_channel_catalog         varchar(1)                       ,
p_channel_tv              varchar(1)                       ,
p_channel_radio           varchar(1)                       ,
p_channel_press           varchar(1)                       ,
p_channel_event           varchar(1)                       ,
p_channel_demo            varchar(1)                       ,
p_channel_details         varchar(100)                  ,
p_purpose                 varchar(15)                      ,
p_discount_active         varchar(1)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY replication;
create table catalog_page
(
cp_catalog_page_sk        integer               not null,
cp_catalog_page_id        varchar(16)              not null,
cp_start_date_sk          integer                       ,
cp_end_date_sk            integer                       ,
cp_department             varchar(50)                   ,
cp_catalog_number         integer                       ,
cp_catalog_page_number    integer                       ,
cp_description            varchar(100)                  ,
cp_type                   varchar(100)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (cp_catalog_page_sk);
create table inventory
(
inv_date_sk               integer               not null,
inv_item_sk               integer               not null,
inv_warehouse_sk          integer               not null,
inv_quantity_on_hand      integer
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (inv_item_sk)
partition by range(inv_date_sk)
(
partition p1 values less than(2451179),
partition p2 values less than(2451544),
partition p3 values less than(2451910),
partition p4 values less than(2452275),
partition p5 values less than(2452640),
partition p6 values less than(2453005),
partition p7 values less than(maxvalue)
)
;
create table catalog_returns
(
cr_returned_date_sk       integer                       ,
cr_returned_time_sk       integer                       ,
cr_item_sk                integer               not null,
cr_refunded_customer_sk   integer                       ,
cr_refunded_cdemo_sk      integer                       ,
cr_refunded_hdemo_sk      integer                       ,
cr_refunded_addr_sk       integer                       ,
cr_returning_customer_sk  integer                       ,
cr_returning_cdemo_sk     integer                       ,
cr_returning_hdemo_sk     integer                       ,
cr_returning_addr_sk      integer                       ,
cr_call_center_sk         integer                       ,
cr_catalog_page_sk        integer                       ,
cr_ship_mode_sk           integer                       ,
cr_warehouse_sk           integer                       ,
cr_reason_sk              integer                       ,
cr_order_number           bigint               not null,
cr_return_quantity        integer                       ,
cr_return_amount          decimal(7,2)                  ,
cr_return_tax             decimal(7,2)                  ,
cr_return_amt_inc_tax     decimal(7,2)                  ,
cr_fee                    decimal(7,2)                  ,
cr_return_ship_cost       decimal(7,2)                  ,
cr_refunded_cash          decimal(7,2)                  ,
cr_reversed_charge        decimal(7,2)                  ,
cr_store_credit           decimal(7,2)                  ,
cr_net_loss               decimal(7,2)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (cr_item_sk)
partition by range(cr_returned_date_sk)
(
partition p1 values less than(2450815),
partition p2 values less than(2451179),
partition p3 values less than(2451544),
partition p4 values less than(2451910),
partition p5 values less than(2452275),
partition p6 values less than(2452640),
partition p7 values less than(2453005),
partition p8 values less than(maxvalue)
)
;
create table web_returns
(
wr_returned_date_sk       integer                       ,
wr_returned_time_sk       integer                       ,
wr_item_sk                integer               not null,
wr_refunded_customer_sk   integer                       ,
wr_refunded_cdemo_sk      integer                       ,
wr_refunded_hdemo_sk      integer                       ,
wr_refunded_addr_sk       integer                       ,
wr_returning_customer_sk  integer                       ,
wr_returning_cdemo_sk     integer                       ,
wr_returning_hdemo_sk     integer                       ,
wr_returning_addr_sk      integer                       ,
wr_web_page_sk            integer                       ,
wr_reason_sk              integer                       ,
wr_order_number           bigint               not null,
wr_return_quantity        integer                       ,
wr_return_amt             decimal(7,2)                  ,
wr_return_tax             decimal(7,2)                  ,
wr_return_amt_inc_tax     decimal(7,2)                  ,
wr_fee                    decimal(7,2)                  ,
wr_return_ship_cost       decimal(7,2)                  ,
wr_refunded_cash          decimal(7,2)                  ,
wr_reversed_charge        decimal(7,2)                  ,
wr_account_credit         decimal(7,2)                  ,
wr_net_loss               decimal(7,2)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (wr_item_sk)
partition by range(wr_returned_date_sk)
(
partition p1 values less than(2450815),
partition p2 values less than(2451179),
partition p3 values less than(2451544),
partition p4 values less than(2451910),
partition p5 values less than(2452275),
partition p6 values less than(2452640),
partition p7 values less than(2453005),
partition p8 values less than(maxvalue)
)
;
create table store_returns
(
sr_returned_date_sk       integer                       ,
sr_return_time_sk         integer                       ,
sr_item_sk                integer               not null,
sr_customer_sk            integer                       ,
sr_cdemo_sk               integer                       ,
sr_hdemo_sk               integer                       ,
sr_addr_sk                integer                       ,
sr_store_sk               integer                       ,
sr_reason_sk              integer                       ,
sr_ticket_number          bigint               not null,
sr_return_quantity        integer                       ,
sr_return_amt             decimal(7,2)                  ,
sr_return_tax             decimal(7,2)                  ,
sr_return_amt_inc_tax     decimal(7,2)                  ,
sr_fee                    decimal(7,2)                  ,
sr_return_ship_cost       decimal(7,2)                  ,
sr_refunded_cash          decimal(7,2)                  ,
sr_reversed_charge        decimal(7,2)                  ,
sr_store_credit           decimal(7,2)                  ,
sr_net_loss               decimal(7,2)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (sr_item_sk)
partition by range(sr_returned_date_sk)
(
partition p1 values less than (2451179) ,
partition p2 values less than (2451544) ,
partition p3 values less than (2451910) ,
partition p4 values less than (2452275) ,
partition p5 values less than (2452640) ,
partition p6 values less than (2453005) ,
partition p7 values less than (maxvalue)
)
;
create table web_sales
(
ws_sold_date_sk           integer                       ,
ws_sold_time_sk           integer                       ,
ws_ship_date_sk           integer                       ,
ws_item_sk                integer               not null,
ws_bill_customer_sk       integer                       ,
ws_bill_cdemo_sk          integer                       ,
ws_bill_hdemo_sk          integer                       ,
ws_bill_addr_sk           integer                       ,
ws_ship_customer_sk       integer                       ,
ws_ship_cdemo_sk          integer                       ,
ws_ship_hdemo_sk          integer                       ,
ws_ship_addr_sk           integer                       ,
ws_web_page_sk            integer                       ,
ws_web_site_sk            integer                       ,
ws_ship_mode_sk           integer                       ,
ws_warehouse_sk           integer                       ,
ws_promo_sk               integer                       ,
ws_order_number           bigint               not null,
ws_quantity               integer                       ,
ws_wholesale_cost         decimal(7,2)                  ,
ws_list_price             decimal(7,2)                  ,
ws_sales_price            decimal(7,2)                  ,
ws_ext_discount_amt       decimal(7,2)                  ,
ws_ext_sales_price        decimal(7,2)                  ,
ws_ext_wholesale_cost     decimal(7,2)                  ,
ws_ext_list_price         decimal(7,2)                  ,
ws_ext_tax                decimal(7,2)                  ,
ws_coupon_amt             decimal(7,2)                  ,
ws_ext_ship_cost          decimal(7,2)                  ,
ws_net_paid               decimal(7,2)                  ,
ws_net_paid_inc_tax       decimal(7,2)                  ,
ws_net_paid_inc_ship      decimal(7,2)                  ,
ws_net_paid_inc_ship_tax  decimal(7,2)                  ,
ws_net_profit             decimal(7,2)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (ws_item_sk)
partition by range(ws_sold_date_sk)
(
partition p1 values less than(2451179),
partition p2 values less than(2451544),
partition p3 values less than(2451910),
partition p4 values less than(2452275),
partition p5 values less than(2452640),
partition p6 values less than(2453005),
partition p7 values less than(maxvalue)
)
;
create table catalog_sales
(
cs_sold_date_sk           integer                       ,
cs_sold_time_sk           integer                       ,
cs_ship_date_sk           integer                       ,
cs_bill_customer_sk       integer                       ,
cs_bill_cdemo_sk          integer                       ,
cs_bill_hdemo_sk          integer                       ,
cs_bill_addr_sk           integer                       ,
cs_ship_customer_sk       integer                       ,
cs_ship_cdemo_sk          integer                       ,
cs_ship_hdemo_sk          integer                       ,
cs_ship_addr_sk           integer                       ,
cs_call_center_sk         integer                       ,
cs_catalog_page_sk        integer                       ,
cs_ship_mode_sk           integer                       ,
cs_warehouse_sk           integer                       ,
cs_item_sk                integer               not null,
cs_promo_sk               integer                       ,
cs_order_number           bigint               not null,
cs_quantity               integer                       ,
cs_wholesale_cost         decimal(7,2)                  ,
cs_list_price             decimal(7,2)                  ,
cs_sales_price            decimal(7,2)                  ,
cs_ext_discount_amt       decimal(7,2)                  ,
cs_ext_sales_price        decimal(7,2)                  ,
cs_ext_wholesale_cost     decimal(7,2)                  ,
cs_ext_list_price         decimal(7,2)                  ,
cs_ext_tax                decimal(7,2)                  ,
cs_coupon_amt             decimal(7,2)                  ,
cs_ext_ship_cost          decimal(7,2)                  ,
cs_net_paid               decimal(7,2)                  ,
cs_net_paid_inc_tax       decimal(7,2)                  ,
cs_net_paid_inc_ship      decimal(7,2)                  ,
cs_net_paid_inc_ship_tax  decimal(7,2)                  ,
cs_net_profit             decimal(7,2)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (cs_item_sk)
partition by range(cs_sold_date_sk)
(
partition p1 values less than(2451179),
partition p2 values less than(2451544),
partition p3 values less than(2451910),
partition p4 values less than(2452275),
partition p5 values less than(2452640),
partition p6 values less than(2453005),
partition p7 values less than(maxvalue)
)
;
create table store_sales
(
ss_sold_date_sk           integer                       ,
ss_sold_time_sk           integer                       ,
ss_item_sk                integer               not null,
ss_customer_sk            integer                       ,
ss_cdemo_sk               integer                       ,
ss_hdemo_sk               integer                       ,
ss_addr_sk                integer                       ,
ss_store_sk               integer                       ,
ss_promo_sk               integer                       ,
ss_ticket_number          bigint               not null,
ss_quantity               integer                       ,
ss_wholesale_cost         decimal(7,2)                  ,
ss_list_price             decimal(7,2)                  ,
ss_sales_price            decimal(7,2)                  ,
ss_ext_discount_amt       decimal(7,2)                  ,
ss_ext_sales_price        decimal(7,2)                  ,
ss_ext_wholesale_cost     decimal(7,2)                  ,
ss_ext_list_price         decimal(7,2)                  ,
ss_ext_tax                decimal(7,2)                  ,
ss_coupon_amt             decimal(7,2)                  ,
ss_net_paid               decimal(7,2)                  ,
ss_net_paid_inc_tax       decimal(7,2)                  ,
ss_net_profit             decimal(7,2)
)
WITH (orientation = column, colversion=2.0,enable_hstore=true,enable_hstore_opt=true)
DISTRIBUTE BY hash (ss_item_sk)
partition by range(ss_sold_date_sk)
(
partition p1 values less than(2451179),
partition p2 values less than(2451544),
partition p3 values less than(2451910),
partition p4 values less than(2452275),
partition p5 values less than(2452640),
partition p6 values less than(2453005),
partition p7 values less than(maxvalue)
)
;

创建TPC-DS数据集的GDS外表

连接DWS数据库后执行以下SQL语句。

以下每个外表的“gsfs://192.168.0.90:500x/xxx | gsfs://192.168.0.90:500x/xxx”中的IP地址和端口,请替换成安装和启动GDS中的对应的GDS的监听IP和端口。如启动两个GDS,则使用“|”区分。如果启动多个GDS,需要将所有GDS的监听IP和端口配置到外表中。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
DROP FOREIGN TABLE IF EXISTS customer_address_ext;
CREATE FOREIGN TABLE customer_address_ext
(
ca_address_sk             bigint                        ,
ca_address_id             char(16)                      ,
ca_street_number          char(10)                      ,
ca_street_name            varchar(60)                   ,
ca_street_type            char(15)                      ,
ca_suite_number           char(10)                      ,
ca_city                   varchar(60)                   ,
ca_county                 varchar(30)                   ,
ca_state                  char(2)                       ,
ca_zip                    char(10)                      ,
ca_country                varchar(20)                   ,
ca_gmt_offset             decimal(5,2)                  ,
ca_location_type          char(20)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/customer_address.dat* | gsfs://192.168.0.90:5003/customer_address.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)WITH  customer_address_err;
DROP FOREIGN TABLE IF EXISTS customer_demographics_ext;
CREATE FOREIGN TABLE customer_demographics_ext
(
cd_demo_sk                bigint                        ,
cd_gender                 char(1)                       ,
cd_marital_status         char(1)                       ,
cd_education_status       char(20)                      ,
cd_purchase_estimate      bigint                        ,
cd_credit_rating          char(10)                      ,
cd_dep_count              bigint                        ,
cd_dep_employed_count     bigint                        ,
cd_dep_college_count      bigint
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/customer_demographics.dat* | gsfs://192.168.0.90:5003/customer_demographics.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH  customer_demographics_err
;
DROP FOREIGN TABLE IF EXISTS date_dim_ext;
CREATE FOREIGN TABLE date_dim_ext
(
d_date_sk                 bigint                       ,
d_date_id                 char(16)                     ,
d_date                    date                         ,
d_month_seq               bigint                       ,
d_week_seq                bigint                       ,
d_quarter_seq             bigint                       ,
d_year                    bigint                       ,
d_dow                     bigint                       ,
d_moy                     bigint                       ,
d_dom                     bigint                       ,
d_qoy                     bigint                       ,
d_fy_year                 bigint                       ,
d_fy_quarter_seq          bigint                       ,
d_fy_week_seq             bigint                       ,
d_day_name                char(9)                      ,
d_quarter_name            char(6)                      ,
d_holiday                 char(1)                      ,
d_weekend                 char(1)                      ,
d_following_holiday       char(1)                      ,
d_first_dom               bigint                       ,
d_last_dom                bigint                       ,
d_same_day_ly             bigint                       ,
d_same_day_lq             bigint                       ,
d_current_day             char(1)                      ,
d_current_week            char(1)                      ,
d_current_month           char(1)                      ,
d_current_quarter         char(1)                      ,
d_current_year            char(1)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/date_dim.dat* | gsfs://192.168.0.90:5003/date_dim.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH  date_dim_err
;
DROP FOREIGN TABLE IF EXISTS warehouse_ext;
CREATE FOREIGN TABLE warehouse_ext
(
w_warehouse_sk            bigint                        ,
w_warehouse_id            char(16)                      ,
w_warehouse_name          varchar(20)                   ,
w_warehouse_sq_ft         bigint                        ,
w_street_number           char(10)                      ,
w_street_name             varchar(60)                   ,
w_street_type             char(15)                      ,
w_suite_number            char(10)                      ,
w_city                    varchar(60)                   ,
w_county                  varchar(30)                   ,
w_state                   char(2)                       ,
w_zip                     char(10)                      ,
w_country                 varchar(20)                   ,
w_gmt_offset              decimal(5,2)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/warehouse.dat* | gsfs://192.168.0.90:5003/warehouse.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH  warehouse_err
;
DROP FOREIGN TABLE IF EXISTS ship_mode_ext;
CREATE FOREIGN TABLE ship_mode_ext
(
sm_ship_mode_sk           bigint                        ,
sm_ship_mode_id           char(16)                      ,
sm_type                   char(30)                      ,
sm_code                   char(10)                      ,
sm_carrier                char(20)                      ,
sm_contract               char(20)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/ship_mode.dat* | gsfs://192.168.0.90:5003/ship_mode.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH  ship_mode_err
;
DROP FOREIGN TABLE IF EXISTS time_dim_ext;
CREATE FOREIGN TABLE time_dim_ext
(
t_time_sk                 bigint                       ,
t_time_id                 char(16)                     ,
t_time                    bigint                       ,
t_hour                    bigint                       ,
t_minute                  bigint                       ,
t_second                  bigint                       ,
t_am_pm                   char(2)                      ,
t_shift                   char(20)                     ,
t_sub_shift               char(20)                     ,
t_meal_time               char(20)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/time_dim.dat* | gsfs://192.168.0.90:5003/time_dim.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH  time_dim_err
;
DROP FOREIGN TABLE IF EXISTS reason_ext;
CREATE FOREIGN TABLE reason_ext
(
r_reason_sk               bigint                ,
r_reason_id               char(16)              ,
r_reason_desc             char(100)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/reason.dat* | gsfs://192.168.0.90:5003/reason.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH reason_err
;
DROP FOREIGN TABLE IF EXISTS income_band_ext;
CREATE FOREIGN TABLE income_band_ext
(
ib_income_band_sk         bigint               ,
ib_lower_bound            bigint               ,
ib_upper_bound            bigint
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/income_band.dat* | gsfs://192.168.0.90:5003/income_band.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH  income_band_err
;
DROP FOREIGN TABLE IF EXISTS item_ext;
CREATE FOREIGN TABLE item_ext
(
i_item_sk                 bigint                        ,
i_item_id                 char(16)                      ,
i_rec_start_date          date                          ,
i_rec_end_date            date                          ,
i_item_desc               varchar(200)                  ,
i_current_price           decimal(7,2)                  ,
i_wholesale_cost          decimal(7,2)                  ,
i_brand_id                bigint                        ,
i_brand                   char(50)                      ,
i_class_id                bigint                        ,
i_class                   char(50)                      ,
i_category_id             bigint                        ,
i_category                char(50)                      ,
i_manufact_id             bigint                        ,
i_manufact                char(50)                      ,
i_size                    char(20)                      ,
i_formulation             char(20)                      ,
i_color                   char(20)                      ,
i_units                   char(10)                      ,
i_container               char(10)                      ,
i_manager_id              bigint                        ,
i_product_name            char(50)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/item.dat* | gsfs://192.168.0.90:5003/item.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH  item_err
;
DROP FOREIGN TABLE IF EXISTS store_ext;
CREATE FOREIGN TABLE store_ext
(
s_store_sk                bigint               ,
s_store_id                char(16)              ,
s_rec_start_date          date                          ,
s_rec_end_date            date                          ,
s_closed_date_sk          bigint                       ,
s_store_name              varchar(50)                   ,
s_number_employees        bigint                       ,
s_floor_space             bigint                       ,
s_hours                   char(20)                      ,
s_manager                 varchar(40)                   ,
s_market_id               bigint                       ,
s_geography_class         varchar(100)                  ,
s_market_desc             varchar(100)                  ,
s_market_manager          varchar(40)                   ,
s_division_id             bigint                       ,
s_division_name           varchar(50)                   ,
s_company_id              bigint                       ,
s_company_name            varchar(50)                   ,
s_street_number           varchar(10)                   ,
s_street_name             varchar(60)                   ,
s_street_type             char(15)                      ,
s_suite_number            char(10)                      ,
s_city                    varchar(60)                   ,
s_county                  varchar(30)                   ,
s_state                   char(2)                       ,
s_zip                     char(10)                      ,
s_country                 varchar(20)                   ,
s_gmt_offset              decimal(5,2)                  ,
s_tax_precentage          decimal(5,2)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/store_[^rs]_* | gsfs://192.168.0.90:5003/store_[^rs]_*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH store_err
;
DROP FOREIGN TABLE IF EXISTS call_center_ext;
CREATE FOREIGN TABLE call_center_ext
(
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              bigint                       ,
cc_sq_ft                  bigint                       ,
cc_hours                  char(20)                      ,
cc_manager                varchar(40)                   ,
cc_mkt_id                 bigint                       ,
cc_mkt_class              char(50)                      ,
cc_mkt_desc               varchar(100)                  ,
cc_market_manager         varchar(40)                   ,
cc_division               bigint                       ,
cc_division_name          varchar(50)                   ,
cc_company                bigint                       ,
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)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/call_center.dat* | gsfs://192.168.0.90:5003/call_center.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH call_center_err
;
DROP FOREIGN TABLE IF EXISTS customer_ext;
CREATE FOREIGN TABLE customer_ext
(
c_customer_sk             bigint               ,
c_customer_id             char(16)              ,
c_current_cdemo_sk        bigint                       ,
c_current_hdemo_sk        bigint                       ,
c_current_addr_sk         bigint                       ,
c_first_shipto_date_sk    bigint                       ,
c_first_sales_date_sk     bigint                       ,
c_salutation              char(10)                      ,
c_first_name              char(20)                      ,
c_last_name               char(30)                      ,
c_preferred_cust_flag     char(1)                       ,
c_birth_day               bigint                       ,
c_birth_month             bigint                       ,
c_birth_year              bigint                       ,
c_birth_country           varchar(20)                   ,
c_login                   char(13)                      ,
c_email_address           char(50)                      ,
c_last_review_date_sk        char(10)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/customer_[^ad]_* | gsfs://192.168.0.90:5003/customer_[^ad]_*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'GBK',
mode 'Normal'
)
WITH  customer_err
;
DROP FOREIGN TABLE IF EXISTS web_site_ext;
CREATE FOREIGN TABLE web_site_ext
(
web_site_sk               bigint               ,
web_site_id               char(16)              ,
web_rec_start_date        date                          ,
web_rec_end_date          date                          ,
web_name                  varchar(50)                   ,
web_open_date_sk          bigint                       ,
web_close_date_sk         bigint                       ,
web_class                 varchar(50)                   ,
web_manager               varchar(40)                   ,
web_mkt_id                bigint                       ,
web_mkt_class             varchar(50)                   ,
web_mkt_desc              varchar(100)                  ,
web_market_manager        varchar(40)                   ,
web_company_id            bigint                       ,
web_company_name          char(50)                      ,
web_street_number         char(10)                      ,
web_street_name           varchar(60)                   ,
web_street_type           char(15)                      ,
web_suite_number          char(10)                      ,
web_city                  varchar(60)                   ,
web_county                varchar(30)                   ,
web_state                 char(2)                       ,
web_zip                   char(10)                      ,
web_country               varchar(20)                   ,
web_gmt_offset            decimal(5,2)                  ,
web_tax_percentage        decimal(5,2)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/web_site.dat* | gsfs://192.168.0.90:5003/web_site.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH  web_site_err
;
DROP FOREIGN TABLE IF EXISTS store_returns_ext;
CREATE FOREIGN TABLE store_returns_ext
(
sr_returned_date_sk       bigint                       ,
sr_return_time_sk         bigint                       ,
sr_item_sk                bigint               ,
sr_customer_sk            bigint                       ,
sr_cdemo_sk               bigint                       ,
sr_hdemo_sk               bigint                       ,
sr_addr_sk                bigint                       ,
sr_store_sk               bigint                       ,
sr_reason_sk              bigint                       ,
sr_ticket_number          bigint               ,
sr_return_quantity        bigint                       ,
sr_return_amt             decimal(7,2)                  ,
sr_return_tax             decimal(7,2)                  ,
sr_return_amt_inc_tax     decimal(7,2)                  ,
sr_fee                    decimal(7,2)                  ,
sr_return_ship_cost       decimal(7,2)                  ,
sr_refunded_cash          decimal(7,2)                  ,
sr_reversed_charge        decimal(7,2)                  ,
sr_store_credit           decimal(7,2)                  ,
sr_net_loss               decimal(7,2)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/store_returns.dat* | gsfs://192.168.0.90:5003/store_returns.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH store_returns_err
;
DROP FOREIGN TABLE IF EXISTS household_demographics_ext;
CREATE FOREIGN TABLE household_demographics_ext
(
hd_demo_sk                bigint               ,
hd_income_band_sk         bigint                       ,
hd_buy_potential          char(15)                      ,
hd_dep_count              bigint                       ,
hd_vehicle_count          bigint
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/household_demographics.dat* | gsfs://192.168.0.90:5003/household_demographics.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH  household_demographics_err
;
DROP FOREIGN TABLE IF EXISTS web_page_ext;
CREATE FOREIGN TABLE web_page_ext
(
wp_web_page_sk            bigint               ,
wp_web_page_id            char(16)              ,
wp_rec_start_date         date                          ,
wp_rec_end_date           date                          ,
wp_creation_date_sk       bigint                       ,
wp_access_date_sk         bigint                       ,
wp_autogen_flag           char(1)                       ,
wp_customer_sk            bigint                       ,
wp_url                    varchar(100)                  ,
wp_type                   char(50)                      ,
wp_char_count             bigint                       ,
wp_link_count             bigint                       ,
wp_image_count            bigint                       ,
wp_max_ad_count           bigint
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/web_page.dat* | gsfs://192.168.0.90:5003/web_page.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH web_page_err
;
DROP FOREIGN TABLE IF EXISTS promotion_ext;
CREATE FOREIGN TABLE promotion_ext
(
p_promo_sk                bigint               ,
p_promo_id                char(16)              ,
p_start_date_sk           bigint                       ,
p_end_date_sk             bigint                       ,
p_item_sk                 bigint                       ,
p_cost                    decimal(15,2)                 ,
p_response_target         bigint                       ,
p_promo_name              char(50)                      ,
p_channel_dmail           char(1)                       ,
p_channel_email           char(1)                       ,
p_channel_catalog         char(1)                       ,
p_channel_tv              char(1)                       ,
p_channel_radio           char(1)                       ,
p_channel_press           char(1)                       ,
p_channel_event           char(1)                       ,
p_channel_demo            char(1)                       ,
p_channel_details         varchar(100)                  ,
p_purpose                 char(15)                      ,
p_discount_active         char(1)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/promotion.dat* | gsfs://192.168.0.90:5003/promotion.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH promotion_err
;
DROP FOREIGN TABLE IF EXISTS catalog_page_ext;
CREATE FOREIGN TABLE catalog_page_ext
(
cp_catalog_page_sk        bigint               ,
cp_catalog_page_id        char(16)              ,
cp_start_date_sk          bigint                       ,
cp_end_date_sk            bigint                       ,
cp_department             varchar(50)                   ,
cp_catalog_number         bigint                       ,
cp_catalog_page_number    bigint                       ,
cp_description            varchar(100)                  ,
cp_type                   varchar(100)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/catalog_page.dat* | gsfs://192.168.0.90:5003/catalog_page.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH  catalog_page_err
;
DROP FOREIGN TABLE IF EXISTS inventory_ext;
CREATE FOREIGN TABLE inventory_ext
(
inv_date_sk               bigint               ,
inv_item_sk               bigint               ,
inv_warehouse_sk          bigint               ,
inv_quantity_on_hand      integer
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/inventory.dat* | gsfs://192.168.0.90:5003/inventory.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH inventory_err
;
DROP FOREIGN TABLE IF EXISTS catalog_returns_ext;
CREATE FOREIGN TABLE catalog_returns_ext
(
cr_returned_date_sk       bigint                       ,
cr_returned_time_sk       bigint                       ,
cr_item_sk                bigint                       ,
cr_refunded_customer_sk   bigint                       ,
cr_refunded_cdemo_sk      bigint                       ,
cr_refunded_hdemo_sk      bigint                       ,
cr_refunded_addr_sk       bigint                       ,
cr_returning_customer_sk  bigint                       ,
cr_returning_cdemo_sk     bigint                       ,
cr_returning_hdemo_sk     bigint                       ,
cr_returning_addr_sk      bigint                       ,
cr_call_center_sk         bigint                       ,
cr_catalog_page_sk        bigint                       ,
cr_ship_mode_sk           bigint                       ,
cr_warehouse_sk           bigint                       ,
cr_reason_sk              bigint                       ,
cr_order_number           bigint                       ,
cr_return_quantity        bigint                       ,
cr_return_amount          decimal(7,2)                  ,
cr_return_tax             decimal(7,2)                  ,
cr_return_amt_inc_tax     decimal(7,2)                  ,
cr_fee                    decimal(7,2)                  ,
cr_return_ship_cost       decimal(7,2)                  ,
cr_refunded_cash          decimal(7,2)                  ,
cr_reversed_charge        decimal(7,2)                  ,
cr_store_credit           decimal(7,2)                  ,
cr_net_loss               decimal(7,2)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/catalog_returns.dat* | gsfs://192.168.0.90:5003/catalog_returns.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH catalog_returns_err
;
DROP FOREIGN TABLE IF EXISTS web_returns_ext;
CREATE FOREIGN TABLE web_returns_ext
(
wr_returned_date_sk       bigint                       ,
wr_returned_time_sk       bigint                       ,
wr_item_sk                bigint                       ,
wr_refunded_customer_sk   bigint                       ,
wr_refunded_cdemo_sk      bigint                       ,
wr_refunded_hdemo_sk      bigint                       ,
wr_refunded_addr_sk       bigint                       ,
wr_returning_customer_sk  bigint                       ,
wr_returning_cdemo_sk     bigint                       ,
wr_returning_hdemo_sk     bigint                       ,
wr_returning_addr_sk      bigint                       ,
wr_web_page_sk            bigint                       ,
wr_reason_sk              bigint                       ,
wr_order_number           bigint                       ,
wr_return_quantity        bigint                       ,
wr_return_amt             decimal(7,2)                  ,
wr_return_tax             decimal(7,2)                  ,
wr_return_amt_inc_tax     decimal(7,2)                  ,
wr_fee                    decimal(7,2)                  ,
wr_return_ship_cost       decimal(7,2)                  ,
wr_refunded_cash          decimal(7,2)                  ,
wr_reversed_charge        decimal(7,2)                  ,
wr_account_credit         decimal(7,2)                  ,
wr_net_loss               decimal(7,2)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/web_returns.dat* | gsfs://192.168.0.90:5003/web_returns.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
)
WITH web_returns_err
;
DROP FOREIGN TABLE IF EXISTS web_sales_ext;
CREATE FOREIGN TABLE web_sales_ext
(
ws_sold_date_sk           bigint                       ,
ws_sold_time_sk           bigint                       ,
ws_ship_date_sk           bigint                       ,
ws_item_sk                bigint                       ,
ws_bill_customer_sk       bigint                       ,
ws_bill_cdemo_sk          bigint                       ,
ws_bill_hdemo_sk          bigint                       ,
ws_bill_addr_sk           bigint                       ,
ws_ship_customer_sk       bigint                       ,
ws_ship_cdemo_sk          bigint                       ,
ws_ship_hdemo_sk          bigint                       ,
ws_ship_addr_sk           bigint                       ,
ws_web_page_sk            bigint                       ,
ws_web_site_sk            bigint                       ,
ws_ship_mode_sk           bigint                       ,
ws_warehouse_sk           bigint                       ,
ws_promo_sk               bigint                       ,
ws_order_number           bigint                       ,
ws_quantity               bigint                       ,
ws_wholesale_cost         decimal(7,2)                  ,
ws_list_price             decimal(7,2)                  ,
ws_sales_price            decimal(7,2)                  ,
ws_ext_discount_amt       decimal(7,2)                  ,
ws_ext_sales_price        decimal(7,2)                  ,
ws_ext_wholesale_cost     decimal(7,2)                  ,
ws_ext_list_price         decimal(7,2)                  ,
ws_ext_tax                decimal(7,2)                  ,
ws_coupon_amt             decimal(7,2)                  ,
ws_ext_ship_cost          decimal(7,2)                  ,
ws_net_paid               decimal(7,2)                  ,
ws_net_paid_inc_tax       decimal(7,2)                  ,
ws_net_paid_inc_ship      decimal(7,2)                  ,
ws_net_paid_inc_ship_tax  decimal(7,2)                  ,
ws_net_profit             decimal(7,2)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/web_sales.dat* | gsfs://192.168.0.90:5003/web_sales.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
) WITH web_sales_err ;
DROP FOREIGN TABLE IF EXISTS catalog_sales_ext;
CREATE FOREIGN TABLE catalog_sales_ext
(
cs_sold_date_sk           bigint                       ,
cs_sold_time_sk           bigint                       ,
cs_ship_date_sk           bigint                       ,
cs_bill_customer_sk       bigint                       ,
cs_bill_cdemo_sk          bigint                       ,
cs_bill_hdemo_sk          bigint                       ,
cs_bill_addr_sk           bigint                       ,
cs_ship_customer_sk       bigint                       ,
cs_ship_cdemo_sk          bigint                       ,
cs_ship_hdemo_sk          bigint                       ,
cs_ship_addr_sk           bigint                       ,
cs_call_center_sk         bigint                       ,
cs_catalog_page_sk        bigint                       ,
cs_ship_mode_sk           bigint                       ,
cs_warehouse_sk           bigint                       ,
cs_item_sk                bigint                       ,
cs_promo_sk               bigint                       ,
cs_order_number           bigint                       ,
cs_quantity               bigint                       ,
cs_wholesale_cost         decimal(7,2)                  ,
cs_list_price             decimal(7,2)                  ,
cs_sales_price            decimal(7,2)                  ,
cs_ext_discount_amt       decimal(7,2)                  ,
cs_ext_sales_price        decimal(7,2)                  ,
cs_ext_wholesale_cost     decimal(7,2)                  ,
cs_ext_list_price         decimal(7,2)                  ,
cs_ext_tax                decimal(7,2)                  ,
cs_coupon_amt             decimal(7,2)                  ,
cs_ext_ship_cost          decimal(7,2)                  ,
cs_net_paid               decimal(7,2)                  ,
cs_net_paid_inc_tax       decimal(7,2)                  ,
cs_net_paid_inc_ship      decimal(7,2)                  ,
cs_net_paid_inc_ship_tax  decimal(7,2)                  ,
cs_net_profit             decimal(7,2)
)
SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/catalog_sales.dat* | gsfs://192.168.0.90:5003/catalog_sales.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
) WITH  catalog_sales_err ;
DROP FOREIGN TABLE IF EXISTS store_sales_ext;
CREATE FOREIGN TABLE store_sales_ext
(
ss_sold_date_sk           bigint                       ,
ss_sold_time_sk           bigint                       ,
ss_item_sk                bigint                       ,
ss_customer_sk            bigint                       ,
ss_cdemo_sk               bigint                       ,
ss_hdemo_sk               bigint                       ,
ss_addr_sk                bigint                       ,
ss_store_sk               bigint                       ,
ss_promo_sk               bigint                       ,
ss_ticket_number          bigint                        ,
ss_quantity               bigint                       ,
ss_wholesale_cost         decimal(7,2)                  ,
ss_list_price             decimal(7,2)                  ,
ss_sales_price            decimal(7,2)                  ,
ss_ext_discount_amt       decimal(7,2)                  ,
ss_ext_sales_price        decimal(7,2)                  ,
ss_ext_wholesale_cost     decimal(7,2)                  ,
ss_ext_list_price         decimal(7,2)                  ,
ss_ext_tax                decimal(7,2)                  ,
ss_coupon_amt             decimal(7,2)                  ,
ss_net_paid               decimal(7,2)                  ,
ss_net_paid_inc_tax       decimal(7,2)                  ,
ss_net_profit             decimal(7,2)
) SERVER gsmpp_server
OPTIONS(location 'gsfs://192.168.0.90:5002/store_sales.dat* | gsfs://192.168.0.90:5003/store_sales.dat*',
FORMAT 'TEXT' ,
DELIMITER '|',
encoding 'utf8',
mode 'Normal'
) WITH store_sales_err;

导入TPC-DS数据

执行以下命令导入数据。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
INSERT INTO   customer_address  SELECT * FROM  customer_address_ext;
INSERT INTO   customer_demographics SELECT * FROM  customer_demographics_ext;
INSERT INTO   date_dim SELECT * FROM  date_dim_ext;
INSERT INTO   warehouse SELECT * FROM  warehouse_ext;
INSERT INTO   ship_mode SELECT * FROM  ship_mode_ext;
INSERT INTO   time_dim SELECT * FROM  time_dim_ext;
INSERT INTO   reason SELECT * FROM  reason_ext;
INSERT INTO   income_band SELECT * FROM  income_band_ext;
INSERT INTO   item SELECT * FROM  item_ext;
INSERT INTO   store SELECT * FROM  store_ext;
INSERT INTO   call_center SELECT * FROM  call_center_ext;
INSERT INTO   customer SELECT * FROM  customer_ext;
INSERT INTO   web_site SELECT * FROM  web_site_ext;
INSERT INTO   household_demographics SELECT * FROM  household_demographics_ext;
INSERT INTO   web_page SELECT * FROM  web_page_ext;
INSERT INTO   promotion SELECT * FROM  promotion_ext;
INSERT INTO   catalog_page SELECT * FROM  catalog_page_ext;
INSERT INTO   inventory SELECT * FROM  inventory_ext;
INSERT INTO   catalog_returns SELECT * FROM  catalog_returns_ext;
INSERT INTO   web_returns SELECT * FROM  web_returns_ext;
INSERT INTO   store_returns SELECT * FROM  store_returns_ext;
INSERT INTO   web_sales SELECT * FROM  web_sales_ext;
INSERT INTO   catalog_sales SELECT * FROM  catalog_sales_ext;
INSERT INTO   store_sales SELECT * FROM  store_sales_ext;

相关文档