云服务器内容精选

  • 步骤5:分析和处理错误表中的错误信息 对数据导入过程中出现的数据格式错误信息进行处理,若没有错误信息,此步骤可跳过。 查询错误信息。 1 openGauss=# SELECT * FROM product_info_err ; 处理错误表中的错误信息。 按照本教程的示例操作,错误表中应该无错误信息。 您也可以将步骤2:在数据服务器上安装配置和启动GDS一节所建外表中的FILL_MISSING_FIELDS和IGNORE_EXTRA_DATA改为 'false'后,重新进行数据导入并查询错误表。此时,您将看到因如下原因带来的数据格式错误信息记录: 源数据文件product_info2.csv中第2条记录的最后一个字段“product_comment_content”缺失。 源数据文件product_info2.csv中第3条记录比外表定义列数多。 更多关于错误表及错误信息的处理请参见处理错误表。 父主题: 教程:使用GDS从远端服务器导入数据
  • 步骤5:分析和处理错误表中的错误信息 对数据导入过程中出现的数据格式错误信息进行处理,若没有错误信息,此步骤可跳过。 查询错误信息。 1 postgres=# SELECT * FROM product_info_err ; 处理错误表中的错误信息。 按照本教程的示例操作,错误表中应该无错误信息。 您也可以将步骤2:在数据服务器上安装配置和启动GDS一节所建外表中的FILL_MISSING_FIELDS和IGNORE_EXTRA_DATA改为 'false'后,重新进行数据导入并查询错误表。此时,您将看到因如下原因带来的数据格式错误信息记录: 源数据文件product_info2.csv中第2条记录的最后一个字段“product_comment_content”缺失。 源数据文件product_info2.csv中第3条记录比外表定义列数多。 更多关于错误表及错误信息的处理请参见处理错误表。 父主题: 教程:使用GDS从远端服务器导入数据
  • 步骤6:优化导入数据的查询性能 在数据导入完成后,执行ANALYZE语句生成表统计信息。执行计划生成器会使用这些统计数据,以生成最有效的查询执行计划。 如果导入过程中,进行了大量的更新或删除行时,应运行VACUUM FULL命令,然后运行ANALYZE命令。大量的更新和删除操作,会产生大量的磁盘页面碎片,从而逐渐降低查询的效率。VACUUM FULL可以将磁盘页面碎片恢复并交还操作系统。 对表product_info执行VACUUM FULL。 1 postgres=# VACUUM FULL product_info; VACUUM 更新表product_info的统计信息。 1 postgres=# ANALYZE product_info; ANALYZE 父主题: 教程:使用GDS从远端服务器导入数据
  • 删除外表和目标表 执行以下命令,删除目标表product_info。 1 openGauss=# DROP TABLE product_info; 当结果显示为如下信息,则表示删除成功。 1 DROP TABLE 执行以下命令,删除外表product_info_ext。 1 openGauss=# DROP FOREIGN TABLE product_info_ext; 当结果显示为如下信息,则表示删除成功。 1 DROP FOREIGN TABLE
  • 步骤4:将数据导入GaussDB 使用如下语句在GaussDB中创建目标表product_info,用于存储导入的数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 openGauss=# DROP TABLE IF EXISTS product_info; openGauss=# CREATE TABLE product_info ( product_price integer not null, product_id char(30) not null, product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt integer , product_comment_time date , product_comment_num integer , product_comment_content varchar(200) ) WITH ( orientation = column, compression=middle ) DISTRIBUTE BY hash (product_id); (可选)本例步骤1中没有创建索引,不用执行这一步。若目标表存在索引,在数据导入过程中,将增量更新索引信息,影响数据导入性能。建议在执行数据导入前,先删除目标表的索引。在数据导入完成后,再重新创建索引。 假定在导入表“product_info”上的“product_id”字段上存在普通索引“product_idx”。在执行数据导入前,请先删除相关索引。 1 openGauss=# DROP INDEX product_idx; 在数据导入完成后,重建索引。 1 openGauss=# CREATE INDEX product_idx ON product_info(product_id); 打开enable_stream_operator。 1 openGauss=# set enable_stream_operator=on;; 在重建索引过程中,用户可以通过临时增加GUC参数“maintenance_work_mem”/“psort_work_mem”来加快索引的重建。 外表的并行导入需要开启stream算子才能够使用。 enable_stream_operator设置为on会影响性能,如果该会话后续还有别的sql执行,建议设置set enable_stream_operator=off,如果没有,则直接断开会话即可。 将数据源文件中的数据通过外表“product_info_ext”导入到表“product_info”中。 1 openGauss=# INSERT INTO product_info SELECT * FROM product_info_ext ; 出现以下信息,说明数据导入成功。 1 INSERT 0 20 执行SELECT命令查询目标表product_info,查看导入到GaussDB中的数据。 1 openGauss=# SELECT count(*) FROM product_info; 查询结果显示结果如下,表示导入成功。 1 2 3 4 count ------- 20 (1 row) 父主题: 教程:使用GDS从远端服务器导入数据
  • 教程指引 本教程旨在演示使用GDS(Gauss Data Service)工具将远端服务器上的数据导入GaussDB中的办法,帮助您学习如何通过GDS进行数据导入的方法。 在本教程中,您将: 生成本教程需要使用的CSV格式的数据源文件。 将数据源文件上传到数据服务器。 创建外表,用于对接GDS和GaussDB,及将数据服务器上的数据引流到GaussDB集群中。 启动GaussDB并创建数据库表后,将数据导入到表中。 根据错误表中的提示诊断加载错误并更正这些错误。 父主题: 教程:使用GDS从远端服务器导入数据