HybridDB for PG 中如何按照数据内容定制输出到 OSS 文件名和文件个数

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 使用HybridDB PG的外部表输出数据到OSS时,一般会输出成多个文件(文件个数一般与节点数个数一致)。如何输出为一个文件呢?步骤如下: 1)创建示例表: create table t3 (a1 text, a2 text ,a3 text, a4 text) distributed by (.

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

1)创建示例表:

create table t3 (a1 text, a2 text ,a3 text, a4 text) distributed by (a1);

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

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

  • 相对于本地源表的表结构,需要添加一个临时字段,例如dummy_col,最好作为第一个字段。
  • 添加外部表参数 file_name_generator_col = dummy_col 指定临时字段名;output_generator_col=false 指定这个临时字段中的数据不写入到文件中
drop external table test_oss_write;
create writable external table test_oss_write(
  dummy_col text,
  A1  text,
  A2  text,
  A3  text,
  A4  text
)
location('oss://oss-cn-shanghai.aliyuncs.com 
dir=output_x_file/
id=xxx
key=xxx
bucket=osshuadong2 
output_generator_col=false 
file_name_generator_col=dummy_col
') FORMAT 'csv'  ( DELIMITER ',') 
distributed by (dummy_col)
;

3) 定制 SQL 将test数据写入到 oss 中

set rds_write_oss_file_by_distribution_column=on; 

insert into test_oss_write
Select key,a1,a2,a3,a4 from
(
select
  floor(random()*(5-1)+1)::int::text || 'e' as key,
  A1,A2,A3,A4   
  from t3
)t order by key;

注意:

  • 使用随机数来指定产生的文件个数,这里我们需要输出4个文件,则使用 floor(random()*(5-1)+1)
  • 写入文件时,给到写入节点的数据需要按照key有序,我们使用了order by, 也可以使用窗口函数。

最后OSS上能看到4个文件,且文件内容不包含用来定制文件名的虚拟列

$osscmd ls  oss://osshuadong2/output_x_file
prefix list is: 
object list is: 
2018-04-18 15:54:18 2.46KB Standard oss://osshuadong2/output_x_file/1e_577353258534704.1
2018-04-18 15:54:18 2.46KB Standard oss://osshuadong2/output_x_file/2e_577353258534704.2
2018-04-18 15:54:18 2.51KB Standard oss://osshuadong2/output_x_file/3e_577353258534704.2
2018-04-18 15:54:18 2.34KB Standard oss://osshuadong2/output_x_file/4e_577353258534704.1

osscmd get oss://osshuadong2/output_x_file/3e_577353258534704.2 b.txt

cat b.txt 
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww
xxxxxxx,yyyyy,zzzzz,wwwww

使

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
目录
相关文章
|
2月前
|
存储 监控 调度
阿里云对象存储OSS之间进行数据转移教程
讲解如何在阿里云对象存储OSS之间进行跨账号、跨地域、以及同地域内的数据迁移,包括数据迁移之前的准备工作和实施数据迁移以及一些后续操作
|
5月前
|
存储 人工智能 Kubernetes
AI 场景深度优化!K8s 集群 OSSFS 2.0 存储卷全面升级,高效访问 OSS 数据
阿里云对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,是用户在云上存储的高性价比选择…
|
4月前
|
Web App开发 监控 安全
OSS客户端签名直传实践:Web端安全上传TB级文件方案(含STS临时授权)
本文深入解析了客户端直传技术,涵盖架构设计、安全机制、性能优化等方面。通过STS临时凭证与分片上传实现高效安全的文件传输,显著降低服务端负载与上传耗时,提升系统稳定性与用户体验。
447 2
|
2月前
|
存储 安全 数据管理
服务器违规资源被删,数据定时备份OSS 云存储才是 “救命稻草”
在数字化时代,数据已成为企业与个人的核心资产。然而,服务器违规、硬件故障等问题频发,导致数据丢失、业务中断,甚至造成不可挽回的损失。为保障数据安全与业务连续性,定时备份至关重要。阿里云国际站OSS提供高效、可靠的云存储解决方案,支持自动定时备份,帮助用户轻松应对数据风险。本文详解OSS备份操作步骤与注意事项,助你为数据穿上“防护甲”,实现安全无忧存储。
|
5月前
|
存储 人工智能 测试技术
AI 场景深度优化!K8s 集群 OSSFS 2.0 存储卷全面升级,高效访问 OSS 数据
OSSFS 2.0通过轻量化协议设计、协程化技术及FUSE3低级API重构,实现大文件顺序读写与小文件高并发加载的显著提升,在实际测试中表现出高达数十倍的吞吐量增长。适用于机器学习训练、推理等对高带宽低延迟要求严苛的场景,同时支持静态和动态挂载方式,方便用户在ACK集群中部署使用。
517 34
|
8月前
|
消息中间件 监控 数据挖掘
【有奖实践】轻量消息队列(原 MNS)订阅 OSS 事件实时处理文件变动
当你需要对对象存储 OSS(Object Storage Service)中的文件变动进行实时处理、同步、监听、业务触发、日志记录等操作时,你可以通过设置 OSS 的事件通知规则,自定义关注的文件,并将 OSS 事件推送到轻量消息队列(原 MNS)的队列或主题中,开发者的服务即可及时收到相关通知,并通过消费消息进行后续的业务处理。
160 99
|
7月前
|
存储 Ubuntu 数据管理
使用s3cmd 2.x 与 Cyberduck 管理在 DigitalOcean Spaces 对象存储中的数据
通过 `s3cmd` 2.x 和 Cyberduck,你可以轻松管理 DigitalOcean Spaces 中的数据。`s3cmd` 提供了强大的命令行操作能力,适合脚本化和自动化任务,而 Cyberduck 提供了直观的图形界面,便于日常手动操作。掌握这两种工具的使用方法,将极大提高你的数据管理效率。希望本文能帮助你更好地使用 DigitalOcean Spaces。
145 7
|
文字识别 算法 API
视觉智能开放平台产品使用合集之上传素材文件不在同一地域的OSS,怎么上传多张图片
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
131 2
|
2月前
|
存储 运维 安全
阿里云国际站OSS与自建存储的区别
阿里云国际站对象存储OSS提供海量、安全、低成本的云存储解决方案。相比自建存储,OSS具备易用性强、稳定性高、安全性好、成本更低等优势,支持无限扩展、自动冗余、多层防护及丰富增值服务,助力企业高效管理数据。