本文以nation.tbl为例,详细为您介绍如何将普通文本文件转换成RCFile格式的文件。

  1. 创建OSS Schema。

    ​ CREATE SCHEMA dla_oss_db with DBPROPERTIES(
      catalog='oss',
      location 'oss://bucket-name/TPC-H/'
      )​
  2. 在DLA中创建nation_txt表,LOCATION为OSS中nation.tbl的路径。

    ​ CREATE EXTERNAL TABLE nation_txt(
         n_nationkey int,
         n_name string,
         n_id string,
         n_regionkey int,
         n_comment string
     )
     ROW FORMAT DELIMITED
         FIELDS TERMINATED BY '|'
     STORED AS TEXTFILE
     LOCATION 'oss://bucket-name/TPC-H/nation/nation.tbl'​
  3. 在DLA中创建目标表nation_RCFile,LOCATION设置为OSS中的您需要的位置。

    注意:LOCATION必须是OSS中已经存在的目录,以/结尾。

    ​ CREATE EXTERNAL TABLE nation_RCFile(
         n_nationkey int,
         n_name string,
         n_id string,
         n_regionkey int,
         n_comment string
     )
     ROW FORMAT DELIMITED
         FIELDS TERMINATED BY '|'
     STORED AS RCFile
     LOCATION 'oss://bucket-name/TPC-H/nation_RCFile/'​

    STORED AS RCFile:指定文件的存储格式为RCFile。

  4. 执行INSERT...SELECT语句,将nation_txt表中的数据插入nation_RCFile表中。

     INSERT INTO nation_RCFile SELECT * FROM nation_txt;
  5. 查看nation_RCFile数据。

    INSERT...SELECT语句执行成功后,在OSS中查看生成的RCFile数据文件。