将滚动文件上载到Azure Blob

将滚动文件上载到Azure Blob,azure,powershell-2.0,azure-storage-blobs,Azure,Powershell 2.0,Azure Storage Blobs,我正试图预见一个系统,推特通过推特流API流向Azure Blob存储。我正在学习Microsoft的教程,但它以以下场景结束: $writeStream = New-Object System.IO.StreamWriter $memStream $count=0 $lineMax=1000000 $sReader = New-Object System.IO.StreamReader($response.GetResponseStream()) $inrec = $sReader.Rea

我正试图预见一个系统,推特通过推特流API流向Azure Blob存储。我正在学习Microsoft的教程,但它以以下场景结束:

$writeStream = New-Object System.IO.StreamWriter $memStream
$count=0
$lineMax=1000000
$sReader = New-Object System.IO.StreamReader($response.GetResponseStream())


$inrec = $sReader.ReadLine()

while (($inrec -ne $null) -and ($count -le $lineMax))
{
    if ($inrec -ne "")
    {
        $writeStream.WriteLine($inrec)
    }




    $inrec=$sReader.ReadLine()
}


$writeStream.Flush()
$memStream.Seek(0, "Begin")
$destBlob.UploadFromStream($memStream)

$sReader.close()

现在的问题是,如果我想大规模使用它,我怀疑该文件将变得太大,无法一次性发送到Azure。解决这个问题的正确方法是什么?我是否应该将文件本地滚动到磁盘,然后将其发送到Azure?

您可能需要签出新的Append Blob。这使您可以创建一个blob并继续附加到它(如果需要,可以从多个位置添加)。这里有一些可能会有帮助

谢谢罗宾,非常好!读了这篇文章,我发现and append blob的最大大小约为195GB。当它满的时候,是否有一种机制可以自动启动一个新的blob,或者我应该在代码中自己处理这个问题?另外,对于HDFS,我知道块大小约为64Mb。您知道这里使用4Mb作为附加blob的块大小的原因吗?在检索数据时,它不会大幅增加搜索次数吗?或者我不能这样比较HDFS和Azure Blob存储。我认为您必须自己处理大小。也许你应该考虑平均需要多长时间才能达到这个规模,然后每X小时,创造一个新的博客。我不认为你可以比较HDFS和Azure Blob存储,它就像苹果和桔子一样。您可以在本地暂存文件,然后将其移动到blob存储(在单独的过程中)。只要确保这些文件不会太大而无法被任何将要读取/处理它们的人读取/处理。如果在Azure VM中运行twitter提要的处理,您可以使用数据磁盘的高级存储来最大化IOPS和速度。