404 Posted July 2, 2011 Report Share Posted July 2, 2011 Ir radusies vajadzība pēc kādiem pamatīgākiem(vēlams simtos MB) XML feediem priekš testiem.Ir sastopami kādi saiti,kuri ko tādu servē online bez reģistrācijas? Valoda un saturs nebūtu svarīgi.Pačekoju,ka Stack Overflow piedāvā ap 500MB dumpu,bet zipotu, Wikipedia >30Gb velk uz otru galējību,bet internetveikali un rentail saiti parasti dod pieejas tikai klientiem.Būšu pateicīgs,ja kādam ir krājumā kādas saites ar ko padalīties :) Quote Link to comment Share on other sites More sharing options...
briedis Posted July 2, 2011 Report Share Posted July 2, 2011 Kur problēmas pašam uzģenerēt kaut kādas muļķības? Quote Link to comment Share on other sites More sharing options...
404 Posted July 2, 2011 Author Report Share Posted July 2, 2011 (edited) Gribējās patestēt parseri uz reāliem,bet apsveru arī tādu domu,ja nekas piemērots neatradīsies.Ir jau pašam pa kādam nelielam,bet ģenerēt pārsimts megus ar randoma contentu nav iekāriena klasi rakstīt :D Edited July 2, 2011 by 404 Quote Link to comment Share on other sites More sharing options...
briedis Posted July 2, 2011 Report Share Posted July 2, 2011 Nu gan problēmas padsmit rindiņas uzrakstīt :) Quote Link to comment Share on other sites More sharing options...
404 Posted July 2, 2011 Author Report Share Posted July 2, 2011 Pie maza jā,bet kur ņemt saturu katram tagam,ja tam ir jābūt unikālam,un rezultāts iet kā update iekš db? Ģenerēt randoma ciparus ? :D Nu ir man viens tāds XML ap 97 000 rindām. Izmērs ap 3MB. Jau tādu saģenerēt no izdomātiem datiem būtu problēmas.Es nestādos priekšā,kā to izdarīt 100 reizes lielākam. Quote Link to comment Share on other sites More sharing options...
Rincewind Posted July 2, 2011 Report Share Posted July 2, 2011 Datus ģenerēt nemaz nav grūti. Reku piemērs no mana koda: public function actionRandomUsers(){ $names=array('Eriks','Jānis','Juris','Imants','Pauls','Alberts','Uldis','Miervaldis','Ernests', 'Rūdolfs','Fricis','Māris','Aleksandrs','Alfreds','Roberts','Arturs','Andris','Valdis','Atis','Kārlis'); $last_names = array('Ādamsons','Akuraters','Bankovskis','Barons','Bels','Birznieks-Upītis', 'Blaumanis','Brīvzemnieks','Čaklais','Čaks','Eglītis','Grīns','Jaunsudrabiņš', 'Kolbergs','Lācis','Pumpurs','Skalbe','Sudrabkalns','Vācietis','Ziedonis'); $emails=array('@inbox.lv','@gmail.com'); for($i=0;$i<200;$i++){ $user = new User(); $user->first_name=$names[array_rand($names)]; $user->last_name=$last_names[array_rand($last_names)]; $user->email=$user->first_name.'.'.$user->last_name.$emails[array_rand($emails)]; $user->phone=rand(11111111,99999999); $user->type=1; $user->save(); } } Uztaisi sev lielāku vārdu masīvu un ņem pa kādiem 20 random vārdiem katram tagam, būs gana unikāls saturs. Quote Link to comment Share on other sites More sharing options...
404 Posted July 2, 2011 Author Report Share Posted July 2, 2011 Arī variants :) Šis uzvedināja uz ideju vienkārši sasplitot vārdus arrayā no lorem ipsum vai kaut vai kādas ziņu lapas rindkopas.Tur varētu būt pietiekami. Lab,šim būtu ideja atrasta. No gatavajām vēl iedomājos,ka mūsu pašu kāda vairumnieku bāzes produktu liste vēl varētu būt piemērota (varbūt kādam kaut vai veca ir aizķērusies?) Ja nemaldos,tad GNT un kas nu tur vēl bija,arī izmērs ir iespaidīgs. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 2, 2011 Report Share Posted July 2, 2011 Rincewind pasvieda ideju... uztaisīju Savu implentāciju. public function populate_users($count, $is_unique = false) { $names = array( 'James', 'John', 'Robert', 'Michael', 'William', 'David', 'Richard', 'Charles', 'Joseph', 'Thomas', 'Christopher', 'Daniel', 'Paul', 'Mark', 'Donald', 'George', 'Kenneth', 'Steven', 'Edward', 'Brian', 'Ronald', 'Anthony', 'Kevin', 'Jason', 'Matthew', 'Gary', 'Timothy', 'Jose', 'Larry', 'Jeffrey', 'Frank', 'Scott', 'Eric', 'Stephen', 'Andrew', 'Raymond', 'Gregory', 'Joshua', 'Jerry', 'Dennis', 'Walter', 'Patrick', 'Peter', 'Harold', 'Douglas', 'Henry', 'Carl', 'Arthur', 'Ryan', 'Roger' ); $surnames = array( 'Smith', 'Johnson', 'Williams', 'Jones', 'Brown', 'Davis', 'Miller', 'Wilson', 'Moore', 'Taylor', 'Anderson', 'Thomas', 'Jackson', 'White', 'Harris', 'Martin', 'Thompson', 'Garcia', 'Martinez', 'Robinson', 'Clark', 'Rodriguez', 'Lewis', 'Lee', 'Walker' ); if ($is_unique === false) { for ($i = 0; $i < $count; ++$i) { $people[] = $names[mt_rand(0, count($names) - 1)] . ' ' . $surnames[mt_rand(0, count($surnames) - 1)]; } } else { if (count($names) * count($surnames) < $count ) { throw new Exception('Can\'t generete so many unique results! Try to set \'$is_unique\' to false.'); } for ($i = 0; $i < count($names); ++$i) { for ($j = 0; $j < count($surnames); ++$j) { $people[] = $names[$i] . ' ' . $surnames[$j]; } } shuffle($people); $people = array_slice($people, -$count); } return $people; } Tiek ģenerēti pilnie vārdi. Vārdi un uzvārdi ir plaši sastopami Amerikā... tā kā var pat uzģenerēt kādu! Izmantošana: $people = populate_users(10, true); $output = ''; foreach ($people as $key => $person) { $output .= $person . '<br />'; } Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted July 2, 2011 Report Share Posted July 2, 2011 Pie maza jā,bet kur ņemt saturu katram tagam,ja tam ir jābūt unikālam,un rezultāts iet kā update iekš db? un kāpec gan tie nevarētu būt cipari ? ja tagi ģenērējas ar ciklu, tad vienkārši izmanto to pašu cikla skaitītāju, + var pielikt kaut kādus vārdus no masīva ar garantiju, ka visi dati būs unikāli .. Quote Link to comment Share on other sites More sharing options...
404 Posted July 2, 2011 Author Report Share Posted July 2, 2011 Nu ar jau it kā varētu,kaut vai time() + $i pielikt.Vienīgi db tad baigā putra būtu,ka neko nevar saprast.Reālam fīdam vismaz smuki var kontentu atškirt un pasekot kas ir importēts,un kas varbūt trūkst.Tāpat nāk kādiem tagiem atribūti,subkategorijas u.t.t,ko būtu interese iebarot. Lai nu kā,bet pati ideja jau der tīri labi.Neizdevās man Stackoverflowa dumpu līdz galam novilkt.Kad izdosies,patestēšu uz šamo kā stress testu.Vajadzētu pilnībā pirmajam aplauzienam pietikt :) Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted July 3, 2011 Report Share Posted July 3, 2011 Nu ar jau it kā varētu,kaut vai time() + $i pielikt.Vienīgi db tad baigā putra būtu,ka neko nevar saprast.Reālam fīdam vismaz smuki var kontentu atškirt un pasekot kas ir importēts,un kas varbūt trūkst. Izmantojot cikla skaitītāju tieši 'putru' var novērst, jo: 1. zināsi kurā brīdī parādās kļūda - reāli cik daudz tagu tika apstrādāts 2. atsevišķiem tāgiem taču var pielikt tāga nosaukumu - piem: "kategorija_1_99999n", "subkategorija_10_99999n". 3. zināsi precīzi cik daudz datu ir - nevis pēc apjoma Mb, bet pēc skaita Piedevām šādu 'datu ģenerātoru', prātīgāk ir rakstīt kāda citā valodā , kaut vai paskālā. P.S. Vari uzrakstīt algoritmu, un palūgt lai kāds zinošāks, pārnes šamo uz paskālu/c++ etc.. Quote Link to comment Share on other sites More sharing options...
404 Posted July 3, 2011 Author Report Share Posted July 3, 2011 Izskatās ka atkritīs vajadzība pēc ģenerēšanas,bet vienalga paldies par idejām. Pasmēlos gatavus no šejienes. Dabūtais rezultāts no 1 839 388 rindu (436MB) XML: 210.8 sec (neko nerakstot db) Pašam jau izskatās ka būs ok,lai gan nav ne jausmas cik būtu normāli izspiest no tāda SAX bāzēta varianta. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 3, 2011 Report Share Posted July 3, 2011 Paldies par linku! Quote Link to comment Share on other sites More sharing options...
404 Posted July 3, 2011 Author Report Share Posted July 3, 2011 Lūdzu :) Pašam ar noderēja.Forums jau pats par sevi viens no labākajiem.Skatos ka šamajam pat ir gatavi risinājumi dumpu importam. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 3, 2011 Report Share Posted July 3, 2011 Nepatīk vienīgais, ka "staķī" nevar pievienot draugus. Un vēl nevar prasīt apakšjautājumus. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.