v505 en importeren in mysql


#1

Ik heb net voor het eerst met foondump v5.05 een dump van de cdfoongids gemaakt. Het is werkelijk een prachtig programma geworden, nog nooit zo snel een dump gemaakt geloof ik.

Bij het importeren van de csv files in mysql viel me op dat mysqlimport wat warnings/skipped records gaf. In de *_phonenumber.txt files komt de “skipped records” waarschuwing omdat sommige id|phone combinaties meerdere keren voorkomen. Er is per combinatie maar 1 record nodig dus deze waarschuwing kan genegeerd worden.
In de andere tabellen zitten wel een paar waarschuwingen waar degene die in mysql wil importeren misschien wel rekening wil houden. Af en toe zit er een lege regel in de txt files. Soms levert dat een leeg record op in mysql. Opvallend is dat zo’n lege regel in de txt file altijd volgt op een regel die eindigt op ‘<’.
Ander punt is dat in de txt files af en toe ‘’ voorkomt, mysqlimport ziet dat als escape character. In praktijk betekent dit meestal dat die ‘’ weggelaten wordt in de mysql tabel.
Gelukkig is het vrij simpel om dit aan te passen voor het importeren. Met het volgende sed commando kan je simpel de lege regels verwijderen en ‘’ vervangen door ‘\’:
sed -e ‘s/\/\\/g’ -e ‘/^$/d’


#2

Inderdaad zijn de warnings in *_phonenumber.txt ingecalculeerd. Wel zijn er andere database systemen die niet zo’n handige ‘unique’ functie hebben en we overwegen dus om alsnog het ontdubbelen in de dumper te doen ipv in de import.

M.b.t. de overige warnings gaan we kijken hoe hier iets aan te doen is en of het de moeite waard is (dumpen wordt er langzamer van).