
# 创建GDS外表
#### 操作步骤
1. 根据[规划导出数据](https://support.huaweicloud.com/migration-dws/dws_15_0085.html#ZH-CN_TOPIC_0000002219984080)中规划的路径确定外表参数**location** 的值。
   
   - **Remote** 模式
     请通过URL方式设置参数"location"，用于指定导出的数据文件存放路径。
     - 不需要指定文件名。
     
     - 当有多个路径时，若导出数据源数少于路径数时，多余的路径只会生成文件而不写入数据。
      
     **示例：**
     GDS数据服务器IP为192.168.0.90，假定启动GDS时设置的监听端口为5000，设置的导出后文件存放目录为"/output_data/"。
     根据以上情况，在创建外表时，指定参数"location"为"gsfs://192.168.0.90:5000/"。
     ![](https://support.huaweicloud.com/migration-dws/public_sys-resources/note_3.0-zh-cn.png)
     - location可以指定子目录如"gsfs://192.168.0.90:5000/2019/11/"实现同一张表根据日期导出到不同目录下。
     
     - 现有版本在执行**导出**任务的时候会判断"/output_data/2019/11"目录是否存在，不存在则创建。导出时会将文件写入此目录下， 这样用户在创建或修改外表后就不需要再去手动执行"mkdir -p /output_data/2019/11"。
       
   
   
   
   
2. 梳理待导出数据的格式信息，确定创建外表时使用的数据格式参数的值。
3. 根据前面步骤确定的参数，**创建GDS外表**。
 
#### 示例
- **示例：** 创建GDS导出外表foreign_tpcds_reasons，待导出数据格式为CSV，用于接收数据服务器上的数据。
  其中设置的**导出模式**信息如下所示：
  规划数据服务器与集群处于同一内网，数据服务器IP为192.168.0.90，待导出的数据文件格式为CSV，选择并行导出模式为Remote模式。
  假定启动GDS时，规划导出的数据文件存放目录为"/output_data/"，GDS监听端口为5000，所以设置参数"location"为"gsfs://192.168.0.90:5000/"。
  设置导出的**数据格式信息**，参数设置如下所示：
  - 导出数据文件格式（format）为CSV。
  
  - 编码格式（encoding）为UTF-8。
  
  - 字段分隔符（delimiter）为E'\\x08'。
  
  - 引号字符（quote）为E'\\x1b'。
  
  - 数据文件中空值（null）为没有引号的空字符串。
  
  - 逃逸字符（escape）默认和quote相同。
  
  - 数据文件是否包含标题行（header）为默认值false，即导出时数据文件第一行被识别为数据。
  
  - 导出数据文件换行符样式（EOL）为0X0A。
  
  
  创建的外表如下所示：
  ```
  CREATE FOREIGN TABLE foreign_tpcds_reasons
  (
    r_reason_sk    integer        not null,
    r_reason_id    char(16)       not null,
    r_reason_desc  char(100)
  ) 
  SERVER gsmpp_server 
  OPTIONS (LOCATION 'gsfs://192.168.0.90:5000/', 
  FORMAT 'CSV',
  DELIMITER E'\x08',
  QUOTE E'\x1b', 
  NULL '', 
  EOL '0x0a'
  )
  WRITE ONLY;
  ```
  
 
