更新时间:2024-08-20 GMT+08:00

创建GDS外表并导入TPC-DS数据

本文介绍如何通过GDS外表导入TPC-DS 1000x数据,表1列出了TPC-DS测试数据集中的表数据行数。

TPC-H请跳过本章节。

表数据行数

表1 TPC-DS

序号

表名

行数

1

customer_address

6,000,000

2

customer_demographics

1,920,800

3

date_dim

73,049

4

warehouse

20

5

ship_mode

20

6

time_dim

86,400

7

reason

65

8

income_band

20

9

item

300,000

10

store

1,002

11

call_center

42

12

customer

12,000,000

13

web_site

54

14

household_demographics

7,200

15

web_page

3,000

16

promotion

1,500

17

catalog_page

30,000

18

inventory

783,000,000

19

catalog_returns

143,996,756

20

web_returns

71,997,522

21

store_returns

287,999,764

22

web_sales

720,000,376

23

catalog_sales

1,439,980,416

24

store_sales

2,879,987,999

操作步骤

  1. 使用gsql连接DWS成功后,执行以下SQL创建目标表(共24张表)。

      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
    CREATE TABLE customer_address
    (
        ca_address_sk             bigint               not null ,
        ca_address_id             char(16)              not null,
        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)
    ) 
     with (orientation = column)
    distribute by hash (ca_address_sk);
    
    
    CREATE TABLE customer_demographics
    (
        cd_demo_sk                bigint               not null ,
        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
    ) 
     with (orientation = column)
    distribute by hash (cd_demo_sk);
    
    
    CREATE TABLE date_dim
    (
        d_date_sk                 bigint               not null,
        d_date_id                 char(16)             not null,
        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)                       
    )
     with (orientation = column)
     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            bigint                not null,
        w_warehouse_id            char(16)              not null,
        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)
    ) 
     with (orientation = column)
    distribute by replication;
    
    
    CREATE TABLE ship_mode
    (
        sm_ship_mode_sk           bigint                not null,
        sm_ship_mode_id           char(16)              not null,
        sm_type                   char(30)                      ,
        sm_code                   char(10)                      ,
        sm_carrier                char(20)                      ,
        sm_contract               char(20)                      
    ) 
     with (orientation = column)
    distribute by replication;
    
    
    CREATE TABLE time_dim
    (
        t_time_sk                 bigint                not null,
        t_time_id                 char(16)              not null,
        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)                     
    ) 
     with (orientation = column)
    distribute by hash (t_time_sk);
    
    
    CREATE TABLE reason
    (
        r_reason_sk               bigint               not null,
        r_reason_id               char(16)             not null,
        r_reason_desc             char(100)
    ) 
     with (orientation = column)
    distribute by replication;
    
    
    CREATE TABLE income_band
    (
        ib_income_band_sk         bigint               not null,
        ib_lower_bound            bigint                       ,
        ib_upper_bound            bigint                       
    ) 
     with (orientation = column)
    distribute by replication;
    
    CREATE TABLE item
    (
        i_item_sk                 bigint                not null,
        i_item_id                 char(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                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)                      
    ) 
     with (orientation = column)
    distribute by hash (i_item_sk);
    
    
    CREATE TABLE store
    (
        s_store_sk                bigint                not null,
        s_store_id                char(16)              not null,
        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)
    ) 
     with (orientation = column)
    distribute by replication;
    
    CREATE TABLE call_center
    (
        cc_call_center_sk         bigint                not null,
        cc_call_center_id         char(16)              not null,
        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)                  
    ) 
     with (orientation = column)
    distribute by replication;
    
    drop table if exists customer;
    CREATE TABLE customer
    (
        c_customer_sk             bigint               not null,
        c_customer_id             char(16)             not null,
        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)
    ) 
     with (orientation = column)
    distribute by hash (c_customer_sk);
    
    
    CREATE TABLE web_site
    (
        web_site_sk               bigint                not null,
        web_site_id               char(16)              not null,
        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)
    ) 
     with (orientation = column)
    distribute by replication;
    
    CREATE TABLE household_demographics
    (
        hd_demo_sk                bigint               not null,
        hd_income_band_sk         bigint                       ,
        hd_buy_potential          char(15)                     ,
        hd_dep_count              bigint                       ,
        hd_vehicle_count          bigint
    ) 
     with (orientation = column)
    distribute by hash (hd_demo_sk);
    
    
    CREATE TABLE web_page
    (
        wp_web_page_sk            bigint                not null,
        wp_web_page_id            char(16)              not null,
        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                       
    ) 
     with (orientation = column)
    distribute by replication;
    
    
    CREATE TABLE promotion
    (
        p_promo_sk                bigint                not null,
        p_promo_id                char(16)              not null,
        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)                       
    ) 
     with (orientation = column)
    DISTRIBUTE BY HASH(p_promo_sk);
    
    
    CREATE TABLE catalog_page
    (
        cp_catalog_page_sk        bigint               not null,
        cp_catalog_page_id        char(16)             not null,
        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)                 
    ) 
     with (orientation = column)
    distribute by hash (cp_catalog_page_sk);
    
    CREATE TABLE inventory
    (
        inv_date_sk               bigint               not null,
        inv_item_sk               bigint               not null,
        inv_warehouse_sk          bigint               not null,
        inv_quantity_on_hand      integer                       
    ) 
     with (orientation = column)
    distribute by hash (inv_item_sk)
    partition by range(inv_date_sk)
    (
    	partition p1 values less than(2451180),
    	partition p2 values less than(2451545),
    	partition p3 values less than(2451911),
    	partition p4 values less than(2452276),
    	partition p5 values less than(2452641),
    	partition p6 values less than(2453006),
    	partition p7 values less than(maxvalue)
    )
    ;
    
    CREATE TABLE catalog_returns
    (
        cr_returned_date_sk       bigint                       ,
        cr_returned_time_sk       bigint                       ,
        cr_item_sk                bigint               not null,
        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               not null,
        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)                 
    ) 
    with (orientation = column)
    distribute by hash (cr_item_sk)
    partition by range(cr_returned_date_sk)
    (
    	partition p1 values less than(2450815),
    	partition p2 values less than(2451180),
    	partition p3 values less than(2451545),
    	partition p4 values less than(2451911),
    	partition p5 values less than(2452276),
    	partition p6 values less than(2452641),
    	partition p7 values less than(2453006),
    	partition p8 values less than(maxvalue)
    )
    ;
    
    
    CREATE TABLE web_returns
    (
        wr_returned_date_sk       bigint                       ,
        wr_returned_time_sk       bigint                       ,
        wr_item_sk                bigint               not null,
        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               not null,
        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)                 
    ) 
     with (orientation = column)
    distribute by hash (wr_item_sk)
    partition by range(wr_returned_date_sk)
    (
    	partition p1 values less than(2450815),
    	partition p2 values less than(2451180),
    	partition p3 values less than(2451545),
    	partition p4 values less than(2451911),
    	partition p5 values less than(2452276),
    	partition p6 values less than(2452641),
    	partition p7 values less than(2453006),
    	partition p8 values less than(maxvalue)
    )
    ;
    
    CREATE TABLE store_returns
    (
        sr_returned_date_sk       bigint                       ,
        sr_return_time_sk         bigint                       ,
        sr_item_sk                bigint               not null,
        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               not null,
        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)                  
    ) 
     with (orientation = column)
    distribute by hash (sr_item_sk)
    partition by range(sr_returned_date_sk)
    (
    	partition p1 values less than (2451180) ,
    	partition p2 values less than (2451545) ,
    	partition p3 values less than (2451911) ,
    	partition p4 values less than (2452276) ,
    	partition p5 values less than (2452641) ,
    	partition p6 values less than (2453006) ,
    	partition p7 values less than (maxvalue)
    )
    ;
    
    
    CREATE TABLE web_sales
    (
        ws_sold_date_sk           bigint                       ,
        ws_sold_time_sk           bigint                       ,
        ws_ship_date_sk           bigint                       ,
        ws_item_sk                bigint               not null,
        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               not null,
        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)                  
    ) 
     with (orientation = column)
    distribute by hash (ws_item_sk)
    partition by range(ws_sold_date_sk)
    (
    	partition p1 values less than(2451180),
    	partition p2 values less than(2451545),
    	partition p3 values less than(2451911),
    	partition p4 values less than(2452276),
    	partition p5 values less than(2452641),
    	partition p6 values less than(2453006),
    	partition p7 values less than(maxvalue)
    )
    ;
    
    CREATE TABLE catalog_sales
    (
        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               not null,
        cs_promo_sk               bigint                       ,
        cs_order_number           bigint               not null,
        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)                  
    ) 
     with (orientation = column)
    distribute by hash (cs_item_sk)
    partition by range(cs_sold_date_sk)
    (
    	partition p1 values less than(2451180),
    	partition p2 values less than(2451545),
    	partition p3 values less than(2451911),
    	partition p4 values less than(2452276),
    	partition p5 values less than(2452641),
    	partition p6 values less than(2453006),
    	partition p7 values less than(maxvalue)
    )
    ;
    
    CREATE TABLE store_sales
    (
        ss_sold_date_sk           bigint                       ,
        ss_sold_time_sk           bigint                       ,
        ss_item_sk                bigint               not null,
        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               not null,
        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)                  
    ) 
     with (orientation = column)
    distribute by hash (ss_item_sk)
    partition by range(ss_sold_date_sk)
    (
    	partition p1 values less than(2451180),
    	partition p2 values less than(2451545),
    	partition p3 values less than(2451911),
    	partition p4 values less than(2452276),
    	partition p5 values less than(2452641),
    	partition p6 values less than(2453006),
    	partition p7 values less than(maxvalue)
    )
    ;
    

  2. 执行以下SQL语句创建GDS外表(共24张表)。

    以下每个外表的“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
    729
    730
    731
    732
    733
    734
    735
    736
    737
    738
    739
    740
    741
    742
    743
    744
    745
    746
    747
    748
    749
    750
    751
    752
    753
    754
    755
    756
    757
    758
    759
    760
    761
    762
    763
    764
    765
    766
    767
    768
    769
    770
    771
    772
    773
    774
    775
    776
    777
    778
    779
    780
    781
    782
    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* | gsfs://192.168.0.90:5003/customer_address*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/customer_demographics*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/date_dim*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/warehouse*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/ship_mode*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/time_dim*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/reason*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/income_band*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/item*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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/storet_[^rs]*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/call_center*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/web_site*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/store_returns*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/household_demographics*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/web_page*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/promotion*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/catalog_page*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/inventory*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/catalog_returns*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/web_returns*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/web_sales*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/catalog_sales*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    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* | gsfs://192.168.0.90:5003/store_sales*',
    FORMAT 'TEXT' ,
    DELIMITER '|',
    encoding 'utf8',
    FILL_MISSING_FIELDS 'true',
    IGNORE_EXTRA_DATA 'true',
    mode 'Normal'
    )
    with store_sales_err;
    

  3. 执行以下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
    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;