Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
HorseJack
Member

Откуда: RuPublic
Сообщений: 5
Всем здравствуйте!
Имеется большой объем записей (более 100 млн.) в одной таблице, которые нужно выгрузить в xlsx файлы по категориям, при этом в одном xlsx файле должны быть строки только одной категории.
Т.е. на выходе что-то в этом роде:
Файл Содержимое
категория1_01.xlsx 1 млн. записей
категория1_02.xlsx 1 млн. записей
категория1_03.xlsx 1 млн. записей
категория1_04.xlsx 0.2 млн. записей
категория2_01.xlsx 1 млн. записей
категория2_02.xlsx 0.8 млн. записей
категория3_01.xlsx 0.1 млн. записей
категория4_01.xlsx 0.02 млн. записей
...

Пока есть мысль создать поле в таблице, которое заполнить требуемым именем файла, через T-SQL прописать чтобы одно имя файла было не более чем в 1 млн строк, а потом циклом через SSIS выгрузить xlsx файлы.
Сомнения:
1) усложнение через доп T-SQL процедуры
2) SSIS может начать выдавать не очень хорошие файлы на масштабах, близких к максимальному размеру по количеству строк. Типа файлы будут выдаваться как corrupted

Есть другая идея:
1) выгрузить каждую категорию в свой csv файл, те из них, что больше 1 млн. строк, нарубить при помощи FileSplitter на файлы с нужным количеством строк
2) сделать макрос на VBA в Excel, который пересохранить csv в xlsx файлы.

Так вот, может есть в SSIS какой-то готовый подход по порционной выгрузке больших таблиц на диск?
16 ноя 18, 17:29    [21736640]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
vborets
Member

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

В Эксель миллион строк? ха-ха

делайте Куб
16 ноя 18, 18:20    [21736673]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
HorseJack,

автор
1) выгрузить каждую категорию в свой csv файл, те из них, что больше 1 млн. строк, нарубить при помощи FileSplitter на файлы с нужным количеством строк
2) сделать макрос на VBA в Excel, который пересохранить csv в xlsx файлы.

bcp -> csv хоть по млн если надо, потом пересохранить. Всё в одним cmd можно сделать
16 ноя 18, 18:31    [21736682]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
vborets
HorseJack,

В Эксель миллион строк? ха-ха

делайте Куб

делайте что угодно, кроме того, что надо?
16 ноя 18, 18:32    [21736683]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
HorseJack
Member

Откуда: RuPublic
Сообщений: 5
TaPaK
HorseJack,

автор
1) выгрузить каждую категорию в свой csv файл, те из них, что больше 1 млн. строк, нарубить при помощи FileSplitter на файлы с нужным количеством строк
2) сделать макрос на VBA в Excel, который пересохранить csv в xlsx файлы.

bcp -> csv хоть по млн если надо, потом пересохранить. Всё в одним cmd можно сделать

спасибо, в принципе рабочий вариант. Пошерстю какие форматы Excel может из коробки делать.
16 ноя 18, 18:47    [21736691]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
HorseJack
Member

Откуда: RuPublic
Сообщений: 5
vborets
HorseJack,

В Эксель миллион строк? ха-ха

делайте Куб

кубы будут делать другие люди, которым я передам эти xlsx файлы
16 ноя 18, 18:47    [21736692]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
HorseJack
vborets
HorseJack,

В Эксель миллион строк? ха-ха

делайте Куб

кубы будут делать другие люди, которым я передам эти xlsx файлы

зачем тогда дробить по млн? слить всё в один или по категориям
16 ноя 18, 18:53    [21736696]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
HorseJack
Member

Откуда: RuPublic
Сообщений: 5
TaPaK
HorseJack
пропущено...

кубы будут делать другие люди, которым я передам эти xlsx файлы

зачем тогда дробить по млн? слить всё в один или по категориям

В Excel файле стоит ограничение на 1 млн строк на одном листе, ряд категорий содержит более миллиона строк. Т.е. не получится сделать так: каждая категория в один файл, ряд из них будут слишком большими.
16 ноя 18, 19:00    [21736699]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
HorseJack
TaPaK
пропущено...

зачем тогда дробить по млн? слить всё в один или по категориям

В Excel файле стоит ограничение на 1 млн строк на одном листе, ряд категорий содержит более миллиона строк. Т.е. не получится сделать так: каждая категория в один файл, ряд из них будут слишком большими.

а зачем вообще в excel открывать?
16 ноя 18, 19:08    [21736702]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
HorseJack
Member

Откуда: RuPublic
Сообщений: 5
TaPaK
HorseJack
пропущено...

В Excel файле стоит ограничение на 1 млн строк на одном листе, ряд категорий содержит более миллиона строк. Т.е. не получится сделать так: каждая категория в один файл, ряд из них будут слишком большими.

а зачем вообще в excel открывать?
Требование заказчика! Их ещё индивидуально будут просматривать и изучать. А тот, кто будет просматривать в экселе хорошо это умеет делать.
16 ноя 18, 19:42    [21736721]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
HorseJack,

Я всегда восхищаюсь людьми которые могу смотреть на 100кк записей
16 ноя 18, 22:34    [21736813]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
PizzaPizza
Member

Откуда:
Сообщений: 309
HorseJack
Требование заказчика! Их ещё индивидуально будут просматривать и изучать. А тот, кто будет просматривать в экселе хорошо это умеет делать.


Сочувствую. И вам и тому, кто будет просматривать это в Экселе. Ему всего то три года понадобится (он же "хорошо это умеет делать") если он перестает есть, спать, ходить в туалет и будет тратить по секунде на запись. Может быть ему посоветовать научится работать с бд? Хотя нет, о чем я, это утопия!
16 ноя 18, 23:06    [21736822]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка из SQL Server большого числа записей в несколько xlsx файлов (SSIS?)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7383
Это классический цирк с вишенкой на торте.
17 ноя 18, 12:01    [21736933]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить