首页 > 解决方案 > 如何通过在 tera 数据中使用 nos_write 将表分区为多个文件到 s3 存储?

问题描述

我有一个如下的sql,它可以将数据写入S3 Storage,</p>

但是只写一个文件,文件名不能自己控制。

https://imgur.com/a/yG0qpel

如何使用 nos_write 命令将表分区到多个文件(如下修改 sql 命令)? https://imgur.com/a/wqJIk1W (这个是我自己上传的)

如何控制文件名?(默认如下:object_33_1_1.parquet)

SELECT  ObjectSize, RecordCount
FROM WRITE_NOS_FM (
 ON  ( SELECT * FROM RiverFlowPerm_csv )
 USING
  LOCATION('/s3/bigXXXXXX.s3.amazonaws.com/RiverFlowPerm/')
  STOREDAS('PARQUET')
  COMPRESSION('GZIP')
) AS d ;

上面的问题没问题


2021/5/21


如何使其分区为 多级目录

例如:/RiverFlowPerm/1/SiteNo/FLOW
怎么做?下面的这个 sql 向我显示一条错误消息: https ://imgur.com/a/4yKRbdK

SELECT ObjectSize, RecordCount 
FROM WRITE_NOS_FM ( 
ON ( SELECT * FROM RiverFlowPerm_csv ) 
PARTITION BY SiteNo,FLOW ORDER BY SiteNo,FLOW 
USING LOCATION('/s3/biXXXXXXXXX.s3.amazonaws.com/RiverFlowPerm/1/') 
STOREDAS('PARQUET')
NAMING('DISCRETE') 
INCLUDE_ORDERING('TRUE') 
MAXOBJECTSIZE('4MB') 
COMPRESSION('GZIP') ) AS d ORDER BY AmpId;

我不知道如何根据错误消息修复它。

架构在这里https://imgur.com/a/JcgbwX3

标签: amazon-web-servicesamazon-s3teradata

解决方案


推荐阅读