Ааа… надежный файл CSV (значения, разделенные запятыми)! За десять лет до появления первого персонального компьютера (это с 1972 года) файл CSV является одним из самых распространенных и полезных типов файлов. Одно из самых распространенных применений: передача данных между базами данных, часто CSV to SQL.

Что такое файл CSV?

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

Однако файлы CSV не стандартизированы (хотя есть некоторые основные правила). Использование запятой вводит в заблуждение, потому что вы часто найдете двоеточия, пробелы или одинарные или двойные кавычки вокруг данных, что делает поля декодирования неоднозначными. Лучше всего думать о файлах CSV как о более широком семействе файлов со схожими характеристиками. Часто еще можно легко конвертировать данные, например CSV в SQL или любой другой конвертер БД.

W3C недавно попытался стандартизировать CSV-файл, внедрив набор рекомендаций по созданию табличных данных.

Почему CSV все еще существует?

IBM Fortran впервые поддержал файлы CSV в 1972 году.

ВикиКоммонс

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

ВикиКоммонс

Так уж вышло, что РСУБД были разработаны примерно в то же время, и CSV — отличный способ передачи данных между несовместимыми (читай: проприетарными) форматами. Например, экспорт из одной системы баз данных в CSV, преобразование CSV в SQL, а затем импорт этого SQL в другую систему баз данных. Многие технологии баз данных имеют встроенную поддержку файлов CSV, например импорт MySQL в CSV.

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

Как и все, ограничения

Несмотря на широкое распространение, формат CSV имеет свои ограничения. Одной из них является невозможность представления иерархических данных, поэтому форматы JSON и XML преуспели в качестве еще одной формы преобразователя БД / передачи данных. CSV также не имеет способа указать, какой набор символов используется (например, Unicode, ASCII), поэтому об этом необходимо сообщать отдельно или определять на принимающей стороне, если это возможно. (SQLizer поддерживает как символы Unicode, так и символы ASCII.)

Кроме того, базы данных, включающие несколько отношений, нельзя экспортировать как один файл CSV.

Некоторое время, потому что это работает

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

SQLizer преобразует файлы CSV в базы данных SQL вместе с определениями таблиц и операторами INSERT. Конвертируйте файл CSV сейчас. Первоначально опубликовано на blog.sqlizer.io.