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

Откуда:
Сообщений: 1366
Здравствуйте. Пытаюсь закачать в базу файл недействительных паспортов list_of_expired_passports.csv
Файл весит 1 гигабайт и содержит порядка 80 млн записей в формате :
PASSP_SERIESPASSP_NUMBER
4604834158
4604834161
6001576947
6504783399
5001642269
600542393


Пытаюсь его залить в таблицу
CREATE TABLE [dbo].[_PasspND](
	[Ser] [nvarchar](20) NOT NULL,
	[Nom] [nvarchar](20) NOT NULL,
 CONSTRAINT [PK__PasspND] PRIMARY KEY CLUSTERED 
(
	[Ser] ASC,
	[Nom] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]


через команду:
TRUNCATE TABLE _PasspND

BULK INSERT _PasspND
   FROM 'Путь\list_of_expired_passports.csv'
   --FROM 'Путь\_tst.csv'
   WITH
      (
         FIELDTERMINATOR =','
         ,ROWTERMINATOR = '\n' --'\n',
         ,FIRSTROW = 2
         --,BATCHSIZE = 1000
         , ROWS_PER_BATCH = 80000000
      )


Но получаю ошибку:
Сообщение 4866, уровень 16, состояние 8, строка 4
Массовая загрузка не удалась. Слишком длинный столбец в файле данных в строке 1, столбце 2. Убедитесь, что признак конца поля и конца строки были указаны правильно.
Сообщение 7301, уровень 16, состояние 2, строка 4
Не удалось получить требуемый интерфейс ("IID_IColumnsInfo") от поставщика OLE DB "BULK" для связанного сервера "(null)".


Если же этой же командой пытаюсь залить маленький файл - _tst.csv, то все проходит на ура.
Пытался выставить свойства BATCHSIZE - не спасает.
Что делать?
23 июл 14, 14:50    [16347100]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
AnyKey45
Member

Откуда: Ekaterinburg-Moscow-EU
Сообщений: 219
чето было похожее попробуй ROWTERMINATOR = '0x0a'
23 июл 14, 14:56    [16347165]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
Диам
Member

Откуда:
Сообщений: 1366
AnyKey45,
Спасибо. Пошла родимая...
23 июл 14, 15:15    [16347322]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
ЕвгенийВ
Member

Откуда: Москва
Сообщений: 4903
Диам,
Зачем такие типы у полей?
CREATE TABLE [dbo].[_PasspND](
	[Ser] [color=red]smallint[/color] NOT NULL,
	[Nom] [color=red]int[/color] NOT NULL,
 CONSTRAINT [PK__PasspND] PRIMARY KEY CLUSTERED 
(
	[Ser] ASC,
	[Nom] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

Чем меньше размер таблицы, тем быстрее запросы!
23 июл 14, 16:12    [16347696]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
Почему INT? Могут попадаться и буквенные обозначения старых паспортов.
23 июл 14, 16:26    [16347801]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30782
ЕвгенийВ
Зачем такие типы у полей?
Серия точно может быть буквенная
23 июл 14, 18:07    [16348339]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
babona
Member [заблокирован]

Откуда: Батуринск
Сообщений: 1816
Диам,

за вами уже выехали братки
23 июл 14, 20:54    [16348877]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
ЕвгенийВ
Member

Откуда: Москва
Сообщений: 4903
alexeyvg
ЕвгенийВ
Зачем такие типы у полей?
Серия точно может быть буквенная

Точно Алексей! У меня была X-РЖ!
Но! Таблица соответствия/формула для старых, думаю позволит уложить старые+новые в диапазон -32767...32768. Два байта лучше чем 8 или 4 на таких объемах....
23 июл 14, 22:55    [16349254]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: bulk insert и гигантский файл  [new]
ArkadyL
Member

Откуда: СПб
Сообщений: 156
Здравствуйте!

Подскажите, пожалуйста, до какого размера может вырасти Log при таком импорте? Последний файл этого рода 1,3Гб. Log вырос до 30Гб и место на диске заканчивается. При любой модели восстановления имеющегося сейчас у нас места не хватает, хотелось бы узнать, сколько просить у администратора.
12 июл 18, 14:10    [21566025]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
aleks222
Member

Откуда:
Сообщений: 854
ArkadyL
Здравствуйте!

Подскажите, пожалуйста, до какого размера может вырасти Log при таком импорте? Последний файл этого рода 1,3Гб. Log вырос до 30Гб и место на диске заканчивается. При любой модели восстановления имеющегося сейчас у нас места не хватает, хотелось бы узнать, сколько просить у администратора.


Ваще то, при православном BULK INSERT log расти не должен.
12 июл 18, 19:03    [21567051]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
ArkadyL
Member

Откуда: СПб
Сообщений: 156
У меня растёт как на дрожжах.

BULK INSERT dbo.Passports
   FROM '......list_of_expired_passports.csv'
   --FROM 'Путь\_tst.csv'
   WITH
      (
         FIELDTERMINATOR =','
         ,ROWTERMINATOR = '0x0a' 
         ,FIRSTROW = 2
         ,ROWS_PER_BATCH = 80000000
         ,MAXERRORS = 1000000
         ,ERRORFILE ='........PassportError.txt'
      )


Вроде, здесь обсуждалось, что он не может не расти, только это зависит от модели восстановления данных.
Может, он у меня атеист.
13 июл 18, 10:57    [21568082]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
TaPaK
Member

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

https://docs.microsoft.com/en-us/sql/relational-databases/import-export/prerequisites-for-minimal-logging-in-bulk-import?view=sql-server-2017
13 июл 18, 11:01    [21568090]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30782
ArkadyL
У меня растёт как на дрожжах.
https://docs.microsoft.com/ru-ru/sql/relational-databases/import-export/prerequisites-for-minimal-logging-in-bulk-import?view=sql-server-2014
13 июл 18, 11:03    [21568095]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и гигантский файл  [new]
ArkadyL
Member

Откуда: СПб
Сообщений: 156
Спасибо!
TABLOCK в опциях не хватало.
13 июл 18, 13:52    [21568920]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить