Deprecated: Function create_function() is deprecated in /customers/d/c/f/dominikschauer.com/httpd.www/wp-includes/pomo/translations.php on line 208 GDELT und Google BigQuery – Dominik Schauer

GDELT und Google BigQuery

Heute morgen bin ich gleich auf zwei sehr interessante Projekte gestoßen. Zum einem ist da GDELT, zum anderen Google BigQuery.

Was ist GDELT?

GDELT  steht für Global Database of Events, Language and Tone. Eine Selbstbeschreibung des Zwecks von GDELT lautet folgendermaßen:

“GDELT monitors the world’s news media from nearly every corner of every country
in print, broadcast, and web formats, in over 100 languages,
every moment of every day.”

Das Unternehmen stellt der Welt eine mehrere Gigabyte umfassende Datenbank zur kostenlosen Verfügung. Sie kann nicht nur mit Hilfe der Unternehmenswebseite ausgewertet werden sondern auch vollumfänglich heruntergeladen werden. Konkret in der Datenbank zu finden sind Metainformationen zu News-Artikeln, die seit dem 01. Januar 1979 veröffentlicht werden. Metainformationen sind Informationen wie Beispielweise der Erscheinungstag, -monat und -jahr, das Erscheinungsland, aber auch Informationen wie das Thema, der Hauptakteur und die emotionale Stimmung.

Was ist Google BigQuery?

Google BigQuery ist wie der Name verrät ein Angebot von Google; ähnlich wie Google Docs oder Google Drive. BigQuery bietet die Möglichkeit Googles Infrastruktur zu nutzen, um rechenintensive Datenbankabfragen in kurzer Zeit zu bewerkstelligen; ist also vergleichbar mit Amazons Cloudservice. Die Bedienung von BigQuery ist schnell erklärt. Zur Abfrage von Datenbanken werden SQL-artige Anfragen in ein Eingabefeld getippt und mit einem Klick auf “Run Query” die Abfrage gestartet. Hier sind einige Beispiele für eine solche Abfragen. Zunächst eine eigene Abfrage, die anzeigt, wie viele Einträge über Ereignisse in einem bestimmten Land in einem Jahr vorhanden sind.

SELECT count(*) Anzahl, Actor1CountryCode, Year
FROM [gdelt-bq:full.events] 
WHERE Actor1CountryCode != ''
GROUP BY Actor1CountryCode, Year
ORDER BY Anzahl DESC

Die zweite Abfrage stammt von Google-Mitarbeiter Felipe Hoffa, der untersucht hat, in welchen Monaten Chile besonders häufig Erwähnung fand.

SELECT TIMESTAMP(STRING(MonthYear)+’01') month,
       SUM(ActionGeo_CountryCode=’CI’)/COUNT(*) Chile,
FROM [gdelt-bq:full.events]
WHERE MonthYear>0
GROUP BY month
ORDER BY month


Abfragen auf BigQuery können allerdings auch eine etwas komplexere Gestalt annehmen, wie dieses weitere Beispiel von Hoffa bezeugt. Es fragt ab vereinfacht gesagt ab, welche zehn Wörter in den vergangenen 24 Stunden am häufigsten in den Schlagzeilen von Artikeln Erwähnung fanden.

SELECT word, c FROM ( 
  SELECT word, COUNT(*) c FROM ( 
    SELECT SPLIT(SOURCEURL, '-') word FROM ( 
      SELECT REGEXP_REPLACE(REGEXP_REPLACE(LOWER(SOURCEURL), r'.*//[^/]*/', ''), r'[/\._]', '-') SOURCEURL 
      FROM [gdelt-bq:full.events@-86400000-] 
      WHERE DOMAIN(SOURCEURL) IS NOT null 
      GROUP BY SOURCEURL)) 
  WHERE REGEXP_MATCH(word, '^[a-zA-Z]*$') 
  GROUP BY word HAVING c>30) 
  WHERE word NOT IN ( 
SELECT word FROM ( 
  SELECT word, COUNT(*) c FROM ( 
    SELECT SPLIT(SOURCEURL, '-') word FROM ( 
      SELECT REGEXP_REPLACE(REGEXP_REPLACE(LOWER(SOURCEURL), r'.*//[^/]*/', ''), r'[/\._]', '-') SOURCEURL 
      FROM [gdelt-bq:full.events@-1209600000--86400000] 
      WHERE DOMAIN(SOURCEURL) IS NOT null 
      GROUP BY SOURCEURL )) 
    WHERE REGEXP_MATCH(word, '^[a-zA-Z]*$') 
    GROUP BY word 
    ORDER BY c DESC LIMIT 500 
  ) 
) 
ORDER BY c DESC 
LIMIT 10

Unter dem obigen Link findet sich auch eine Erklärung zu einzelnen Teilen der Abfrage. Mit hat es jedenfalls geholfen, meine SQL-Kenntnisse aufzufrischen.

Google stellt die Nutzung von BigQuery ebenfalls kostenlos zur Verfügung, jedenfalls falls man sich auf öffentlich zugängliche Datensätze beschränkt, die zudem bereits von Google gehostet werden. Dazu zählen beispielsweise Eurostat- oder OECD-Statistiken. Die ca. 250 Millionen Einträge der “GDELT-bq:full.events”-Datenbank mit 58 Feldern pro Zeile stellt Google ebenfalls bereit, worauf GDELT und die Suchmaschine gleichermaßen stolz verweisen. Dies ist auch der Grund, warum ich kurz nach GDELT auch auf BigQuery gestoßen bin.

Hier ist ein Beitrag, in dem ich beschreibe, wie ich selbst GDELT und Google BigQuery für eine einfache Analyse benutzt habe.

Leave a Reply

Your email address will not be published. Required fields are marked *