Я использую SqlServer 2008R2, и мне нужно очень быстро загрузить 900 миллионов записей с последующей структурой.
VARCHAR (20)
VARCHAR (10)
VARCHAR (50)
VARCHAR (15)
VARCHAR (20)
VARCHAR (10)
VARCHAR (4)
VARCHAR (3)
VARCHAR (10)
DateTime
DateTime DateTime
DateTime
десятичных (19, 2)
десятичного (19, 2)
десятичных (19, 2)
десятичного (19, 2)
десятичного (19, 2)
десятичного (19, 2)
десятичный (19, 2)
десятичного (19, 2)
десятичных (19, 2)
(у меня есть различные форматы, некоторые до 100 столбцов данных - в общей сложности 221GB данных для загрузки)
SqlServer Bulk Insert с логикой
Проблема заключается в том, что данные поступают от старого OS390 и если дата является недействительным они посылают его в текстовый файл как 99999999.
Что является лучшим способом, чтобы преобразовать эти данные, чтобы быть нулевым? В Oracle вы можете поместить логику внутри форматов, можете ли вы сделать это с помощью BCP? или это самый быстрый способ достичь этого, используя SSIS для загрузки и преобразования одновременно? или с помощью триггера или чего-то подобного?
Загрузка как текст, а затем преобразование в базу данных Я не думаю, что это опция из-за томов данных.
Как быстро вы хотите его загрузить? Я просто загружал данные со скоростью 430 ГБ/час с тривиальной настройкой (8 потоков, потокобезопасных в таблицы кучи с помощью SqlBulkCopy), поэтому вы могли бы уйти с промежуточной таблицы. – usr
Мы должны загрузить 221 ГБ максимум за 15 минут. Производственный сервер будет иметь минимум 180 ГБ оперативной памяти, 32 ядра, быстрые диски и т. Д. Проблема с промежуточными таблицами будет временем, которое потребовалось бы, чтобы вставить данные в финальные таблицы. Также, как и временное дисковое пространство для хранения двух копий данных. Сможете ли вы предоставить более подробную информацию о том, как вы смогли загрузить то, что вы сделали? – Luke