数据仓库服务 GaussDB(DWS)-CREATE FOREIGN TABLE (SQL on OBS or Hadoop):示例1

时间:2025-02-12 15:05:07

示例1

在HDFS通过HIVE导入TPC-H benchmark测试数据表part表及region表。part表的文件路径为/user/hive/warehouse/partition.db/part_4region表的文件路径为/user/hive/warehouse/gauss.db/region_orc11_64stripe/

  1. 创建HDFS_Server,对应的foreign data wrapper为HDFS_FDW或者DFS_FDW。
    1
    CREATE SERVER hdfs_server FOREIGN DATA WRAPPER HDFS_FDW OPTIONS (address '10.10.0.100:25000,10.10.0.101:25000',hdfscfgpath '/opt/hadoop_client/HDFS/hadoop/etc/hadoop',type'HDFS');
    • 在可选项options里面写入了HDFS集群对应的NameNode的IP地址及端口号。具体端口号请在 MRS -HDFS服务配置中搜索参数“dfs.namenode.rpc.port”查看。本示例假设端口号为25000
    • ‘10.10.0.100:25000,10.10.0.101:25000’中列出了两组NameNode的地址及端口号,分别表示HDFS的主NameNode及备NameNode,这里推荐使用该种主备方式填写。两组参量中间使用“,”进行分割
  2. 创建HDFS外表。表关联的HDFS server为hdfs_server,表ft_region对应的HDFS服务器上的文件格式为‘orc’,在HDFS文件系统上对应的文件目录为'/user/hive/warehouse/gauss.db/region_orc11_64stripe/'。
    • 创建不包含分区列的HDFS外表:
       1 2 3 4 5 6 7 8 91011121314151617
      DROP FOREIGN TABLE IF EXISTS ft_region;CREATE FOREIGN TABLE ft_region(    R_REGIONKEY INT4,    R_NAME TEXT,    R_COMMENT TEXT)SERVER    hdfs_serverOPTIONS(    FORMAT 'orc',    encoding 'utf8',    FOLDERNAME '/user/hive/warehouse/gauss.db/region_orc11_64stripe/')DISTRIBUTE BY      roundrobin;
    • 创建包含分区列的HDFS外表:
       1 2 3 4 5 6 7 8 9101112131415161718192021222324
      CREATE FOREIGN TABLE ft_part (     p_partkey int,      p_name text,      p_mfgr text,      p_brand text,      p_type text,      p_size int,      p_container text,      p_retailprice float8,      p_comment text)SERVER     hdfs_serverOPTIONS(     FORMAT 'orc',     encoding 'utf8',     FOLDERNAME '/user/hive/warehouse/partition.db/part_4')DISTRIBUTE BY      roundrobinPARTITION BY      (p_mfgr) AUTOMAPPED;

      GaussDB (DWS)支持2种文件指定方式:通过关键字filenames指定和通过foldername指定。推荐通过使用foldername进行指定。关键字distribute指定了表ft_region的存储分布方式。

  3. 查看创建的外表:
    12
    SELECT * FROM pg_foreign_table WHERE ftrelid='ft_region'::regclass;SELECT * FROM pg_foreign_table WHERE ftrelid='ft_part'::regclass;
support.huaweicloud.com/sqlreference-dws/dws_06_0161.html