iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >greenplum中怎么使用gpfdist与外部表高效导入数据
  • 572
分享到

greenplum中怎么使用gpfdist与外部表高效导入数据

2023-06-03 03:06:38 572人浏览 薄情痞子
摘要

本篇内容介绍了“greenplum中怎么使用gpfdist与外部表高效导入数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!greenplu

本篇内容介绍了“greenplum中怎么使用gpfdist与外部表高效导入数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

greenplum作为OLAP分析型软件,自然避免不了从外部数据库加载大量的数据,然而传统的ETL数据传输方法(select=>insert)到GP需要经过GP的单点master,效率非常低。

下面介绍外部表用gpfdist快速导入数据:

普通外部表和可写外部表区别:

普通外部表只能select,可写外部表只能insert

可写外部表没有错误表

可写外部表可以指定分布键,如果不指定,默认随机分布;普通外部表只能随机分布

gpfdist优势:

直接由segment并发加载

直接加载数据文件,并可读写(和选择的外部表类型有关)

默认数据随机分配,每个节点负载均衡(和选择的外部表类型有关)

示例:

启动gpfdist

安装完GP后,自带gpfdist文件,直接指定目录、端口等就能启动服务。如果需要独立的文件服务器,则需要在文件服务器上单独下载gpfdist使用

[gpadmin@gp-master ~]nohup /disk/GP/bin/gpfdist -p 8081 -d /disk/upload &

使用nohup &是起守护进程作用,不然执行启动服务的客户端关闭后,这个进程也会被关闭;指定端口8081,指定文件服务器目录/disk/upload

[gpadmin@gp-master ~]$ ps -ef|grep gpfdist

gpadmin    816 32606  0 17:08 pts/4    00:00:00 grep gpfdist

gpadmin  13036     1  0 Oct21 ?        00:00:44 /disk/GP/bin/gpfdist -p 8081 -d /disk/upload

创建普通外部表

CREATE  EXTERNAL TABLE "ods"."order" (

"id" varchar(64),

"create_by" varchar(64),

"create_date" timestamp,

"update_by" varchar(64),

"update_date" timestamp,

"del_flag" char(1),

"user_id" varchar(64),

"user_name" varchar(64),

"account_id" varchar(64),

"equ_def_id" varchar(64),

"amount_in" numeric(20,2),

"amount_in_money" numeric(20,2),

"amount_out" numeric(20,2),

"amount_out_money" numeric(20,2),

"fee" numeric(20,2),

"fee_discount" numeric(20,2),

"money" numeric(20,2),

"actual_pay_money" numeric(20,2),

"discount_money" numeric(20,2),

"pay_time" timestamp,

"order_type" varchar(16),

"status" varchar(64),

"rel_biz_type" varchar(64),

"rel_biz_id" varchar(64),

"equ_agreement" varchar(64),

"remarks" varchar(100),

"transaction_type" varchar(1),

"pay_stop_date" timestamp,

"stop_time" timestamp,

"bid_method" varchar(64),

"profit_fee_rate" numeric(20,2),

"quit_charge_rate" numeric(20,2),

"return_tb" numeric(20,2),

"last_order_id" varchar(64),

"root_order_id" varchar(64),

"invest_name_for_me" varchar(64),

"invest_name_for_buyer" varchar(64),

"invest_start_time" timestamp,

"available_amount" numeric(20,2),

"surplus_days" int4,

"transferable_flag" varchar(64),

"trc_order_id" varchar(64)

) LOCATION ('gpfdist://gp-master:8081/order.csv') fORMat 'csv' (DELIMITER ';');

注意有几个坑:

这个实验数据order.csv是生产环境mysql测试数据,表中有时间类型字段,如果从线上数据导出到txt文本,这个时候你的时间格式就变成了varchar,再导入到GP的时间类型字段时候会报格式错误,所以尽量导出为csv格式的文本

指定gpfdist信息:LOCATION ('gpfdist://文件服务器主机名或IP:gpfdist端口/加载文件') format '文件格式' (DELIMITER '分隔字符')

从线上数据导出到文本,不要行头,不要封闭符,只需要分隔字符

测试数据90W记录的数据,gpfdist加载数据在秒级别,效率很高

创建可写外部表

CREATE WRITABLE  EXTERNAL TABLE "ods"."order1" (

"id" varchar(64),

"create_by" varchar(64),

"create_date" timestamp,

"update_by" varchar(64),

"update_date" timestamp,

"del_flag" char(1),

"user_id" varchar(64),

"user_name" varchar(64),

"account_id" varchar(64),

"equ_def_id" varchar(64),

"amount_in" numeric(20,2),

"amount_in_money" numeric(20,2),

"amount_out" numeric(20,2),

"amount_out_money" numeric(20,2),

"fee" numeric(20,2),

"fee_discount" numeric(20,2),

"money" numeric(20,2),

"actual_pay_money" numeric(20,2),

"discount_money" numeric(20,2),

"pay_time" timestamp,

"order_type" varchar(16),

"status" varchar(64),

"rel_biz_type" varchar(64),

"rel_biz_id" varchar(64),

"equ_agreement" varchar(64),

"remarks" varchar(100),

"transaction_type" varchar(1),

"pay_stop_date" timestamp,

"stop_time" timestamp,

"bid_method" varchar(64),

"profit_fee_rate" numeric(20,2),

"quit_charge_rate" numeric(20,2),

"return_tb" numeric(20,2),

"last_order_id" varchar(64),

"root_order_id" varchar(64),

"invest_name_for_me" varchar(64),

"invest_name_for_buyer" varchar(64),

"invest_start_time" timestamp,

"available_amount" numeric(20,2),

"surplus_days" int4,

"transferable_flag" varchar(64),

"trc_order_id" varchar(64)

) LOCATION ('gpfdist://gp-master:8081/order1.csv') format 'CSV' (DELIMITER ';')

DISTRIBUTED BY (id);

“greenplum中怎么使用gpfdist与外部表高效导入数据”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: greenplum中怎么使用gpfdist与外部表高效导入数据

本文链接: https://www.lsjlt.com/news/232485.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • greenplum中怎么使用gpfdist与外部表高效导入数据
    本篇内容介绍了“greenplum中怎么使用gpfdist与外部表高效导入数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!greenplu...
    99+
    2023-06-03
  • 怎么用navicat导入外部数据库
    使用 navicat 导入外部数据库的步骤:连接到目标数据库。选择“工具”菜单中的“导入向导”。选择数据源类型,如 microsoft sql server、oracle 或 mysql...
    99+
    2024-04-23
    mysql oracle navicat
  • navicat怎么导入外部数据库
    navicat 中导入外部数据库的步骤:连接到目标数据库。选择要导入的数据库。选择导入类型(sql 脚本、csv 文件、excel 文件、access 文件)。选择数据源文件。映射字段。...
    99+
    2024-04-06
    mysql navicat mysql连接 csv文件
  • PostgreSQL中的外部表和外部数据源如何使用
    在PostgreSQL中,外部表和外部数据源可以通过使用外部数据包装器(Foreign Data Wrapper)来实现。外部数据包...
    99+
    2024-03-14
    PostgreSQL
  • navicat中怎么导入数据表
    在Navicat中导入数据表,可以按照以下步骤操作: 打开Navicat连接到你的数据库。 在左侧导航栏中展开对应的数据库,找到要...
    99+
    2024-04-02
  • oracle怎么导入一个表的全部数据
    要导入一个表的全部数据,可以使用Oracle SQL Developer或者使用SQL*Loader工具来实现。以下是两种方法的示例...
    99+
    2024-04-09
    oracle
  • plsql怎么导入数据到表中
    要将数据导入PL/SQL表中,可以使用INSERT INTO语句。以下是一个简单的示例: 创建一个表格 CREATE TABLE...
    99+
    2023-10-22
    plsql
  • Android中怎么使用traceview导入数据
    要在Android中使用traceview导入数据,可以按照以下步骤进行操作:1. 在你的应用程序代码中添加Trace标记。可以使用...
    99+
    2023-09-14
    Android traceview
  • mysql中怎么用dump导入一张表数据
    要使用dump导入一张表数据,可以按照以下步骤操作: 使用mysqldump命令导出表数据到一个.sql文件中。假设要导出表名为t...
    99+
    2024-04-09
    mysql
  • 细致入微:如何使用数据泵导出表的部分列数据
    编者按云和恩墨大讲堂社群(本文底部有入群方式)里有人提出一个需求:一张表数据量很大,如何只导出其中一部分列?云和恩墨CTO、Oracle ACE总监、ACOUG核心专家杨廷琨老师使用了数据泵的方式,细致入微...
    99+
    2024-04-02
  • MySQL中怎么实现数据的导出与导入
    这期内容当中小编将会给大家带来有关MySQL中怎么实现数据的导出与导入,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先讲解mysql数据的导出。打开工具heidisql...
    99+
    2024-04-02
  • 怎么在navicat中导入excel表格数据
    本文小编为大家详细介绍“怎么在navicat中导入excel表格数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么在navicat中导入excel表格数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。基础操...
    99+
    2023-07-05
  • 怎么在navicat 中导入excel 表格数据
    基础操作篇 1. 首先打开navicat 软件,进入后打开连接  2. 进入后选择新建数据库 3. 数据库名随便输入一个,字符集选择 utf8,排序规则选择utf8_general_ci ,这样可以最大程度地支持中文 ,点击好,新建数据...
    99+
    2023-09-03
    mysql mybatis 数据库
  • PHP怎么将MySQL中数据导入表单
    要将MySQL中的数据导入表单,首先需要连接到MySQL数据库,然后执行查询语句,将查询结果赋值给表单的各个字段。以下是一个简单的示...
    99+
    2023-10-12
    PHP MySQL
  • 怎么在css中使用外部样式表
    这篇文章给大家介绍怎么在css中使用外部样式表,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。<link rel="stylesheet" href="style....
    99+
    2023-06-09
  • 怎么用命令从mysql中导出/导入表结构及数据
    这篇文章给大家分享的是有关怎么用命令从mysql中导出/导入表结构及数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在命令行下mysql的数据导出有个很好用命令mysqld...
    99+
    2024-04-02
  • 怎么在python中使用impor方法导入导出数据
    怎么在python中使用impor方法导入导出数据?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科...
    99+
    2023-06-14
  • 使用Java怎么将excel中的数据导入mysql中
    今天就跟大家聊聊有关使用Java怎么将excel中的数据导入mysql中,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。思路:先将excel中的数据取...
    99+
    2024-04-02
  • 怎么使用PostgreSQL的FDW访问外部数据
    PostgreSQL的FDW(Foreign Data Wrapper)是一种扩展,可以使PostgreSQL数据库访问外部数据源,...
    99+
    2024-04-09
    PostgreSQL
  • 使用java怎么将excel数据导入MySQL
    这期内容当中小编将会给大家带来有关使用java怎么将excel数据导入MySQL,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、pom文件<dependencies>  ...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作