如何使用C#将镶木地板直接从SQL流式传输到S3

时间:2020-05-13 19:55:05

标签: c# amazon-s3 parquet

我从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
    }
}

0 个答案:

没有答案