Чем открыть большой файл csv
Перейти к содержимому

Чем открыть большой файл csv

  • автор:

Чтение большого CSV и вставка записей в таблицу БД

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

ОС: Windows 7 SP1 x64
Язык: C# / .NET 4
IDE: Visual Studio
БД: Microsoft SQL Server

Такой файл даже ничем не открыть (кроме Excel , который, впрочем, сможет показать только первый миллион записей).

Но и ладно, нам открывать его не надо, а чтение и вставку записей в БД будет делать функция, которую мы напишем.

Сразу суть: есть специальный класс по массовой вставке записей в таблицу БД — SqlBulkCopy. Но сложность в том, что если прочитать сразу всё содержимое CSV-файла (который может достигать размера в несколько гигабайт) и попытаться это вставить в БД, то очень легко оперативки не хватит и всё записнет.

Выходом будет использовать некоторый буфер:

  1. В буфер считывается порция CSV-файла;
  2. Прочитанное разбирается и вставляется в БД;
  3. Буфер очищается и всё по новой уже со следующей порцией.

Допустим, наша таблица назначения состоит из трёх полей (колонок):

  1. Первичный ключ, он нас не интересует, генерируется автоинкрементом;
  2. Поле first ;
  3. Поле second .

И допустим, файл CSV имеет такой вид:

Первая строка — “шапка таблицы”. Как видим, названия колонок отличаются от наших, потому автобиндинг использовать не будем — далее в коде он закомментирован, а имена колонок прописываются руками.

Вот моё решение.

Некоторые фрагменты кода позаимствовал где-то в интернетах, как обычно.

Через три месяца статья получила некоторое продолжение в виде полноценного приложения для разрезания исходного огромного CSV файла на более мелкие, с которыми можно работать не имея гигабайтов оперативки.

Что делать, если набор данных слишком велик для сетки Excel

Если вы открыли файл с большим набором данных в Excel, например файл с разделителями (.txt) или файл с разделителями-запятыми (.csv), возможно, вы видите предупреждающее сообщение «Этот набор данных слишком велик для сетки Excel. Если вы сохраните эту книгу, вы потеряете данные, которые не были загружены.«Это означает, что набор данных превышает количество строк или столбцов, доступных в Excel, поэтому некоторые данные не были загружены.

Предупреждающее сообщение: "Этот набор данных слишком велик для сетки Excel. Если вы сохраните эту книгу, вы потеряете данные, которые не были загружены.

Важно принять дополнительные меры предосторожности, чтобы избежать потери данных:

Откройте файл в Excel для пк с помощью команды Получить данные. Если у вас есть приложение Excel для пк, вы можете использовать Power Query для загрузки полного набора данных и анализа его с помощью сводных таблиц.

Не сохраняйте файл в Excel . Если сохранить исходный файл, вы потеряете все данные, которые не были загружены. Помните, что это также неполный набор данных.

Сохранить усеченную копию . Если вам нужно сохранить файл, перейдите в раздел Файл > Сохранить копию. Затем введите другое имя, которое ясно, что это усеченная копия исходного файла.

Как открыть набор данных, превышающий ограничения сетки Excel

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

Откройте пустую книгу в Excel.

Перейдите на вкладку Данные > Из текста или CSV > найдите файл и выберите Импорт. В диалоговом окне предварительного просмотра выберите Загрузить в. > отчет сводной таблицы.

После загрузки используйте список полей для упорядочения полей в сводной таблице. Сводная таблица будет работать со всем набором данных для сводных данных.

Дополнительные сведения об ограничениях форматов файлов Excel

При использовании Excel важно отметить, какой формат файла вы используете. Формат файла .xls имеет ограничение в 65 536 строк на каждом листе, а формат файла .xlsx имеет ограничение в 1 048 576 строк на лист. Дополнительные сведения см. в разделе Форматы файлов, поддерживаемые вспецификациях и ограничениях Excel и Excel.

Чтобы предотвратить достижение лимита в Excel, убедитесь, что используется формат .xlsx вместо формата .xls, чтобы воспользоваться преимуществами гораздо большего ограничения. Если вы знаете, что набор данных превышает ограничение .xlsx, используйте альтернативные обходные пути, чтобы открыть и просмотреть все данные.

Совет: Убедитесь, что все данные импортированы при открытии набора данных в Excel. Вы можете проверить количество строк или столбцов в исходном файле, а затем подтвердить его соответствие в Excel. Для этого выделите всю строку или столбец и просмотрите счетчик в строке состояния в нижней части Excel.

чем открыть большой csv файл(1gb)

Любой SQL data manager или в Excel не открыть его, а сделать импорт данных, через соответствующую функцию.

Программы от Navicat и EMS посмотри.

Ну и на крайняк — Notepad2 🙂

++
С тормозами, но успешно ковырял текстовый файл на 700-800 МБ в UTF-8

Емнип когда нужно было открыть файл файл корневой зоны (на деле оказалось хуйнёй с лямами спаршеных доменов) юзал akelpad т.к. npp просто помирал на нём (а мб и не его, но что-то того рода)

утилита less
оригинально она из мира линуксов, но есть и версия для винды
http://gnuwin32.sourceforge.net/packages/less.htm#:

либо ищи, как разбить на несколько файлов, формат csv это прекрасно позволяет, сгодится простенький скрипт на любом языке

Как открыть действительно большие текстовые и CSV-файлы

MS Excel может отображать 1 048 576 строк. Хотя при обычном использовании это может показаться очень большим числом, существует множество сценариев, в которых этого недостаточно.

Независимо от того, просматриваете ли вы файлы журналов или большие наборы данных, легко найти файлы CSV с миллионами строк или огромные текстовые файлы. Поскольку Excel не может поддерживать такие большие файлы, как именно вы их открываете? Давай выясним.

Почему обычные текстовые редакторы (Normal Text Editors) не могут открывать действительно большие файлы (Open Really Large Files) ?

Компьютер имеет гигабайты памяти, так почему же текстовые редакторы не могут открывать большие файлы?

Здесь действуют два фактора. Некоторые приложения имеют жестко запрограммированное ограничение на объем данных, которые они могут отображать. Неважно, сколько памяти у вашего ПК, они просто не будут ее использовать.

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

Способ №1: Использование бесплатных редакторов

Лучший способ просматривать очень большие текстовые файлы — использовать… текстовый редактор. Не просто текстовый редактор, а инструменты, предназначенные для написания кода. Такие приложения обычно могут без проблем обрабатывать большие файлы и бесплатны.

Средство просмотра больших текстовых файлов (Large Text File Viewer) , пожалуй, самое простое из этих приложений. Он действительно прост в использовании, работает быстро и требует очень мало ресурсов. Единственный минус? Он не может редактировать файлы. Но если вы хотите просматривать только большие CSV -файлы, это лучший инструмент для работы.

Для редактирования больших текстовых файлов вам также следует попробовать Emacs . Первоначально созданный для систем Unix , он прекрасно работает и в Windows и может работать с большими файлами. Точно так же Neovim и Sublime Text — это две легкие IDE (IDEs) , которые можно использовать для открытия текстовых файлов CSV размером в гигабайт. (CSV)

Если все, что вам нужно, — это поиск данных в больших файлах журналов, то klogg — это именно то, что вам нужно. Это приложение, являющееся обновленной версией популярного glogg , позволяет с легкостью выполнять сложные операции поиска в огромных текстовых файлах. Поскольку файлы журналов, созданные компьютером, часто могут содержать миллионы строк, klogg предназначен для работы с такими размерами файлов без проблем.

Метод (Method) № 2: разделить на несколько частей (Into Multiple Parts)

Вся проблема с попыткой открыть большие CSV — файлы в том, что они слишком велики. Но что, если вы разделите их на несколько файлов меньшего размера?

Это популярное решение, поскольку оно обычно не требует изучения интерфейса нового текстового редактора. Вместо этого вы можете использовать один из множества разделителей CSV, доступных в Интернете (one of the many CSV splitters available online) , чтобы разбить большой файл на несколько файлов, которые легко открыть. После этого к каждому из этих файлов можно получить доступ в обычном режиме.

Однако это не лучший способ сделать это. Разделение большого файла часто может привести к странным опечаткам или неправильно сконфигурированным файлам. Кроме того, открытие каждого фрагмента по отдельности не позволяет фильтровать все данные сразу.

Способ № 3: импорт в базу данных

Текстовые файлы и файлы .csv размером до нескольких гигабайт обычно представляют собой большие наборы данных. Так почему бы просто не импортировать их в базу данных?

SQL является наиболее распространенным языком разметки баз данных, используемым в наши дни. Существует множество используемых версий SQL (many versions of SQL) , но, вероятно, самой простой из них является MySQL . И, как назло, есть возможность конвертировать файл CSV в таблицу MySQL (convert a CSV file into a MySQL table) .

Это ни в коем случае не самый простой способ работы с большими CSV — файлами, поэтому мы рекомендуем его только в том случае, если вы хотите регулярно работать с большими наборами данных. Если MySQL кажется слишком сложным, вы всегда можете вместо этого импортировать файлы .csv в MS Access .

Метод (Method) № 4: анализ с помощью библиотек Python

Когда вы работаете с файлом .csv с миллионами строк данных, вы, очевидно, не сможете разобраться в нем вручную. Вероятно, вы захотите отфильтровать данные и выполнить определенные запросы, чтобы понять тенденции.

Так почему бы не написать код (write Python code) на Python именно для этого?

Опять же, это не самый удобный метод. Хотя Python — не самый сложный для изучения язык программирования (Python isn’t the hardest programming language to learn) , он представляет собой программирование, поэтому он может быть не лучшим подходом для вас. Тем не менее, если вам приходится ежедневно анализировать очень большие CSV -файлы, вы можете (CSV) автоматизировать эту задачу с помощью некоторого кода Python (automate the task with some Python code) .

Способ № 5: с помощью инструментов премиум-класса

Текстовые редакторы, которые мы видели в первом методе, не были специальными инструментами, предназначенными для обработки CSV . Это были инструменты общего назначения, которые также можно было использовать для работы с большими файлами .csv.

А как насчет специализированных приложений? Неужели нет приложений, созданных для решения этой проблемы?

Есть, на самом деле. CSV Explorer , например, основывается на том самом процессе, который мы описали в последних двух методах ( база данных SQL и код Python ), для создания приложения, способного просматривать и редактировать CSV -файлы любого размера. Вы можете делать все, что ожидаете от инструмента для работы с электронными таблицами, например создавать графики или фильтровать данные в CSV Explorer .

Другой вариант — UltraEdit . В отличие от предыдущего инструмента, это предназначено не только для файлов .csv, но и для текстовых файлов любого типа. Он может легко обрабатывать текстовые и CSV — файлы размером до нескольких гигабайт с интерфейсом, аналогичным многим из бесплатных редакторов, которые мы обсуждали ранее.

Единственным недостатком этих инструментов является то, что они являются приложениями премиум-класса, и для их использования требуется платная лицензия. Вы всегда можете попробовать их бесплатные пробные версии, чтобы проверить их функции, или если вы используете их только один раз.

Как лучше всего открывать большие текстовые (Large Text) и CSV-файлы (CSV Files) ?

В наш век больших данных (Big Data) нередко встречаются текстовые файлы размером в гигабайты, которые трудно даже просмотреть с помощью встроенных инструментов, таких как « Блокнот» (Notepad) или MS Excel . Чтобы иметь возможность открывать такие большие файлы CSV , вам необходимо загрузить и использовать стороннее приложение.

Если все, что вам нужно, это просматривать такие файлы, то программа просмотра больших текстовых файлов (Large Text File Viewer) — лучший выбор для вас. Для их фактического редактирования вы можете попробовать многофункциональный текстовый редактор, такой как Emacs , или воспользоваться инструментом премиум-класса, таким как CSV Explorer .

Такие методы, как разделение CSV — файла или его импорт в базу данных, требуют слишком много шагов. Вам лучше получить платную лицензию на специальный инструмент премиум-класса, если вы много работаете с огромными текстовыми файлами.

How to Open Really Large Text and CSV Files

MS Excеl can dіsplaу 1,048,576 rows. While that may seem like a really largе number in normаl usage, there are plenty of scenarios where that isn’t qυite enough.

Whether you’re looking at log files or large data sets, it’s easy to come across CSV files with millions of rows or enormous text files. Since Excel cannot support files this large, how exactly do you open them? Let’s find out.

Why Can Normal Text Editors Not Open Really Large Files?

A computer has gigabytes of storage, so why can’t text editors open large files?

There are two factors at play here. Some applications have a hardcoded limit on how much data they can display. It doesn’t matter how much memory your PC has, they just won’t use it.

The second issue is RAM. Many text editors do not have a hard limit on the number of rows, but cannot display large files due to memory limitations. They load the entire file into the system RAM, so if this memory isn’t large enough, the process fails.

Method #1: Using Free Editors

The best way to view extremely large text files is to use… a text editor. Not just any text editor, but the tools meant for writing code. Such apps can usually handle large files without a hitch and are free.

Large Text File Viewer is probably the simplest of these applications. It’s really easy to use, works fast and has a very low resource footprint. The only downside? It cannot edit the files. But if you only want to view large CSV files, this is hands down the best tool for the job.

For editing large text files as well, you should try Emacs. Originally created for Unix systems, it works perfectly well on Windows as well, and can handle large files. Similarly, Neovim and Sublime Text are two lightweight IDEs that can be used to open gigabyte-sized CSV text files.

If all you’re looking for is to search for data through large log files, then klogg is just the tool for you. An updating fork of the popular glogg, this application allows you to perform complex search operations through enormous text files with ease. Since computer-generated log files can often have millions of rows, klogg is designed to work with such file sizes without an issue.

Method #2: Split Into Multiple Parts

The whole problem with trying to open large CSV files is that they are too large. But what if you were to split these into multiple smaller files?

This is a popular solution, as it generally doesn’t involve having to learn the interface of a new text editor. Instead, you can use one of the many CSV splitters available online to break up the large file into a number of easy-to-open files. Each of these files can then be accessed normally.

However, this isn’t the best way to go about this. Splitting a large file can often lead to weird typos or improperly configured files. Moreover, opening each chunk separately prevents you from filtering through the whole data at once.

Method #3: Import Into a Database

Text and .csv files extending to multiple gigabytes are generally large datasets. So why not just import them into a database?

SQL is the most common database markup language used these days. There are many versions of SQL in use, but the easiest is probably MySQL. And as luck would have it, it is possible to convert a CSV file into a MySQL table.

This is by no means the easiest method of dealing with large CSV files, so we only recommend this if you want to deal with large datasets on a regular basis. If MySQL sounds too tough, you can always import your .csv files to MS Access instead.

Method #4: Analyze With Python Libraries

When you’re working with a .csv file with millions of rows of data, you’re obviously not going to be able to make much sense of it manually. You probably want to filter the data and run specific queries to understand trends.

So why not write Python code to do just that?

Once again, this is not the most user-friendly method. While Python isn’t the hardest programming language to learn, it is coding, so it might not be the best approach for you. Still, if you find yourself having to parse through really large CSV files on a daily basis, you might want to automate the task with some Python code.

Method #5: With Premium Tools

The text editors we saw in the first method weren’t dedicated tools meant for CSV processing. They were general-purpose tools that could be used to work with large .csv files as well.

But what about specialized applications? Are there no apps out there that are created to solve this problem?

There are, actually. CSV Explorer, for example, builds on the very process we described in the last two methods (SQL database and Python code) to create an app capable of viewing and editing CSV files of any size. You can do everything you expect from a spreadsheet tool like create graphs or filter the data in CSV Explorer.

Another option is UltraEdit. Unlike the previous tool, this is meant not just for .csv files but for any type of text file. It can easily handle text and CSV files ranging to a few gigabytes, with an interface similar to many of the free editors we discussed earlier.

The only drawback with these tools is that they are premium applications, requiring you to get a paid license to be able to use them. You can always try out their free trial versions to check out their features, or if you only have a one-time use.

What Is the Best Way To Open Large Text and CSV Files?

In this age of Big Data, it’s not uncommon to run into text files running into gigabytes, which can be hard to even view with built-in tools like Notepad or MS Excel. To be able to open such large CSV files, you need to download and use a third-party application.

If all you want is to view such files, then Large Text File Viewer is the best choice for you. For actually editing them, you can try a feature-rich text editor like Emacs, or go for a premium tool like CSV Explorer.

Techniques like splitting the CSV file or importing it into a database involve just too many steps. You’re better off getting a paid license of a dedicated premium tool if you find yourself working with huge text files a lot.

Алина Разумовская

About the author

Я компьютерный техник с более чем 10-летним опытом, в том числе 3 года в качестве 店員. У меня есть опыт работы с устройствами Apple и Android, и я особенно хорошо разбираюсь в ремонте и обновлении компьютеров. Я также люблю смотреть фильмы на своем компьютере и использовать свой iPhone для съемки фотографий и видео.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *