2015-09-29 3 views
0

Я пытаюсь предвидеть систему, в которой твиты перетекают в хранилище 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?

ответ

2

Возможно, вы захотите проверить новый Append Blob. Это позволяет вам создавать blob и добавлять к нему добавление (при необходимости, из нескольких мест). Вот некоторые how-to information, которые могут помочь.

+0

Спасибо, Робин, очень приятно! Читая статью, я вижу, что максимальный размер и добавление blob составляет около 195 Гб. Когда он заполняется, существует ли механизм, позволяющий автоматически запускать новую капли или я должен сам позаботиться об этом в коде? Кроме того, для HDFS я знаю, что размер блока составляет около 64 МБ. Знаете ли вы причину взятия 4Mb здесь в качестве размера блока для добавления blob? Разве это не приведет к резкому увеличению количества запросов при извлечении данных? Или я не могу сделать сравнение между HDFS и хранилищем Azure Blob таким образом. – JochenDB

+0

Я думаю, что вы должны обрабатывать размер самостоятельно. Может быть, вам стоит подумать о том, сколько времени требуется в среднем, чтобы достичь этого размера, а затем каждые X часов создать новый капля. Я не думаю, что вы можете сравнить HDFS и Azure Blob Storage, это как яблоки и апельсины. Вы * можете * локализовать файлы, а затем переместить их в хранилище blob (в отдельном процессе). Просто убедитесь, что файлы не слишком велики, чтобы читать/обрабатывать все, что будет читать/обрабатывать их. Если вы запускаете обработку твиттера в Azure VM, вы можете использовать премиум-память для дисков данных, чтобы максимизировать IOPS и скорость. –

Смежные вопросы