Outils personnels
User menu

Chargement des dumps dans MediaWiki

De Dbpedia.fr.

Version du 11 juillet 2012 à 16:09 par Julien.Cojan (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Cette page est inspirée de la documentation de MediaWiki.

J'ai rencontré quelques problèmes lors du chargement des donnée ave mwdump, les erreur stoppent le chargement des pages. Le script suivant permet de découper un dump xml en tronçons pour effectuer l'import par morceaux.

 #!/usr/bin/perl
 #
 # Program to get M wikipage from the Nth that containts the EXPR pattern

 if($#ARGV < 1){
	print $#ARGV;
	print "Missing arguments !\n\tusage : TrunkSize dumpFile\n";
	print $#ARGV;
	exit 0;
}

 $trunkSize = $ARGV[0];
 $dumpFile = $ARGV[1];

 open DUMPFILE, "<", $dumpFile or die $!; # Open the file
 #open(DUMPFILE, $dumpFile);	

 $/ = "</siteinfo>";
 $entete = <DUMPFILE>;
 #print $entete;

 $/ = "</page>";

 $outputFileNb=0;
 $outputPageNb=0;

mainLoop: while(($page = <DUMPFILE>))
{
	if($outputPageNb == 0){ #ie. starting a new output file
		print "creating file extrait-$outputFileNb.xml\n";
		open OUTPUTFILE, ">", "extrait-$outputFileNb.xml" or die $!;
		print OUTPUTFILE $entete;
		print OUTPUTFILE $page . "\n";
		$outputPageNb++;
	}
	elsif($outputPageNb >= $trunkSize-1){ #ie. reached (or passed) the limit
		print OUTPUTFILE $page . "\n";
		print OUTPUTFILE "\n</mediawiki>";
		
		$outputPageNb++;
		print "closing file extrait-$outputFileNb.xml ($outputPageNb pages)\n";
		close(OUTPUTFILE);
		$outputPageNb=0;		
		$outputFileNb++;
	}
	else{
		#print "keep working on file extrait-$outputFileNb.xml\n";
		print OUTPUTFILE $page . "\n";
		$outputPageNb++;
	}	
	
}

close(OUTPUTFILE);
close(DUMPFILE);			# Close the file