Pourquoi continuons-nous à utiliser csv?
J'ai récemment effectué un changement pour travailler le domaine de la santé et malgré le travail merveilleux dans les normes de transfert de données, tous les transferts de données sont dans [~ # ~ # ~ ~], à la fois pour signaler aux organisations externes et pour les migrations de données lors de la mise en œuvre de nouveaux systèmes.
Malheureusement, l'utilisation de CSV est la cause de la répétition sans fin des mêmes erreurs stupides, avec le même temps de gaspillage de développeurs. (mauvais échapper, défaillant de gérer les champs nuls, etc.)
Je sais que nous pouvons faire mieux, et tout entre JSON et XML (selon le cas) iraient bien. (La plupart du temps, il s'agit de données d'une MS SQLSERVER 2005 à une autre!)
Je me sens comme si chaque fois que je vois ça se produire, je regarde littéralement un développeur gaspiller des anothéros.
Alors, pourquoi continuons-nous à se bloquer mutuellement? Quand allons-nous nous arrêter?
Dans votre cas, il semble que le CSV ne soit pas bon en raison de son manque de spécification difficile.
Pour les données non triviales, ce n'est pas le bon choix.
Pourquoi/quand est le CSV un bon choix? Probablement trop d'instances à mentionner, les avantages de la simplicité pour les données plates sont évidents. Tant que les données sont désinfectées/échappées correctement, il n'y a aucun problème. De manière générale, tous ces cas seraient simples/triviaux. Bien entendu, le délimiteur standard apparaissant dans le contenu est souvent une douleur lorsqu'il s'agit de CSV.
Mais si vous faites quelque chose de plus impliqué que d'obtenir un client non technique pour envoyer des données d'une feuille Excel ou un autre cas d'utilisation similaire, le CSV est probablement insuffisant pour une utilisation sérieuse.
XML est un très meilleur ajustement (oui encore plus que JSON), car vous êtes capable de faire des spécifications de schéma standardisées détaillées pour cela. (Sans parler que les spécifications/schémas bénéficient de la flexibilité de plusieurs styles de mise en œuvre, XSD, DTD & Relax NG)
Pour les systèmes de boucle fermée, en particulier lorsque la bande passante est une préoccupation, Json peut être un meilleur ajustement que XML, mais l'absence de langage de spécification de schéma (s) l'empêche-t-elle souvent des applications de niveau d'entreprise.
Permettez-moi de jeter quelques points en faveur de la CSV:
Rétrocompatibilité. Si votre service Web Exter externe gère le CSV et tous vos outils existants de la CSV, aucune autre partie n'a de motivation pour passer à un nouveau service. Pourquoi votre org externe pourrait-il commencer à soutenir un format différent? Personne qu'ils fonctionnent avec peuvent l'utiliser! Pourquoi commenceriez-vous à produire un format différent? Aucune des organisations dont vous travaillez l'acceptez!
Le réel problème que je vois ici est, Pourquoi vos développeurs sont-ils rouler leur propre code de CSV à chaque fois? S'ils ont utilisé une bibliothèque de CSV stable et solide, elles ne seraient pas avoir les problèmes que vous décrivez. Les problèmes sont causés par les développeurs qui lancent leur propre solution au lieu d'utiliser une bibliothèque et je ne vois honnêtement pas comment vous déplacer vers JSON ou XML fixe magiquement cela. Vous auriez toujours des gens qui essaient de les réconforter au lieu d'utiliser une bibliothèque.
CSV est un peu plus rapide, taille plus petite, très facile à gérer (même dans Excel) et de nombreuses applications existantes le comprennent, c'est une largement utilisé standard.
C'est toujours un premier choix dans de nombreuses situations.
Personnellement, j'aime beaucoup ce format. Mais j'utilise aussi Json, mais pour d'autres applications telles que l'interface utilisateur Web.
D'abord et avant tout, car même si consommer Les données CSV peuvent être (légèrement) non triviales, la génération de celle-ci est extrêmement facile.
Je signalerais également que Ni Json ni XML ne sont vraiment plus faciles à obtenir (pour le producteur ou le consommateur). En fait, il faut à peine regarder autour de tout le tout pour savoir que --lots des personnes tentent d'utiliser des regexnes pour analyser les données XML, même s'il n'y a absolument aucune question que cela ne peut pas et ne fonctionnera pas.
La plupart des problèmes qui peuvent (et faire) surviennent avec le CSV peuvent (et faire) surgirent également avec JSON et XML. XML, en particulier, ajoute de nombreux problèmes potentiels. Une bibliothèque d'analyse des données XML est généralement plus grande, plus lente et plus difficile à utiliser qu'une bibliothèque similaire pour les données CSV.
Premièrement, je suis d'accord sur le fait qu'il y a des problèmes très réels avec le format:
NULL
et ''
, qui est un problème lors de l'importation de fichiers CSV dans des bases de données SQL.&#xNNNN;
ou json \uNNNN
) signifie qu'il n'y a pas de moyen standard de représenter des caractères de contrôle ou des caractères non-ASCII.Mais d'autre part:
Étant donné que beaucoup d'analystes utilisent Excel (pour les tables de pivotement et telle), et il est beaucoup plus facile de produire CSV que de produire le format Native Excel.
Note de bas de page: Compte tenu du nombre de problèmes que j'ai vus avec Excel Manipulation de fichiers CSV, comme en supprimant les zéros de premier plan et perdre de la précision, c'est probablement un faux sentiment d'être plus facile.
S'il y a une chose tort avec le CSV, c'est que le CSV semble si simple que de nombreux développeurs essaient d'inventer leurs propres analyseurs/écrivains et ultérieurement sur le blâme CSV pour ne pas manipuler correctement. Avec un bon analyseur de CSV (beaucoup de bonne chance), il n'y aura aucun problème du tout.
Certains mentionnés CSV ne sont pas bons pour les données non triviales, mais je ne suis pas d'accord. XML permet des données non triviales car différents types de données peuvent être placés dans différents étiquettes "conteneur". Avec CSV, vous pouvez toujours mettre des données différentes dans différents fichiers pour obtenir le même effet.
En outre, à mon avis, utiliser XML pour le transfert de données va fondamentalement à l'encontre de l'objectif de XML - Transfert de données implique généralement un contrat stable entre les fournisseurs et les consommateurs, tandis que XML est censé porter des informations extensibles sous réserve d'une interprétation lorsqu'elle est consommée.
Je suppose que les CSV sont simplement bonnes lorsque vous n'avez que des données de texte simples, avec seulement des virgules et des points de départ de Semicolon/Endline à la fin.
Les données architecturales des arbres ou les données composées peuvent difficilement être utilisées avec CSV.
CSV est juste un tableau 2D uni de texte comme dans Excel, rien de beaucoup ...
C'est vraiment tout sur les ordinateurs centraux et Excel ici.
Mainframes parce que ces anciens systèmes ont compris comment communiquer à l'aide de CSV. Donc, les grandes applications qui vident les données peuvent la lire et l'écrire et n'ont aucune raison de changer maintenant.
Excel parce qu'il peut ouvrir directement des CSV. En fait, il prend en charge l'extension .csv lorsque vous l'installez. Les utilisateurs cliquent simplement sur l'icône Excel légèrement amusante et il s'ouvre et fait une belle grille qu'ils peuvent se disputer avec.
Maintenant, les versions modernes d'Excel sont tout à fait capables de lire, disent, XML, directement. Mais pour le faire, un utilisateur doit comprendre un peu plus que "double-cliquez sur cette image". Et double-cliquez sur la bonne image peut être trop à poser dans certaines industries. . .