Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
alexxey
Member

Откуда: Харьков
Сообщений: 177
Доброго времени суток.
Текущее решение на ОRACLE позволяет загружать данные из файла (не одного типа, несколько миллионов записей) с помощью SQL Loader - на основании определенного критерия анализировать типы и распихивать их в разные таблицы.

Встал вопрос о возможности реализации аналогичного решения с помощью MSSQL : люди пишут про bcp.exe или BULK INSERT.
Необходимо просмотреть оба решения(так как не работал ни с чем), но, возможно, кто-то уже сталкивался с подобной проблемой и заранее знает ответ - возможно ли с помощью утилит/средств MSSQL взять файл с 2 типами данных - и заставить их писаться в разные таблицы?

Если такой подход не реализуем (допустим однотипность данных в файле - это ограничение от MSSQL), то буду заранее благодарен за ответ, а также и подсказки, на каком из решений надо сосредоточить усилия-внимание, чтобы разобраться.

Удачи!
13 дек 12, 12:15    [13624613]     Ответить | Цитировать Сообщить модератору
 Re: Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
alexxey,
bcp.exe или BULK INSERT.
Обое будут работать с 1 таблицей ,сами не разберутся куда и что пихать (если данных будет больше чем на 1 таблицу)
1 файл для 1й таблицы
13 дек 12, 12:19    [13624658]     Ответить | Цитировать Сообщить модератору
 Re: Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
SSIS
13 дек 12, 12:19    [13624662]     Ответить | Цитировать Сообщить модератору
 Re: Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
alexxey
Member

Откуда: Харьков
Сообщений: 177
Maxx,

спасибо за оперативный ответ - то есть в данном случае это будет ограничением?

Также встречал мнение в интернете на американских форумах - что BULK INSERT работает быстрее (какая-то разница с работой памяти) чем bcp. У кого-нибудь был подобный опыт по скорости? Файлы в принципе будут не маленькие.

И также вопрос по гибкости (насколько можно писать сложные варианты обработки?)

Если что - ссылки на msdn (может пригодятся кому)
BULK INSERT: http://msdn.microsoft.com/ru-ru/library/ms188365%28v=sql.105%29.aspx
bcp.exe : http://msdn.microsoft.com/en-us/library/aa174646%28v=sql.80%29.aspx
Использование : http://msdn.microsoft.com/en-us/library/aa196743%28v=sql.80%29.aspx

еще немного об ограничениях:
BCP, является гораздо более универсальной программой, которая позволяет копировать данные между базами данных между серверами SQL, осуществлять импорт данных и экспорт данных из других серверов и в / из TXT, CVS файлы.
BULK INSERT позволяет только добавлять новые данные в таблицы. Данные могут быть либо из другой таблицы или из текстового файла или CVS.


то есть надо сначала определиться с ограничениями, а на основании их уже выбирать необходимое средство.

Спасибо за ответы, идеи!
13 дек 12, 12:29    [13624767]     Ответить | Цитировать Сообщить модератору
 Re: Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
alexxey
Member

Откуда: Харьков
Сообщений: 177
tpg,

да, спасибо - тоже вчера на него обрати внимание, кто-то упоминал о них на форумах = но у меня опасения по скорости (производительности) = так как файл не один ... не захлебнется ли (короче, надо читать ))) )
13 дек 12, 12:30    [13624787]     Ответить | Цитировать Сообщить модератору
 Re: Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
alexxey,

не не захлебнеться..там все равно ,если не склероз у всех етих решение,одна и таже библиотека юзаеться
SSIS - ето как обертка для вашего решения,на его сонове вы сможете разделить процесс с сфайлами и опознанием куда из запиховать
13 дек 12, 12:35    [13624819]     Ответить | Цитировать Сообщить модератору
 Re: Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
alexxey
Member

Откуда: Харьков
Сообщений: 177
вот ссылка на SSIS: http://msdn.microsoft.com/en-us/library/ms141026%28v=sql.105%29.aspx
Если рассматривать их как вариант, то ограничения импорта одного типа данных из одного файла останется в силе, верно?
13 дек 12, 12:36    [13624829]     Ответить | Цитировать Сообщить модератору
 Re: Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
alexxey,

для полной наглядности - поисчите статью на смдн - как загрузили 1тб за 30 мин ,или что-то вроде етого название ..там как раз описаннана связка SSIS +Bulk +партиционирование
13 дек 12, 12:36    [13624832]     Ответить | Цитировать Сообщить модератору
 Re: Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
alexxey
Member

Откуда: Харьков
Сообщений: 177
Maxx,
супер, спасибо за информацию - пошел учить матчасть = проводить полевые испытания.

Всем приятного дня!
13 дек 12, 12:37    [13624837]     Ответить | Цитировать Сообщить модератору
 Re: Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
alexxey,

ну так будет минимум надежней ...
1 файл -1 таблица
Иначе вам прийдеться сильно извращатся
13 дек 12, 12:37    [13624841]     Ответить | Цитировать Сообщить модератору
 Re: Загрузить 2000000+ строк из файла в базу (2 типа данных в файле = в 2 разные таблицы)  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3752
alexxey
tpg,

да, спасибо - тоже вчера на него обрати внимание, кто-то упоминал о них на форумах = но у меня опасения по скорости (производительности) = так как файл не один ... не захлебнется ли (короче, надо читать ))) )

SSIS умеет вставлять данные в режиме минимального протоколирования, как и Bulk Insert
13 дек 12, 12:40    [13624858]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить