Правильный формат для обмена большими наборами данных с внешним миром?

На моей работе мы часто отправляем и получаем большие наборы данных из разных источников. Мне часто задают вопрос: «В каком формате вы хотите получить данные?»

Обычно я запрашиваю данные в формате TSV, CSV или XML. Я могу легко импортировать все это в нашу среду на основе MS SQL.

Вот мой вопрос, если мои основные соображения 1) простота импорта 2) целостность данных и 3) размер (на диске), существуют ли более идеальные форматы?


person user426724    schedule 09.12.2011    source источник
comment
Как насчет обеспечения согласованного формата, чтобы вам нужно было написать только 1 сценарий: D, и все использовали один и тот же формат: D   -  person xQbert    schedule 09.12.2011


Ответы (2)


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

person Inm0r74L    schedule 09.12.2011

с разделителями табуляции или запятыми обычно работает нормально. Легко импортировать/экспортировать практически в любую систему. Акцент на обычно, однако: данные со встроенными разрывами строк или разделителями столбцов могут быть проблематичными. Данные, разделенные табуляцией/запятой, также легко манипулировать «как есть» с помощью другого программного обеспечения — скриптов perl, javascript, Excel и т. д.

XML также достаточно универсален. Из-за налога на угловые скобки он страдает как от раздувания, так и от отсутствия удобочитаемости для людей: отношение сигнал:шум довольно низкое. Для обработки или манипулирования также требуется программное обеспечение с поддержкой XML. Положительным моментом является то, что XML позволяет явно идентифицировать типы данных. При передаче данных между системами значения даты/времени могут быть проблематичными. XML [предположительно, зависящий от добровольного согласия производителей документов] стандартизирует представление значений даты/времени (ISO 8601, большое спасибо).

Однако вы забыли еще один вариант: используйте JSON, YAML или другие легковесные языки разметки.

person Nicholas Carey    schedule 09.12.2011