ITPub博客

首页 > 数据库 > > 示例-示例3:Private策略导入

示例-示例3:Private策略导入

作者:GaussDB_数据库 时间:2020-01-14 13:48:38 0 删除 编辑

假设集群共有4台主机,8个主DN,即每个主机上有2个主DN。待导入数据文件有8个,每个50MB。文件格式为CSV。

  1. 以omm用户身份登录CN所在服务器,执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。
  2. 使用如下命令连接数据库。
    gsql -d postgres -p 25308
    postgres为需要连接的数据库名称,25308为CN的端口号。

    连接成功后,系统显示类似如下信息:

    gsql ((GaussDB Kernel V300R002C00 build 50dc16a6) compiled at 2019-01-29 05:49:21 commit 1071 last mr 1373)
    Non-SSL connection (SSL connection is recommended when requiring high-security)
    Type "help" for help.
    postgres=#
  3. 查询各主机上的DN名称。
    SELECT node_name,node_host FROM pgxc_node WHERE node_type='D';
    示例:
    SELECT node_name,node_host FROM pgxc_node WHERE node_type='D';
    node_name | node_host
    --------------+----------------
    dn_6001_6002 | 192.168.0.11
    dn_6003_6004 | 192.168.0.11
    dn_6005_6006 | 192.168.0.12
    dn_6007_6008 | 192.168.0.12
    dn_6009_6010 | 192.168.0.13
    dn_6011_6012 | 192.168.0.13
    dn_6013_6014 | 192.168.0.14
    dn_6015_6016 | 192.168.0.14
    (8 rows)
  4. 将数据源文件上传每个DN所在的主机。
    1. 以root用户登录集群的每台主机,创建数据文件存放目录“/input_data”,以及以该主机上“DN名称”命名的子目录。

      以3.查询各主机上的DN名称。所查到的IP为“192.168.0.11”的节点为例,创建数据存放目录。根据上一步骤查询所得,该节点上存在2个DN,名称分别为“dn_6001_6002”和“dn_6003_6004”。

      mkdir -p /input_data
      mkdir -p /input_data/dn_6001_6002
      mkdir -p /input_data/dn_6003_6004
    2. 将数据源文件均匀分发到集群各主机上一步骤中所创建的子目录中。
    3. 修改各主机上待导入数据源文件及数据文件目录“/input_data”的属主为omm。
      chown -R omm:wheel /input_data
      创建导入的目标表reasons。
  5. CREATE TABLE reasons
    (
    r_reason_sk integer not null,
    r_reason_id char(16) not null,
    r_reason_desc char(100)
    );
  6. 创建外表foreign_tpcds_reasons用于接收数据。

    其中设置的导入模式信息如下所示:

    • 导入模式为Private模式。
    • 由于数据源文件存放在集群节点上以DN名命令的文件夹下,可以以本地文件方式访问,所以设置参数“location”为“file:///input_data/*”。

    设置的数据格式信息是根据导出时设置的详细数据格式参数信息指定的,参数设置如下所示:

    • 数据源文件格式(format)为CSV。
    • 字段分隔符(delimiter)为逗号。
    • 引号字符(quote)为0x1b。
    • 数据文件中空值(null)为没有引号的空字符串。

    设置的导入容错性如下所示:

    • 允许出现的数据格式错误个数(PER NODE REJECT LIMIT 'value')为unlimited,即接受导入过程中所有数据格式错误。
    • 将数据导入过程中出现的数据格式错误信息(LOG INTO error_table_name)写入表err_tpcds_reasons。
    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 'file:///input_data/*', format 'CSV', mode 'private', delimiter ',', quote E'\x1b', null '')LOG INTO err_tpcds_reasonS PER NODE REJECT LIMIT 'unlimited';
  7. 将数据导入reasons。
    INSERT INTO reasons SELECT * FROM foreign_tpcds_reasons;
    查询错误信息表err_tpcds_reasons,处理数据加载错误。详细请参见处理错误表。
  8. SELECT * FROM err_tpcds_reasons;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3136476/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19391