Загрузка 50-гигабайтного файла CSV-файла Azure Blob в базу данных SQL Azure за меньшее время - PullRequest
0 голосов
/ 01 октября 2019

Я загружаю 50 ГБ CSV-файл Из Azure Blob в Azure SQL DB , используя OPENROWSET. Загрузка этого файла занимает 7 часов. Не могли бы вы помочь мне с возможными способами сократить это время?

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Самый простой вариант IMHO - просто использовать BULK INSERT. Переместите файл csv в хранилище BLOB-объектов и импортируйте его напрямую, используя BULK INSERT из Azure SQL. Убедитесь, что хранилище BLOB-объектов Azure и SQL Azure находятся в одном регионе Azure.

Чтобы сделать это максимально быстро:

  1. разделите файл CSV на несколько файлов (например, используячто-то вроде CSV-сплиттера. Это выглядит неплохо https://www.erdconcepts.com/dbtoolbox.html. Никогда не пробовал и просто придумал простой поиск, но хорошо выглядит)
  2. Запустите больше BULK INSERT параллельно, используя опцию TABLOCK. (https://docs.microsoft.com/en-us/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-2017#arguments). Это, если целевая таблица пуста, позволит одновременно выполнять несколько параллельных массовых операций.
  3. убедитесь, что вы используете более высокий SKU для продолжительности операции. В зависимости от SLO(Цель уровня обслуживания), которую вы используете (S4? P1, vCore?), Вы получите различную пропускную способность журнала, вплоть до 100 МБ / с. Это максимальная скорость, которую вы на самом деле можете достичь. (https://docs.microsoft.com/en-us/azure/sql-database/sql-database-resource-limits-database-server)
0 голосов
/ 01 октября 2019

Попробуйте использовать фабрика данных Azure .

Сначала создайте таблицу назначения в базе данных SQL Azure, назовем ее USDJPY. После этого загрузите файл CSV в учетную запись хранения Azure. Теперь создайте свой экземпляр фабрики данных Azure и выберите «Копировать данные».

enter image description here

Далее выберите «Выполнить один раз сейчас», чтобы скопировать файлы CSV.

enter image description here

Выберите «Хранилище BLOB-объектов Azure» в качестве «хранилища исходных данных», укажите хранилище Azure, в котором хранятся файлы CSV.

enter image description here

Предоставьте информацию об учетной записи хранилища Azure.

enter image description here

Выберите файлы CSV из хранилища Azure.

enter image description here

Выберите «Запятая» в качестве разделителя CSV-файлов и введите число «Skip line count», если ваш CSV-файл имеет заголовки

enter image description here

Выберите «База данных SQL Azure» в качестве «хранилища данных назначения».

enter image description here

Введите информацию базы данных SQL Azure.

enter image description here

Выберите свою таблицу из экземпляра базы данных SQL.

enter image description here

Проверьте отображение данных.

enter image description here

Выполните копирование данных из файлов CSV в базу данных SQL, только подтвердив следующие мастера.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...