Массовая загрузка файлов в SQL Azure?

У меня есть приложение ASP.NET, которое загружает файлы размером в несколько мегабайт, записывает их на диск, а позже MSSQL 2008 загружает их с помощью BCP.

Я хотел бы переместить все это в Azure, но, поскольку для BCP нет «файлов», может ли кто-нибудь прокомментировать, как получить массовые данные из приложения Azure в SQL Azure?

Я видел http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx, но я не уверен, что это применимо.

Спасибо.


person Snowy    schedule 15.06.2011    source источник
comment
Быстрая загрузка данных в SQL Azure   -  person Mitch Wheat    schedule 15.06.2011
comment
Если загрузка осуществляется с веб-страницы ASP.NET, вы столкнетесь с теми же проблемами, что и я, если размер данных превышает 30 МБ, см. Мой вопрос stackoverflow.com/questions/6402253/ для получения дополнительной информации.   -  person    schedule 19.06.2011
comment
Обратите внимание, что эта статья была написана для более ранней архитектуры, лежащей в основе SQL Azure. Сегодня это не совсем так (в моделях DTU или vCore). Массовое копирование - более подходящий способ быстрой загрузки данных в SQL Azure, поскольку он сокращает круговые обходы, группирует записи в более крупные транзакции и требует более обширных блокировок при вставке, чтобы избежать накладных расходов на блокировку каждой вставляемой строки. .   -  person Conor Cunningham MSFT    schedule 15.01.2019
comment
Привет, @ Conor Cunningham MSFT: Есть ли обновленная статья о MS? В настоящее время я использую SqlBulkCopy исключительно для быстрой загрузки данных в базу данных SQL Azure.   -  person Mitch Wheat    schedule 20.01.2019
comment
Я просмотрю содержание и посмотрю, есть ли у нас что-нибудь более актуальное. Некоторое время назад я был соавтором белой книги по этой теме, но она, возможно, тоже устарела. В облаке все движется быстрее;). Однако массовая вставка - это самый быстрый способ загрузки в SQL Azure, но есть нюансы, касающиеся размера пакета / txn, того, насколько близок клиент к SQL Azure, и нужно ли выполнять массовую вставку в постоянную таблицу или во временную таблицу ( последний намного быстрее вставляется в модели Premium / v-core, поскольку ему не нужно реплицировать между узлами при фиксации).   -  person Conor Cunningham MSFT    schedule 21.01.2019


Ответы (4)


BCP - один из способов сделать это.

В этом сообщении это объясняется в три простых шага: Массовая вставка с помощью Azure SQL

person Jeffrey Rosselle    schedule 18.11.2013
comment
BCP файл размером 80 ГБ в Azure занимает 12 часов. Если я вставлю объемно на месте, это займет 2 часа. Есть ли какие-нибудь советы вроде bcping из локального файла в лазурном? - person MIKE; 02.12.2017
comment
@MIKE пробовали ли вы запустить командную форму и виртуальную машину Azure в одном центре обработки данных? Вы можете поместить файл размером 80 ГБ в папку хранилища файлов Azure, что сделает его доступным для виртуальной машины. - person Jeffrey Rosselle; 04.12.2017
comment
Похоже на умную идею. Я попробую это. Знаете ли вы, ограничивает ли лазурь bcp (замедляет вставки) на стандартном уровне или на премиум-уровне? Во время вставки я заметил, что он выполняет около десяти 1000 вставок, а затем 30-секундную задержку, я не уверен, что это регулируется моей локальной машиной или лазурным. (не мой локальный компьютер, это сервер) - person MIKE; 04.12.2017
comment
@MIKE У меня нет опыта с этим, поэтому не могу сказать. Возможно, вы захотите обновить свою базу данных SQL Azure до более сильного уровня, так как вам нужно большое количество DTU. Это потенциально могло замедлить его. - person Jeffrey Rosselle; 05.12.2017
comment
Я перешел на виртуальную машину на том же складе, и теперь bcp работает очень быстро. Я еще не тестировал скорость bcp от стандартной до премиальной, но у меня возникла проблема со стандартом, когда tempdb выдавал ошибку из-за слишком большого размера, когда я удалял дубликаты из большой таблицы, мне пришлось переключиться на премиум, который не жаловался - person MIKE; 08.12.2017

Ты на правильном пути. API массового копирования будет работать. Я этим пользуюсь. И это самый быстрый способ импорта данных, поскольку он использует операторы INSERT BULK. Не путайте с оператором BULK INSERT, который не поддерживается в SQL Azure. По сути, BCP и SqlBulkCopy API используют один и тот же метод.

person Herve Roggero    schedule 19.06.2011

http://www.solidq.com/sqj/Pages/2011-May-Issue/Migrating-Data-into-Microsofts-Data-Platform-SQL-Azure.aspx для подробного анализа доступных вариантов.

person paras_doshi    schedule 15.06.2011

Я думаю, важно отметить, что BCP не может обрабатывать исходные файлы в Unicode при использовании файла формата для импорта.

person Reza Shirazian    schedule 11.11.2014