|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Имеется csv файл с заранее неопределенным количеством строк и "столбцов". Требуется по определенному алгоритму (пока не известен, но не в этом суть) обработать данные из файла. Например, подсчитать среднеарифметическое всех чисел из файла. Где лучше хранить данные из файла? В субд как вариант, но тогда придется ставить субд на машину. В памяти - неизвестен заранее размер файла, может и памяти не хватит. Построчное чтение и обработка не подходит. Есть еще варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 10:30 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixИмеется csv файл с заранее неопределенным количеством строк и "столбцов". Требуется по определенному алгоритму (пока не известен, но не в этом суть) обработать данные из файла. Например, подсчитать среднеарифметическое всех чисел из файла. Где лучше хранить данные из файла? В субд как вариант, но тогда придется ставить субд на машину. В памяти - неизвестен заранее размер файла, может и памяти не хватит. Построчное чтение и обработка не подходит. Есть еще варианты? не нужно засовывать в память весь файл , обрабатывай его построчно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 10:32 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixПострочное чтение и обработка не подходит. Почему нет? Есть еще варианты? Разбить на несколько мелких файлов, каждый их которых поместится в памяти, обработать поочередно ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 10:33 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixТребуется по определенному алгоритму (пока не известен, но не в этом суть) обработать данные из файла. Суть именно в этом. Сначала надо определиться "что делать", а потом выбирать "как делать". saxixВ субд как вариант, но тогда придется ставить субд на машину. Можно без полноценной СУБД обойтись, взять, например, sqlite или что-то подобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 10:42 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
pationsaxixИмеется csv файл с заранее неопределенным количеством строк и "столбцов". Требуется по определенному алгоритму (пока не известен, но не в этом суть) обработать данные из файла. Например, подсчитать среднеарифметическое всех чисел из файла. Где лучше хранить данные из файла? В субд как вариант, но тогда придется ставить субд на машину. В памяти - неизвестен заранее размер файла, может и памяти не хватит. Построчное чтение и обработка не подходит. Есть еще варианты? не нужно засовывать в память весь файл , обрабатывай его построчно. Потому что на один файл, возможно, несколько инструкций для обработки, которые нельзя будет выполнять одновременно. Тогда придется файл перебирать построчно несколько раз. Вообще пока нет представления о размере файла и алгоритме обработки, просто присматриваю "технологии" ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:12 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixПотому что на один файл, возможно, несколько инструкций для обработки, которые нельзя будет выполнять одновременно. это почему нельзя? один итератор, несколько подписчиков, например ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:15 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
ИзопропилsaxixПотому что на один файл, возможно, несколько инструкций для обработки, которые нельзя будет выполнять одновременно. это почему нельзя? один итератор, несколько подписчиков, например Задача пока стоит невнятная, но типа....сначала подсчитали одно, через пять минут понадобилось другое. И заранее все алгоритмы обработки не известны. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:19 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixЗадача пока стоит невнятная, но типа....сначала подсчитали одно, через пять минут понадобилось другое. И заранее все алгоритмы обработки не известны. Значит либо в память inmemory db ну либо свои структуры, либо локальная [no]sql базенка... чтоб каждый раз не умирать на чтении и парсинге... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:24 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxix, ...да хоть в DBF - старо как мир, но драйвера ADODB в любой винде присутствуют ... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:31 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
buserлибо локальная [no]sql базенка... мне сдаётся, что лучше SQL , ибо запросы предполагаются случайные ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:32 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
carrotik...да хоть в DBF - старо как мир, но драйвера ADODB в любой винде присутствуют ... только этого геморроя не хватает ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:33 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Изопропилcarrotik...да хоть в DBF - старо как мир, но драйвера ADODB в любой винде присутствуют ... только этого геморроя не хватает ...автор не хотел ставить даже Express версии SQL/Firebird, если я правильно понял .... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:34 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
carrotik...автор не хотел ставить даже Express версии SQL/Firebird, если я правильно понял .... правильно. embedded СУБД применить нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:36 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Счас смотрю в сторону sqlLite ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:37 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
carrotikИзопропилпропущено... только этого геморроя не хватает ...автор не хотел ставить даже Express версии SQL/Firebird, если я правильно понял .... Да мне то все равно, но по требованиям - как можно меньше телодвижений для админов ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 11:38 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Изопропилcarrotik...автор не хотел ставить даже Express версии SQL/Firebird, если я правильно понял .... правильно. embedded СУБД применить нужно у firebird есть embedded ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 12:00 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixИмеется csv файл с заранее неопределенным количеством строк и "столбцов". Требуется по определенному алгоритму (пока не известен, но не в этом суть) обработать данные из файла. Например, подсчитать среднеарифметическое всех чисел из файла. Где лучше хранить данные из файла? В субд как вариант, но тогда придется ставить субд на машину. В памяти - неизвестен заранее размер файла, может и памяти не хватит. Построчное чтение и обработка не подходит. Есть еще варианты? Если есть файл, и он может быть такого размера, что в оперативку не влазит, то можно MemoryMappedFiles использовать. Если же с этим файлом предполагается интенсивная разнообразная работа, то проще загрузить в любую СУБД и оперировать SQL-запросами ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 15:39 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
OLEDB вполне себе нормально с CSV работает ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 15:53 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Попробовал sqlLite и грузить данные через insert into....скорость около 1000 записей в минуту ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 15:54 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Arm79Если же с этим файлом предполагается интенсивная разнообразная работа, то проще загрузить в любую СУБД и оперировать SQL-запросами +1 BCP-загрузка шустро работает ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 15:54 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Cat2OLEDB вполне себе нормально с CSV работает с каим провайдером? ЗЫ какое ещё извращение будет предложено? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 15:55 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixПопробовал sqlLite и грузить данные через insert into....скорость около 1000 записей в минуту ((( bulk insert - bcp !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 15:59 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Cat2saxixПопробовал sqlLite и грузить данные через insert into....скорость около 1000 записей в минуту ((( bulk insert - bcp !!! Это в MS SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:01 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Cat2saxixПопробовал sqlLite и грузить данные через insert into....скорость около 1000 записей в минуту ((( bulk insert - bcp !!! авторCSV Import Use the ".import" command to import CSV (comma separated value) data into an SQLite table. The ".import" command takes two arguments which are the name of the disk file from which CSV data is to be read and the name of the SQLite table into which the CSV data is to be inserted. Note that it is important to set the "mode" to "csv" before running the ".import" command. This is necessary to prevent the command-line shell from trying to interpret the input file text as some other format. sqlite> .mode csv sqlite> .import C:/work/somedata.csv tab1 There are two cases to consider: (1) Table "tab1" does not previously exist and (2) table "tab1" does already exist. In the first case, when the table does not previously exist, the table is automatically created and the content of the first row of the input CSV file is used to determine the name of all the columns in the table. In other words, if the table does not previously exist, the first row of the CSV file is interpreted to be column names and the actual data starts on the second row of the CSV file. For the second case, when the table already exists, every row of the CSV file, including the first row, is assumed to be actual content. If the CSV file contains an initial row of column labels, that row will be read as data and inserted into the table. To avoid this, make sure that table does not previously exist. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:03 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
ИзопропилCat2OLEDB вполне себе нормально с CSV работает с каим провайдером? ЗЫ какое ещё извращение будет предложено? Тьфу. ODBC Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=d:\bin https://msdn.microsoft.com/ru-ru/library/vstudio/ms254500(v=vs.100).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:09 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixавторCSV Import ... Так тоже медленно работает? С sqlite не работал, собирался потестить но так и не собрался. Читал немного, если не путаю, там есть вариант переключения в режим без фиксации изменений на диск, надежность исчезает, зато получается скорость. Для вставки больших объемов то что надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:14 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixПопробовал sqlLite и грузить данные через insert into....скорость около 1000 записей в минуту ((( Тут пишут миллион за полминуты ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:19 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixВообще пока нет представления о размере файла и алгоритме обработки, может сначала лучше определиться ? а потом технологию подбирать ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:20 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
ИзопропилsaxixВообще пока нет представления о размере файла и алгоритме обработки, может сначала лучше определиться ? а потом технологию подбирать попросили )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:29 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Dima TsaxixПопробовал sqlLite и грузить данные через insert into....скорость около 1000 записей в минуту ((( Тут пишут миллион за полминуты Попробую с transaction. У меня еще полей в файле полсотни ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:30 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixDima Tпропущено... Тут пишут миллион за полминуты Попробую с transaction. У меня еще полей в файле полсотни Хрень какая-то. 2000 записей за 2 секунды. Поставил commit на каждой сотой записи и так скорость возросла. Спасибо за подсказку ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:39 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixsaxixпропущено... Попробую с transaction. У меня еще полей в файле полсотни Хрень какая-то. 2000 записей за 2 секунды. Поставил commit на каждой сотой записи и так скорость возросла. Спасибо за подсказку Это стандартный прием для любой СУБД, т.к. без транзакции фиксация изменений происходит после каждой записи. Попробуй с разобраться с CSV Import, думаю еще быстрее будет. Советую профильный форум почитать, поспрашивать, может еще чего подскажут. Немного почитал, предлагают CSV Import использовать в подобных ситуациях. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:49 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Dima Tsaxixпропущено... Хрень какая-то. 2000 записей за 2 секунды. Поставил commit на каждой сотой записи и так скорость возросла. Спасибо за подсказку Это стандартный прием для любой СУБД, т.к. без транзакции фиксация изменений происходит после каждой записи. Попробуй с разобраться с CSV Import, думаю еще быстрее будет. Советую профильный форум почитать, поспрашивать, может еще чего подскажут. Немного почитал, предлагают CSV Import использовать в подобных ситуациях. Да как-то не хочется дергать внешние программы. Но если записей будет много, то придется. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 16:58 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixДа как-то не хочется дергать внешние программы по религиозным мотивам? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 17:04 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
ИзопропилsaxixДа как-то не хочется дергать внешние программы по религиозным мотивам? Что-то типа того. Это ж придется дополнительные программы таскать с дистрибутивом. И для каждой платформы свой дистрибутив (я на Java пишу ))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2015, 17:15 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Неплохая статья про тюнинг sqlite http://habrahabr.ru/post/149635/ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2015, 09:03 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixя на Java пишу ))) в мне показалось, что топик в разделе дотнет ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2015, 09:11 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxix, Порядок размера файла есть? Просто до нескольких гигабайт - вполне можно хранить в памяти и вовсю использовать тот же Linq для запросов. Быстро, просто и относительно беспроблемно. embedded СУБД применить нужно Имхо если хранить данные не надо и в память влезает - то смысла нет. Если данные надо хранить, тогда да. Обычно embedded при больших базах работают, имхо, не идеально ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2015, 09:49 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
dvimИмхо если хранить данные не надо и в память влезаеттопикстартер не уверен в том, что данные уместятся в памяти и неизвестно что с данными делать придётся при таких исходных данных - только гипотезы можно строить ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2015, 09:59 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Изопропилsaxixя на Java пишу ))) в мне показалось, что топик в разделе дотнет Знаете, в данном случае разницы нет Но здесь быстрее ответят ) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2015, 10:18 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixЗнаете, в данном случае разницы нет попробуй как derby себя поведёт со штатным SYSCS_UTIL.SYSCS_IMPORT_TABLE ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2015, 10:36 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
ИзопропилsaxixЗнаете, в данном случае разницы нет попробуй как derby себя поведёт со штатным SYSCS_UTIL.SYSCS_IMPORT_TABLE Derby поддерживает меньшее кол-во ОС ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2015, 10:59 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixDerby поддерживает меньшее кол-во ОС ты точно на Java пишешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2015, 13:43 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
ИзопропилsaxixDerby поддерживает меньшее кол-во ОС ты точно на Java пишешь? Угу. Короче. Загрузил я за 50 мин. 12 млн. записей. На select count запрос встал "ра..". Полей больше полусотни ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 12:57 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixИзопропилпропущено... ты точно на Java пишешь? Угу. Короче. Загрузил я за 50 мин. 12 млн. записей. На select count запрос встал "ра..". Полей больше полусотни Я как-то интересовался этим вопросом теоретически (читал исходники) без практического приментния. По старой памати: дерби это проверка академихеских концептов на практике. Больщего от неё не ожидайте. Смотреть надо на H2 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 16:26 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
mikronsaxixпропущено... Угу. Короче. Загрузил я за 50 мин. 12 млн. записей. На select count запрос встал "ра..". Полей больше полусотни Я как-то интересовался этим вопросом теоретически (читал исходники) без практического приментния. По старой памати: дерби это проверка академихеских концептов на практике. Больщего от неё не ожидайте. Смотреть надо на H2 H2 какая-то "одна из". В чем ее прелесть? Почему надо на нее смотреть? а не на Cassandra или типа того? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 16:50 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Я не настаиваю. ИМХО это наиболее эквиваленто тому что делает автор сейчас - встроенная ДБ на той-же платформе. На касандре это уже другое архитектурное решение решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2015, 17:25 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixИзопропилпропущено... ты точно на Java пишешь? Угу. Короче. Загрузил я за 50 мин. 12 млн. записей. На select count запрос встал "ра..". Полей больше полусотни Потому что надо для таких количеств использовать нормальные базы, а не то "что бы без установки и что бы ничего не делать админам" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2015, 19:00 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
Cat2saxixпропущено... Угу. Короче. Загрузил я за 50 мин. 12 млн. записей. На select count запрос встал "ра..". Полей больше полусотни Потому что надо для таких количеств использовать нормальные базы, а не то "что бы без установки и что бы ничего не делать админам" ТЗ - есть ТЗ. Сам уже наткнулся на кучу "проблем". Если хочу использовать в скрипте функции SQRT и подобные .... математические - надо долго бубном стучать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2015, 10:30 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
saxixТребуется по определенному алгоритму (пока не известен, но не в этом суть) saxixТЗ - есть ТЗ. у меня когнитивный диссонанс ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2015, 10:47 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
ИзопропилsaxixТребуется по определенному алгоритму (пока не известен, но не в этом суть) saxixТЗ - есть ТЗ. у меня когнитивный диссонанс Зеленый чай поможет. В ТЗ "на словах" указан язык программирования, база данных и приблизительный алгоритм без уточнений ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2015, 10:55 |
|
Загрузка и обработка данных из текстового файла большого размера
|
|||
---|---|---|---|
#18+
если БД указана в ТЗ - к чему тогда мучительные поиски? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2015, 11:09 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1401345]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 331ms |
total: | 490ms |
0 / 0 |