Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 18:30

чтение большого текстового файла

Автор Toshik1986, 05 авг 2016, 11:58

0 Пользователей и 1 гость просматривают эту тему.

Toshik1986

Доброго времени суток. Натолкните на мысль, есть csv файл более 1Гб нужно написать обработку, которая будет искать реквизиты из регистра сведений в этом файле. построчный поиск будет искать долго, а при попытке прочитать весь файл 1с ругается на нехватку памяти... с какой стороны подойти?

Kironten

Цитата: Toshik1986 от 05 авг 2016, 11:58
Доброго времени суток. Натолкните на мысль, есть csv файл более 1Гб нужно написать обработку, которая будет искать реквизиты из регистра сведений в этом файле. построчный поиск будет искать долго, а при попытке прочитать весь файл 1с ругается на нехватку памяти... с какой стороны подойти?
Разбить файл на несколько - не?

Toshik1986

Цитата: Kironten от 05 авг 2016, 12:04
Цитата: Toshik1986 от 05 авг 2016, 11:58
Доброго времени суток. Натолкните на мысль, есть csv файл более 1Гб нужно написать обработку, которая будет искать реквизиты из регистра сведений в этом файле. построчный поиск будет искать долго, а при попытке прочитать весь файл 1с ругается на нехватку памяти... с какой стороны подойти?
Разбить файл на несколько - не?
нее..

Kironten

Цитата: Toshik1986 от 05 авг 2016, 12:10
Цитата: Kironten от 05 авг 2016, 12:04
Цитата: Toshik1986 от 05 авг 2016, 11:58
Доброго времени суток. Натолкните на мысль, есть csv файл более 1Гб нужно написать обработку, которая будет искать реквизиты из регистра сведений в этом файле. построчный поиск будет искать долго, а при попытке прочитать весь файл 1с ругается на нехватку памяти... с какой стороны подойти?
Разбить файл на несколько - не?
нее..
Нее - невозможно или нее - лень?
Не вижу проблемы в разбивке csv на части. Это не xml где при разбивке надо теги отслеживать.
Просто обработка отработает на за один заход, а за несколько.
Или ищите машину мощнее.

LexaK

(что помню)
1.CSV легко конвертируется в Ексель
2.Ексель легко закачивается (одной командой) в базу SQL
3.из 1С делаете настраиваете доступ к внешнему источнику данных
4.обычным запросом "Выбрать ..." ищете то что вам надо почти мгновенно! :zebzdr:

а вообще похоже что из какой-то вашей-же соседней информационной системы вам выгружают данные, наверняка они на сервере (Скл,Оракл,Пост,...) сидят.
просто возьмите у них доступ, пусть они пару вьюшек приготовят, и далее запросом ...

и не нужны будут эти выгрузки - загрузки (с CSV)
если помогло нажмите: Спасибо!

Toshik1986

Цитата: LexaK от 05 авг 2016, 12:28
(что помню)
1.CSV легко конвертируется в Ексель
2.Ексель легко закачивается (одной командой) в базу SQL
3.из 1С делаете настраиваете доступ к внешнему источнику данных
4.обычным запросом "Выбрать ..." ищете то что вам надо почти мгновенно! :zebzdr:

а вообще похоже что из какой-то вашей-же соседней информационной системы вам выгружают данные, наверняка они на сервере (Скл,Оракл,Пост,...) сидят.
просто возьмите у них доступ, пусть они пару вьюшек приготовят, и далее запросом ...

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

Kironten

Цитата: LexaK от 05 авг 2016, 12:28
1.CSV легко конвертируется в Ексель
Придется очень внимательно отслеживать типы значений в ячейках. Эксель по умолчанию любит в свои типы преобразовывать (например даты в определенном формате, или числа с определенной точностью).
Есть хороший шанс пох*рить данные.
На небольшом файле это все легко отследить, но гиг...:dfbsdfbsdf:

LexaK

Toshik1986, а как вы хотите? большие задачи (по крайней мере с большими объемами данных), требуют больших затрат, времени на обработку, (начальное) программирование, загрузку и т.д.
(возможно и CSV можно напрямую грузить в СКЛ (давно делал, точно не помню) )
Один раз все настраиваете, потом только кнопки давите! :D

если помогло нажмите: Спасибо!

Toshik1986

Цитата: LexaK от 05 авг 2016, 13:03
Toshik1986, а как вы хотите? большие задачи (по крайней мере с большими объемами данных), требуют больших затрат, времени на обработку, (начальное) программирование, загрузку и т.д.
(возможно и CSV можно напрямую грузить в СКЛ (давно делал, точно не помню) )
Один раз все настраиваете, потом только кнопки давите! :D
ну дак.. это все понятно) хочется найти оптимальное решение с точки зрения производительности.. думаю может проще этот csv грузить в регистр сведений, а уже в нем искать..

LexaK

так вы, вроде выше писали, что такой файл у вас 1С открыть не может, памяти не хватает, как вы его грузить будете?
у нас файл Ексель 100 мег. примерно 300 тыс. строк грузится (в ТЗ) примерно 15 минут.
а если у вас строк пара лимонов. даже представить страшно сколько по времени будете грузить, средствами 1С.
ну, когда надоесть мучить 1С,
смотрите в сторону СКЛ с ДТС.

(немного песка можно перевести на ручной тачке, а если вам за раз надо перевезти 10 тонн песка, нужен белаз! разницу между тачкой и белазом улавливаете?)
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск