Я пытаюсь предвидеть систему, в которой твиты перетекают в хранилище Azure Blob через API потоковой передачи Twitter. Я следовал учебник от Microsoft, но она заканчивается в следующем сценарии:Загрузите файлы с загрузкой в Azure Blob
$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?
Спасибо, Робин, очень приятно! Читая статью, я вижу, что максимальный размер и добавление blob составляет около 195 Гб. Когда он заполняется, существует ли механизм, позволяющий автоматически запускать новую капли или я должен сам позаботиться об этом в коде? Кроме того, для HDFS я знаю, что размер блока составляет около 64 МБ. Знаете ли вы причину взятия 4Mb здесь в качестве размера блока для добавления blob? Разве это не приведет к резкому увеличению количества запросов при извлечении данных? Или я не могу сделать сравнение между HDFS и хранилищем Azure Blob таким образом. – JochenDB
Я думаю, что вы должны обрабатывать размер самостоятельно. Может быть, вам стоит подумать о том, сколько времени требуется в среднем, чтобы достичь этого размера, а затем каждые X часов создать новый капля. Я не думаю, что вы можете сравнить HDFS и Azure Blob Storage, это как яблоки и апельсины. Вы * можете * локализовать файлы, а затем переместить их в хранилище blob (в отдельном процессе). Просто убедитесь, что файлы не слишком велики, чтобы читать/обрабатывать все, что будет читать/обрабатывать их. Если вы запускаете обработку твиттера в Azure VM, вы можете использовать премиум-память для дисков данных, чтобы максимизировать IOPS и скорость. –