Wikipédia:Adatbázis-lekérdezések

(Wikipédia:ADATBÁZIS szócikkből átirányítva)


A Wikipédia szócikkek szövegei, a laptörténetek, a naplók és minden más adat (a képeket és egyéb fájlokat kivéve) a Wikimédia Alapítvány központi adatbázisszerverén tárolódik. Erről az adatbázisról (az érzékeny adatok, mint pl. felhasználói beállítások vagy nem nyilvános naplók kivételével) néhány hetente másolatok készülnek, amelyek a download.wiki.x.io címről letölthetőek, és egy adatbázis-kezelőbe betöltve szinte bármilyen lista, statisztika vagy egyéb információ kinyerhető belőlük. Ez a lap ehhez nyújt útmutatást. Ha nem tudsz egyedül megfogalmazni vagy futtatni egy lekérdezést, a Wikipédia:SQL-futtatási kérések oldalon kérhetsz segítséget.

Mielőtt saját adatbázist telepítenél – a Quarry

szerkesztés

Ez az útmutató régebben készült. Azóta elérhetővé vált egy webes szolgáltatás, amelynek segítségével saját adatbázis-kezelő telepítése és saját adatbázispéldány letöltögetése helyett az interneten futtathatod a lekérdezéseidet. Azért is érdemes kipróbálni, mert így nem a saját géped erőforrásait fogyasztja a lekérdezés, hanem egy erre felkészített hardverkonfiguráción futtathatod.

A Quarry címe: https://quarry.wmflabs.org/. A bejelentkezéshez az itteni azonosítódat használhatod OAuth hitelesítésen keresztül. A lekérdezéseid mindenki számára láthatóak lesznek.

Az eszköz leírása, egyelőre csak angolul: Research:Quarry. Az adatbázis tábláinak leírását a fejlécben is megtalálod.

Megjegyzések

szerkesztés
  • Ha a vágólap segítségével másolsz ki egy lekérdezést erről az oldalról, bizonyos böngészők az elejére egy * jelet tesznek. Ezt ki kell törölni! (A lekérdezésnek a SELECT szóval kell kezdődnie.)
  • A legtöbb lenti lekérdezés szócikkek címeit adja vissza. Ezek nem tartalmazzák a névteret! A névtér az adatbázisban egy numerikus kódként szerepel, a page_namespace mezőben. A kódokat itt találod meg.
  • Windows alatt a Mysql által visszaadott listát a legegyszerűbben úgy tudod sima szöveggé alakítani, hogy elmented (exportálod) az eredményt Excel fájlba, betöltöd Excel alá, és ott elmented Unicode text formátumban.
  • Egy reguláris kifejezés sima szöveg wikilistává alakítására:
s/(\ |\|)//g;s/^/*\[\[/;s/$/\]\]/

Gyorstalpaló lekérdezések futtatásához MySQL-en Windows alatt

szerkesztés

Előkészületek

szerkesztés

Az előkészületek körülbelül egy órát vesznek igénybe szélessávú kapcsolattal. Ezeket csak egyszer, a legelső alkalommal kell elvégezni:

  • Töltsd le a MySQL-t is a mysql.com-ról. Az ajánlott változat jelenleg (2016. december 20.) a MySQL Community Server 5.7.17.
  • Telepítsd a MySQL-t.
  • A MySQL 2011 októberében aktuális 5.7-es verziójához szükséges a .NET keretrendszer 4. verziójának megléte is.
  • Töltsd le és telepítsd a MySQL Workbencht (ez nem kötelező, de hasznos). A Workbench egy grafikus felhasználói felület a MySQL adminsztrálásához és lekérdezések írásához és futtatásához. A szerver címének 'localhost'-ot adj meg, semmi mást nem kell átállítani.
  • Töltsd le az mwdumper programot és nevezd át mwdumper.jar-ra (az útmutató írásakor mwdumper-1.25.jar).
  • Ha nincs JRE a gépeden, telepítsd fel innen. (Általában van; itt ellenőrizheted. Ha van JRE, egy táncoló figurát fogsz látni néhány sorral a Test your JVM felirat alatt. A reklámszűrők, mint az Adblock, megzavarhatják a tesztet, azokat kapcsold ki előtte!)

Az adatbázis frissítése

szerkesztés

A továbbiakat minden alkalommal meg kell ismételni, amikor frissíteni akarod az adatbázist:

  • Hozd létre a huwiki adatbázist a következő paranccsal (például a MySQL parancssorából, vagy, ha telepítetted, a MySQL Query Browserből):
CREATE DATABASE huwiki;
Ha már létezik ilyen néven adatbázis, töröld ki előbb, vagy válassz más nevet. De elvileg az is elég, ha a tables, revisions és a text táblákat csonkolod (truncate).
  • Töltsd le azt az adatbázis dumpot a download.wikimedia.org-ról, amin az SQL lekérdezéseket futtatni akarod. (Ez általában a legfrissebb pages-articles fájl, ha csak a lapok aktuális állapotaira vagy kíváncsi; és a legfrissebb pages-meta-history, ha a korábbiakra is. Bővebb információért válaszd ki a legfrissebb dátumot itt: http://download.wikimedia.org/huwiki/.) Vedd a figyelőlistádra {{A dump dátuma}}(?) sablont, ha mindig értesülni akarsz a legújabb változat megjelenéséről.
  • Tömörítsd ki a letöltött adatbázist vagy adatbázisokat. A 7z kiterjesztésűekhez a 7-zip tömörítőre is szükséged lesz; a gz-t a legtöbb modern tömörítő ismeri. A bz2 kiterjesztésű fájlokat nem szükséges kitömörítened; ha valamiért mégis szeretnéd, használd a bzip tömörítőt. A gz és bz2 fájlokat a WinZip programmal vagy (a megfelelő pluginek birtokában) Total Commanderrel is kitömörítheted. VIGYÁZAT: a kitömörített fájl sokkal nagyobb lesz, mint az eredeti. Az aktuális verzióhoz ezerötszáz megabájt, a teljes laptörténethez több tíz gigabájt hely kell! Az adatbázisba importáláshoz pedig még egyszer annyi helyre lesz szükséged a MySQL által használt meghajtón.)
  • Ha a kitömörített fájl nem sql, hanem xml kiterjesztésű, konvertáld sql-lé az alábbi paranccsal:
java -jar mwdumper.jar fájlnév.xml --output=file:fájlnév.sql --format=sql:1.5
Ahol fájlnév a fájl neve (pl. pages-meta-history). Ha a fájl bzip tömörítésű, kitömörítés nélkül is konvertálhatod:
java -jar mwdumper.jar fájlnév.xml.bz2 --output=file:fájlnév.sql --format=sql:1.5
A konvertálás a fájl méretétől és a géptől függően hosszú ideig tarthat, miközben a program működéséről 1000 laponként üzenetet kapunk.
Dump beolvasása közvetlenül az adatbázisba (példa, sortörések nélkül, előtte létre kell hozni a táblákat a következő pont szerint):
java -client 
  -classpath mwdumper-1.16.jar;mysql-connector-java-5.1.22\mysql-connector-java-5.1.22-bin.jar;commons-compress-1.4.1.jar 
  org.mediawiki.dumper.Dumper "--output=mysql://127.0.0.1/huwiki?user=root&password=jelszó" 
  --format=sql:1.5 huwiki-latest-pages-articles.xml.bz2
Szükséges modulok:
Lásd még mw:Manual:MWDumper#Direct connection to MySQL.
  • Válaszd ki a huwiki adatbázist (use huwiki; vagy duplakattintás a Query Browserben), és töltsd le és futtasd le a tables.sql fájlt (Query Browser File menüpontjában a Load Script paranccsal + Execute gombbal, vagy a
mysql -u root -p huwiki < tables.sql
parancssori utasítással).
  • Állítsd vissza az adatbázist a letöltött SQL fájlból. Ugyanúgy kell, mint az előző pontban, csak tables.sql helyett az mwdumper által készített sql fájl nevét add meg.
  • Várd meg, amíg a MySQL végrehajtja az adatbázis visszaállítását (ez jó néhány percbe beletelhet).
  • Ha a MySQL elkészült a visszaállítással, kezdheted futtatni a lekérdezéseket. Kezdetnek próbálkozz meg néhány példával erről az oldalról. Egyszerűen csak gépeld be őket soronként, a sorok végén entert ütve. A legutolsó sort pontosvesszővel zárd.

Problémák

szerkesztés

Ha bármi problémád vagy kérdésed van az itt leírtakkal, jelezd a vitalapon.

MySQL server has gone away
nyisd meg szerkesztésre a MySQL könyvtárában a my.ini fájlt, keresd meg a [mysqld] szöveget, és írd be alá ezt: max_allowed_packet = 16M
Úgy tűnik, nem elég egy helyen állítani, lásd http://dba.stackexchange.com/questions/45087/max-allowed-packet-in-mysql.
"duplicate entry valami for key" hibát ad, ahol valami egy szócikk neve (előtte esetleg egy szám és egy kötőjel), az ékezetes betű helyén kérdőjellel
karakterkódolási probléma. Ha rájössz, hogy kell megoldani, feltétlenül írd ide :) (valami valahol nem UTF-8-ra van állítva)

Innentől lefelé elavult

szerkesztés

Lásd még

szerkesztés

Külső hivatkozások

szerkesztés