Quel est le meilleur séparateur / délimiteur (s) pour un fichier db en clair?
Quel est le meilleur séparateur/caractère délimiteur(s) pour un texte en clair sur le fichier db?
J'ai considéré en utilisant |
,
<TAB>
;
etc. Mais ils semblent tous être possible de briser lorsque la proximité des entrées ont assez spécial caractères.
Donc, l'expérimenté utilisateurs de base de données, ce caractère délimiteur(s) proposez-vous pour l'utiliser?
source d'informationauteur Meng Lu
Vous devez vous connecter pour publier un commentaire.
Peu importe le personnage que vous choisissez comme votre séparateur, vous aurez envie d'échapper à toute instance de ce caractère dans vos données.
Peut-être tilde(
~
), ou aller à un caractère ASCII haute.De toute façon, si il n'y a aucune chance qu'il pourrait se faufiler dans vos données, vous voulez échapper avant d'écrire votre texte en clair de fichier.
Je pense que la meilleure façon de vous joindre à la chaîne avec un trois cerises '@@@'.
Bien, il y a quelques séparateur caractères en US-ASCII, hex
1c
1d
1e
et1f
. Le texte standard ne doivent pas contenir.Pour un entreposage de données situation où nous avons eu le contrôle sur le fichier source, mais de s'échapper et de qualification étaient lourdes, nous avons été en mesure de faire la décision commerciale qu'un caractère ASCII étendu serait dépouillé de données (si elle se produit jamais, elle n'a pas).
Sur la création de l'délimité fichier source, nous avons enlevé toutes les instances de l' █ (alt+219) dans les données et les utiliser que pour le personnage de délimiteur.
Bonus, ce personnage est vraiment facile à repérer.
Si vous avez l'option d'une chaîne de caractères comme séparateur de colonne, utiliser "" comme délimiteur. Vous pouvez faire une chaîne pour que la matière et vous donne de la souplesse.
Vous pouvez utiliser les caractères de séparation spéciaux (hex 1c -> 1f), mais ils sont non-imprimables, et certaines technologies ont des problèmes de traitement de données contenant.
Donc, plan B, si vos données sont en UTF-8, vous pouvez choisir aléatoirement de caractères UTF-8 qui est extrêmement peu probable à apparaître dans n'importe quelle source de données que vous recevez.
Pourtant, même alors, si vous voulez être sûr que vous n'aurez pas de problèmes, tu ferais mieux de toujours analyser l'ensemble de votre jeu de données pour ce personnage, et s'il apparaît, simplement choisir un autre caractère UTF-8.
J'ai tendance à détester l'encapsulation avec une passion, et d'éviter, autant que possible, comme expliqué dans mon post dans le chapitre "l'encapsulation" ici: https://theonemanitdepartment.wordpress.com/2014/12/15/the-absolute-minimum-everyone-working-with-data-absolutely-positively-must-know-about-file-types-encoding-delimiters-and-data-types-no-excuses/
Si vous ne pouvez pas contrôler les données, n'utilisez pas de texte brut db. Il y a peut être pas de bonne réponse ici. Sans contexte ou les contraintes que c'est une fausse question.
À savoir:
Si j'ai dit que j'allait seulement à accepter des lettres minuscules comme des données, j'ai pu utiliser n'importe quel autre symbole comme un séparateur. Même, dit-on, le numéro 9, et je serais bien. Aucun autre symbole, sauf un minuscule serait mieux que tout autre.
À l'inverse, si dit que je pouvais accepter n'importe quel caractère, je n'ai pas tous les caractères à gauche pour un séparateur, et je serais très désolé de base de données qui ne peut stocker qu'une seule valeur.
Si vous devez essayer trop dur pour obtenir votre base de données en texte brut, vous voulez probablement un binaire db. Avez-vous regardé sqlite? C'est plutôt carrément facile à utiliser, est disponible dans de nombreux contextes, et est livré avec une tonne d'avantages au-dessus d'un texte brut db.
J'ai utilisé un fichier ePUB convertisseur avant et le délimiteur de char a été la notation caractère de devis, n'importe où il avait été utilisé, il serait réécrit pour le fichier que @, simple mais efficace, même si elle n'a détruire l'échantillon de matière en cours de production.
Personnellement j'aime bien les utiliser « comme un caractère délimiteur pour diviser les données dans des fichiers CSV, je ne pense pas que je n'ai jamais trouvé un produit naturel instance de « et » personnellement, voici donc mes deux cents environ.
D'habitude, je préfère les caractères non-imprimables comme "\u0001", j'ai par exemple l'utiliser comme un délimiteur de colonne dans la plupart de mes Azure analyse de Données U-Scripts SQL.