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

Откуда: РФ, Москва
Сообщений: 251
Здравствуйте, у меня есть CSV-файл (в нем 45 млн. строк и размер 8,13 ГБ) я хочу получить все строки (для дальнейшего анализа) из этого файла с помощью следующей команды:
SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Data Source=\\DEVSERV\InOut\ЦУ;Extended Properties="Text;HDR=NO;"')...[CALIBRATION_HIST#csv];

при её выполнении возникает следующая ошибка:
автор
OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "The query cannot be completed. Either the size of the query result is larger than the maximum size of a database (2 GB), or there is not enough temporary storage space on the disk to store the query result.".
Сообщение 7311, уровень 16, состояние 2, строка 1
Cannot obtain the schema rowset "DBSCHEMA_COLUMNS" for OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". The provider supports the interface, but returns a failure code when it is used.


Если выполнить следующую команду (CSV-файл содержит 10 строчек и размер 837 байт):
SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Data Source=\\DEVSERV\InOut\ЦУ;Extended Properties="Text;HDR=NO;"')...[ACTIVATE_DICT#csv];

то она выполняется успешно.
18 апр 18, 12:07    [21348230]     Ответить | Цитировать Сообщить модератору
 Re: Получения данных из большого CSV файла с помощью OPENDATASOURCE  [new]
ASukhov1986
Member

Откуда: РФ, Москва
Сообщений: 251
Вопрос: как мне получить содержимое первого файла с помощью OPENDATASOURCE подобных процедур?
18 апр 18, 12:08    [21348243]     Ответить | Цитировать Сообщить модератору
 Re: Получения данных из большого CSV файла с помощью OPENDATASOURCE  [new]
ASukhov1986
Member

Откуда: РФ, Москва
Сообщений: 251
ASukhov1986,
1) на севере, где находиться СУБД есть два жестких диска (с и d), на первом свободно 46 Гб, на втором свободно 103Гб;
2) версия СУБД:
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4042.0 (X64) Mar 26 2015 21:18:04 Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
18 апр 18, 12:11    [21348260]     Ответить | Цитировать Сообщить модератору
 Re: Получения данных из большого CSV файла с помощью OPENDATASOURCE  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
т.е. сообщения об ошибке вы не поняли? ))
18 апр 18, 12:24    [21348316]     Ответить | Цитировать Сообщить модератору
 Re: Получения данных из большого CSV файла с помощью OPENDATASOURCE  [new]
ASukhov1986
Member

Откуда: РФ, Москва
Сообщений: 251
Гигабайт Мегабайтович Килобайтов,

вроде бы да
18 апр 18, 12:28    [21348330]     Ответить | Цитировать Сообщить модератору
 Re: Получения данных из большого CSV файла с помощью OPENDATASOURCE  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

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

что "вроде бы да"? ))
что вы поняли из сообщения об ошибке?
18 апр 18, 12:37    [21348383]     Ответить | Цитировать Сообщить модератору
 Re: Получения данных из большого CSV файла с помощью OPENDATASOURCE  [new]
ASukhov1986
Member

Откуда: РФ, Москва
Сообщений: 251
Гигабайт Мегабайтович Килобайтов я понял, что размер выгруженных данных из этого файла не должно превышать 2 ГБ.
18 апр 18, 12:45    [21348410]     Ответить | Цитировать Сообщить модератору
 Re: Получения данных из большого CSV файла с помощью OPENDATASOURCE  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
ASukhov1986
Гигабайт Мегабайтович Килобайтов я понял, что размер выгруженных данных из этого файла не должно превышать 2 ГБ.

как грит мой начальник "Бинго!" ))
18 апр 18, 12:48    [21348424]     Ответить | Цитировать Сообщить модератору
 Re: Получения данных из большого CSV файла с помощью OPENDATASOURCE  [new]
TaPaK
Member

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

дравер ACE с теми же ограничениями как и excel(в общем). У вас csv и можно через другие https://www.connectionstrings.com/textfile/
18 апр 18, 12:55    [21348454]     Ответить | Цитировать Сообщить модератору
 Re: Получения данных из большого CSV файла с помощью OPENDATASOURCE  [new]
ASukhov1986
Member

Откуда: РФ, Москва
Сообщений: 251
TaPaK,
Пример моих данных в CSV-файла:
77"WORK_PLACE""Принадлежность средств поверки""""2000/01/01 00:00:00"11
88"CODIFF""Кодификатор СИ""""2000/01/01 00:00:00"11

Пытаюсь использовать следующую команду:
BULK INSERT CU.metr.calibration_hist  
   FROM '\\DEVSERV\InOut\ЦУ\CALIBRATION_HIST.csv'
   WITH (FORMAT='CSV')

и возникает ошибка:
автор
Сообщение 102, уровень 15, состояние 1, строка 3
Incorrect syntax near 'FORMAT'.

хотя в руководстве есть этот параметр https://docs.microsoft.com/ru-ru/sql/t-sql/statements/bulk-insert-transact-sql
18 апр 18, 15:41    [21349324]     Ответить | Цитировать Сообщить модератору
 Re: Получения данных из большого CSV файла с помощью OPENDATASOURCE  [new]
ASukhov1986
Member

Откуда: РФ, Москва
Сообщений: 251
ASukhov1986,

этот параметр появиться только в следующей версии
FORMAT = 'CSV'
Applies to: SQL Server 2017 (14.x) CTP 1.1.
18 апр 18, 15:43    [21349335]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить