开发者社区> 曾文旌> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

从 oss 装载数据到 GreenPlum

简介: gpossext 在阿里云上,支持通过 gpossext 并行装载数据到 GPDB 中 gpossext 语法 CREATE [READABLE] EXTERNAL TABLE tablename ( columnname datatype [, ...] | LIKE othertable
+关注继续查看

gpossext

在阿里云上,支持通过 gpossext 并行装载数据到 Greenplum 中

gpossext 语法

CREATE [READABLE] EXTERNAL TABLE tablename
( columnname datatype [, ...] | LIKE othertable )
LOCATION ('ossprotocol')
FORMAT '...'
[ ENCODING 'encoding' ]
[ LOG ERRORS ...]

ossprotocol:
   oss://oss_endpoint filepath=[folder/[folder/]...]/file_name 
    id=userossid key=userosskey bucket=ossbucket

ossprotocol:
   oss://oss_endpoint dir=[folder/[folder/]...]/file_name 
    id=userossid key=userosskey bucket=ossbucket

参数解释

ossprotocol 整个协议有6部分

1. 协议名,当然是 oss 

2. ossendpoint 参数,是内网访问oss的地址,也叫 host

3. id oss账号ID

4. key oss账号key

5. bucket ossbucket,需要创建 oss 账号后分配

6. filepath oss 中带路径的文件名,需要注意
  6.1 文件名包含文件路径,但不包含 bucket 名
  6.2 并行装载模式要求文件被均匀拆分为多个文件
  6.3 文件命名方式为 finame.x,x 要求从 1 开始,且是连续的
  6.4 例 filename.1 filename.2 filename.3 ...
  6.5 可以被导入的文件有 filename filename.1 filename.2 ...;其中1到N需要是连续的。
  6.6 为了最大化导入性能,建议拆分文件的个数是导入到的 Greenplum segment 个数的倍数

7. dir oss 中带路径的虚拟文件夹,需要注意
    7.1 dir指 oss 上的虚拟文件夹,它需要以 / 结尾
    7.2 该模式和 filepath 互斥,不能同时指定
    7.3 该模式会导入指定虚拟目录下的所有文件到 Greenplum,但不包括它子目录和子目录下的文件
    7.4 和 filepath 一样,该模式也是并行导入的,为了最大化导入性能,每个文件的大小需要尽量的均匀。
    7.5 和 filepath  不同,dir 下的文件没有命名要求

8. async 是否启用异步模式装载数据
    8.1 开启辅助线程从 oss 装载数据,加速导入性能
    8.2 默认情况下异步模式是打开的,如果需要关掉,可以使用参数 async = false 或 async = f
    8.3 异步模式和普通模式比,会消耗更多的硬件资源

gpossext 的其他参数兼容 Greenplum EXTERNAL TABLE 的原有语法,主要有

1. FORMAT 支持文件格式,支持 txt,csv 等

2. ENCODING 文件中数据的编码格式,如 utf8

3. LOG ERRORS 依然支持容错模式数据导入,通过制定该子句忽略掉导入中出错的数据

用例

# 创建 oss 外部表
create READABLE external table ossexample 
        (date text, time text, open float, high float,
        low float, volume int) 
        location('oss://oss-cn-hangzhou-zmf.aliyuncs.com
        filepath=osstest/example.csv id=XXX
        key=XXX bucket=testbucket') FORMAT 'csv'
        LOG ERRORS SEGMENT REJECT LIMIT 5;

# 创建堆表,数据就装载到这张表中
create table example
        (date text, time text, open float,
         high float, low float, volume int);

# 数据并行的从 ossexample 装载到 example 中。
insert into example select * from ossexample;

# 可以看到,每个 segment 都会参与工作。
# 他们并行的从 oss 拉取数据
# 然后通过 Redistribute Motion 分发给对应的 segment. 
# 每个 segment 再通过 insert 节点入库
explain insert into example select * from ossexample;
                                            QUERY PLAN                                            
--------------------------------------------------------------------------------------------------
 Insert (slice0; segments: 4)  (rows=250000 width=92)
   ->  Redistribute Motion 4:4  (slice1; segments: 4)  (cost=0.00..11000.00 rows=250000 width=92)
         Hash Key: ossexample.date
         ->  External Scan on ossexample  (cost=0.00..11000.00 rows=250000 width=92)
(4 rows)
        

gpossext 使用注意

gpossext 打开了 oss 到 Greenplum 的数据通道,用户可以把数据放到廉价的 oss 中,再导入到 Greenplum 中进行分析。使用需要注意

1. gpossext 中除了 ossprotocol,其他的部分和 Greenplum 相同。
2. 数据导入的性能和 Greenplum 集群的资源(CPU IO MEM NET)相关,也和 OSS 相关。
3. 为了保证数据导入的性能 ossendpoint Region 需要匹配 Greenplum 云上所在 Region,建议oss和Greenplum在同一个Region以获得最好的性能。相关信息请参考下面的链接。

参考链接

  1. oss endpiint 信息
  2. [oss help 页面] [2]
  3. [Greenplum EXTERNAL TABLE 手册] [3]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
将OSS数据导入日志服务操作实践
OSS与日志服务相比,OSS存储的成本更低,不过日志服务中查询、结果展示、实时监控、数据加工等功能是OSS所不具备的。所以,可以将历史数据投递到OSS进行长期保存,SLS存储近期有查询分析需要的数据。<br />当历史数据有查询、分析需求时可以将OSS中的数据重新导入到SLS。
246 0
快速读懂对象存储 OSS数据处理介绍
阿里云OSS为在云上的数据打通了一个处理与使用的快速通道。通过简单的 RESTful 接口,可以在任何时间、任何地点、任何互联网设备上对存储在OSS中的数据进行分析处理。
478 0
OSS 解决方案篇-OSS 数据安全
加强 OSS 信息安全管控,多种解决方案实现数据安全
0 0
通过OSS直接上传数据到DSW实例
目前DSW实例不支持通过公网的方式直接下载数据,目前官方的建议:数据上传下载,对于小文件(文件不超过300M),建议直接使用DSW前端工具上传下载;对于大文件,建议使用挂载NAS,然后使用FTP的形式完成上传下载。
371 0
OSS数据处理最佳实践--文档预览
阿里云存储开放的数据湖体系引入众多计算引擎。通过阿里云智能媒体管理产品,对象存储OSS面向视频处理应用,图像处理应用,文档处理应用开放了接入能力。这里帮助大家快速讲解如果实现OSS上offcie文档预览。
2191 0
从 OSS 装载数据到 PostgreSQL
oss_fdw 在阿里云上,支持通过 oss_fdw 并行装载数据到 PostgreSQL 和 PPAS 中 oss_fdw 参数 oss_fdw 和其他 fdw 的接口一样,提供对外部数据源 oss 的数据封装,用户可以使用 oss_fdw 像一张表一样读取 oss 上的存放的文件。 和其
2905 0
oss资源访问连接问题
ssl证书 域名绑定 自有域名
0 0
CEN+私网NAT实现跨地域访问OSS需求-CEN基础版
CEN+私网NAT实现跨地域访问OSS需求-CEN基础版
0 0
通过OSS外表访问OSS数据
原文地址:通过OSS外表访问OSS数据 - 云原生关系型数据库 PolarDB MySQL引擎 - 阿里云PolarDB可以通过OSS外表直接查询存储在OSS上的CSV格式数据,有效地降低存储的成本。本文档主要介绍了通过OSS外表访问OSS数据的操作步骤。背景信息通过OSS外表,您可以把CSV格式的冷数据存储在OSS引擎上,并对冷数据进行查询和分析。具体原理如下:CSV格式的数据支持的数据类型包括
0 0
+关注
曾文旌
个人简介 曾文旌 阿里巴巴 RDS for PostgreSQL 数据库专家 目前在阿里云RDS 数据库内核服务组,负责PostgreSQL相关业务.
文章
问答
来源圈子
更多
让用户数据永远在线,让数据无缝的自由流动
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
百问百答-OSS (上)
立即下载
百问百答-OSS (下)
立即下载
阿里云 JindoFS+OSS 数据上云实战
立即下载