我从SQL获取结果,并使用C#将结果写入磁盘上的本地临时拼花文件,然后再上传到S3。
我正在使用parquet.net库以及s3的所有标准AWS软件包(我相信是AWSSDK.S3)
请原谅我刚刚离开伪代码的某些区域,但这是基本结构...我希望能够将行直接流式传输到S3,而不是先在本地写入文件。
谢谢。
using (var parquetWriter = new ParquetWriter(parquetSchema, fileStream))
{
var parquetTable = new Parquet.Data.Rows.Table(parquetSchema);
foreach(object[] data in dataset)
{
//prepare data for parquet schema here
parquetTable.Add(data);
if (parquettablesize >= number of rows I want to write at one time)
{
parquetWriter.Write(parquetTable);
parquetTable = new Parquet.Data.Rows.Table(parquetSchema); //cant reuse the same object
}
}
// write whatever is left here
if (parquetTable.Count > 0)
parquetWriter.Write(parquetTable);
using (var fileStream = new FileStream(tempFile, FileMode.Open))
{
//upload the file to my S3 location
}
}