Das Leben der Anderen Twitter-Analyse mit Oracle12c, JSON und APEX Carsten Czarski Business Unit Database Oracle Deutschland B.V. & Co KG
About: Carsten Czarski 1973 München Verheiratet zwei Kinder ORACLE Deutschland seit 2001 Verantwortlich für die DB Entwicklercommunity SQL, PL/SQL, APEX; Spatial, XML DB, JSON Community-Arbeit Deutschsprachige APEX Community Webseite DOAG, ODTUG, andere Web 2.0 Blog: sql-plsql-de.blogspot.com Twitter: @cczarski
Twitter-Analyse mit Oracle12c SQL/JSON Twitter-Daten in die DB laden Twitter Daten-Format verstehen Datenstrukturen verstehen Oracle12c SQL/JSON verstehen Abfragen erstellen und Ergebnisse visualisieren 3
Twitter-Daten in die Datenbank laden Verschiedene Ansätze denkbar; auch kommerzielle Anbieter Out-Of-The-Box-Ansatz per Twitter API http://sql-plsql-de.blogspot.de/2015/09/twitter-analyse-mit-nichts-als.html 4
API-Zugang zu Twitter: apps.twitter.com 5
API-Zugang zu Twitter: Applikation erstellen 6
API-Zugang zu Twitter: Applikationsdetails 7
Access Tokens und Secrets 8
Twitter-Zugang mit Java: Twitter4j-Bibliothek 9
Abbildung Java-Code auf PL/SQL Funktionen 10
Twitter-Daten als JSON Direkt von der Twitter API 11
Native JSON Unterstützung in der Oracle Datenbank JSON Dokumente speichern und verwalten JSON als Text speichern (VARCHAR2, CLOB, BLOB) Ohne Schema - volle Flexibilität Kein eigener Datentyp: Nutzung der Standard-Datentypen für Zeichenketten bzw. Binärdaten Indizierung mit einem 'JSON aware' Index API Zugriff auf JSON REST Services Java API (weitere Programmiersprachen in Planung) SQL Abfragen direkt auf JSON-Dokumente Reporting, Analyse und relationaler Zugriff direkt auf JSON-Dokumente 'JSON and SQL duality' 12
SQL/JSON Funktionen JSON in Tabellen mit SQL/JSON Funktionen parsen Externe Tabellen ebenfalls möglich JSON-Daten auch im Hadoop Cluster oder NoSQL DB Oracle Big Data SQL SQL/JSON Funktionen im einzelnen JSON_VALUE extrahiert einzelne, skalare Attribute JSON_QUERY extrahiert JSON-Objekte (Teildokumente) JSON_EXISTS prüft, ob das angefragte JSON-Attribut existiert JSON_TABLE projiziert JSON-Daten als relationale Ergebnismenge JSON_TEXTCONTAINS führt Volltextsuche in JSON-Daten durch 13
Beispiel: Einfache Extraktion eines Attributs select distinct json_value( tweet, '$.user.screen_name' RETURNING VARCHAR2(35) ) from apextweets; JSON_VALUE ------------------------------------------------------------------ AdKosigan Enkitec berkleyp delrez_stephane : 14
Komplexere Analysen... 15
Komplexere Analysen... SQL/JSON Part projects JSON attributes as a relational result. 16
Komplexere Analysen... "Classic" SQL aggegation 17
Visualisierung am Beispiel APEX 5.0 18
Noch mehr Analysen... JSON Attribut: $.created_at 19
Noch mehr Analysen... Hashtag-Kombinationen 20
Noch mehr Analysen... Hashtag-Kombinationen 21
In Kürze erhältlich...
Carsten.Czarski@oracle.com http://tinyurl.com/apexcommunity http://sql-plsql-de.blogspot.com http://plsqlexecoscomm.sourceforge.net http://plsqlmailclient.sourceforge.net Twitter: @cczarski @oraclebudb