从 oss 装载数据到 GreenPlum

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
简介: 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搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
2月前
|
存储 关系型数据库 分布式数据库
PolarDB常见问题之PolarDB冷存数据到OSS之后恢复失败如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
1月前
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之同步数据到OSS时,文件的切分单位如何设置
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
机器学习/深度学习 存储 分布式计算
机器学习PAI常见问题之DLC的数据写入到另外一个阿里云主账号的OSS中如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
15天前
|
数据采集 DataWorks 安全
DataWorks产品使用合集之将按日分区的表同步数据到OSS数据源,该如何配置
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
36 1
|
22天前
|
机器学习/深度学习 分布式计算 大数据
MaxCompute产品使用问题之如何直接加载oss中的parque数据,无需指定列和分区
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1月前
|
消息中间件 SQL Kafka
实时计算 Flink版产品使用问题之如何实现OSS数据到Kafka的实时同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
存储 分布式计算 大数据
MaxCompute产品使用合集之是否支持创建OSS外部表为分区表,并访问OSS上以分区方式存储的数据
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1月前
|
存储 分布式计算 大数据
MaxCompute产品使用合集之读取OSS数据出现重复的情况是什么导致的
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
18天前
|
JSON 运维 Serverless
函数计算产品使用问题之如何实现数据的读取和修改,而不需要每次都从OSS下载完整的数据
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
存储 弹性计算 数据库
阿里云oss备份网站数据的详细步骤
该教程指导如何使用阿里云OSS备份网站数据。首先,注册阿里云账号并购买40GB的OSS存储空间。创建Bucket,选择与服务器相同的区域和私有权限。安装阿里云OSS插件,获取AccessKey信息。在宝塔面板中设置计划任务进行网站或数据库备份,选择内网域名以节省流量。备份完成后,通过文件管理器检查OSS中是否有备份文件。下载备份文件需点击文件名,然后打开文件URL。
158 5