HybridDB PG中,如何输出单个文件到OSS

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 使用HybridDB PG的外部表输出数据到OSS时,一般会输出成多个文件(文件个数一般与节点数个数一致)。如何输出为一个文件呢?步骤如下: 1)创建示例表: create table test( A1 char(30), A2 char(30), A3 varchar(255).

使用HybridDB PG的外部表输出数据到OSS时,一般会输出成多个文件(文件个数一般与节点数个数一致)。如何输出为一个文件呢?步骤如下:

1)创建示例表:

create table test(
  A1  char(30),
  A2  char(30),
  A3  varchar(255),
  A4  varchar(255)
)  with (appendonly=true, orientation=column, compresstype=zlib, checksum=false, fillfactor=100) distributed randomly;

2)插入数据:

insert into test values('xxxxxxx','yyyyy','zzzzz','wwwww');
insert into test select * from test;
insert into test select * from test;
insert into test select * from test;
insert into test select * from test;
insert into test select * from test;
insert into test select * from test;

3)创建外部表写表,按源数据表的结构创建外部表。注意:

  1. 相对于本地源表的表结构,需要添加一个临时字段,例如dummy_col,最好作为第一个字段。
  2. 添加output_generator_col=false
    file_name_generator_col=dummy_col这两个选项。file_name_generator_col这个参数指定a.中添加的字段。
create writable external table test_oss_write(
  dummy_col text,
  A1  text,
  A2  text,
  A3  text,
  A4  text
)
location('oss://oss-cn-shanghai-internal.aliyuncs.com
dir=oncall_test/
id=xx
key=xx
bucket=osshuadong2
oss_connect_timeout=60
oss_dns_cache_timeout=300
output_generator_col=false
file_name_generator_col=dummy_col
') FORMAT 'csv'  ( DELIMITER ',') 
distributed by (dummy_col)
;

4) 将test数据写入到oss中。这里为了避开我们的一些limitation,写成了如下形式,将A1-A4和表test换成用户的字段和表名即可。

set rds_write_oss_file_by_distribution_column=on;   


explain insert into test_oss_write select x, A1, A2, A3, A4 from (select row_number() over (partition by dummy_col||dummy_col) as RN, dummy_col||dummy_col as x, A1, A2, A3, A4 from (select y as dummy_col, A1, A2, A3, A4 from test, (values(1)) as q1(y)) as q2 ) as q3;
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
1月前
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
805 1
|
5月前
|
数据处理 对象存储
如何利用 OSS 转换 webp 文件为jpeg
如何利用 OSS 转换 webp 文件为jpeg,OSS 样式使用
1509 1
|
1月前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
6月前
|
开发工具 对象存储 Python
OSS上,如果你想对一个已经存在的文件进行追加写入
OSS上,如果你想对一个已经存在的文件进行追加写入
243 1
|
6天前
|
存储 数据可视化 安全
对象存储OSS产品常见问题之有几十亿个txt文件,单个4kb,使用oss如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
38 11
|
6天前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
37 9
|
22天前
|
存储 Cloud Native Serverless
云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理
阿里云OSS对象存储方案利用函数计算FC,在不同终端请求时实时处理OSS中的原图,减少衍生图存储,降低成本。
|
1月前
|
分布式计算 DataWorks 关系型数据库
DataWorks报错问题之使用oss读取csv文件至odps 报错如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
5月前
|
域名解析 对象存储 数据安全/隐私保护
如何 Wordpress 使用 OSS 上传图片、文件
如何使用 OSS 上传 Wordpress 的图片文件
1249 2
|
6月前
|
存储 Kubernetes Cloud Native
昆腾Myriad全闪存横向扩展文件与对象存储平台
9月27日,在昆腾举办的研讨会上,资深存储架构专家曾祥礼做了主题为《为下一个数据时代设计的Myriad全闪存文件和对象存储平台》的分享,详细深入地剖析了昆腾全新的Myriad系统。
43 0

热门文章

最新文章