Archiv für November 2011

Neues von Google: Cloud Storage & BigQuery v2

Am letzten Samstag fand in Berlin der Google Developer Day Germany statt (nachzulesen unter #gddde  z.B.auf Google+ und Twitter). Dieses Event war das achte der weltweiten Developer Day Tour, bei der Google jährlich seine Neuerungen dem geneigten und technisch interessierten Publikum offenbart.

(Eine Zusammenfassung aller Talks, Slides und vieler Fotosammlungen zum #GDDDE findet Ihr unter https://plus.google.com/104005370658696101293/posts/fp1uRtfH54p )

Thema dieses Blogbeitrags ist neue Produkt BigQuery v2: ein Betriag zur Prediction API folgt in Kürze.

Michael Manoochehri, Developer Advocate für die beiden Themen hatte beide Themen in Berlin vorgestellt, aber auch am Mittwoch vorher im Rahmen einer Veranstaltung bei der Google Technology User Group in München. ( Seine Originalfolien findet Ihr unter http://gdd-2011-cloud-presentation.appspot.com/#1 )

Zu BigQuery:

Mit BigQuery gibt Google Entwickler Werkzeuge in die Hand, große Datenmengen schnell (d.h. mit Antwortzeiten im Sekundenbereich) auswerten zu können. Als technische Schnittstelle steht eine SQL-artige Abfragesprache bereit.

Um Daten mit Hilfe von BigQuery abfragen zu können, muß Google sie erstmal bereitgestellt bekommen: der einzige Weg, um das zu erreichen, führt über den Google Cloud Storage.

Google Cloud Storage

Er ist als großer No-SQL-artiger Datenspeicher implementiert, der die Speicherung von bis zu TB-großen Dateien ermöglicht. Der Zugriff auf die Daten kann dan via Kommandozeile, Web-Interface oder REST-API erfolgen. Zur Authentifizierung von Benutzern steht OAuth 2.0 zur Verfügung: Access Control Lists erlauben die Einschränkung des Zugriffs auf den eigenen Nutzer (private), ausgewählte weitere Nutzer (shared) und den öffentlichen Zugang (public). Die Aktivierung des Speicherplatzes erfolgt über die Google API Console: obwohl eine kostenfreie “Free Tier” (von bis 5GB) vorgesehen ist, müssen bei der Anmeldung Zahlungsdaten angegeben werden.

Mindestens für Entwicklungszwecke ist das Python-basierte GSUtil-Werkzeug hilfreich: es erlaubt die einfache Interaktion mit dem Cloud Storage auf der Kommandozeile z.B. um Daten hochzuladen)

Weiter mit BigQuery…

Das neue ist im Moment, daß BigQuery in einer Version 2 bereitgestellt wird (d.h. eine reduzierte V1-Version lief auch vorher schon): interessierte Nutzer können sich unter https://docs.google.com/spreadsheet/viewform?formkey=dGl4TUlob1RDRndMWVpIb21ORmJPZWc6MA bei Google um Zugang bewerben: das ist auch notwendig, weil das ganze bisher im Rahmen eines Private Beta gezeigt wird. (mal schauen, wie lange es braucht, um Zugang zu bekommen).

Die Objekte & Datenstrukturen innerhalb von BigQuery sehen wie folgt aus:

  • Projekte enthalten 1-n Datensätze, steuern den Datenzugriff (via ACLs) un sind die Basis für die Abrechnung des Services.
  • Datensätze enthalten 1-n Tabellen und können noch granularere ACLs festlegen.
  • Tabellen sind in BigQuery zwei-dimensional definiert (Feldtypen etc. siehe http://code.google.com/intl/de-DE/apis/bigquery/docs/developers_guide.html#tables ).
  • Jobs steuern langlaufende Transaktionen wie Datenimporte, und -exporte.

Die wichtigsten technischen Spezifikationen von BigQuery sind:

  • der Zugang ist über JSON-RPC, REST und Google Apps Script möglich. (eine gute Intro zu Google Apps Script von Ryan Boyd findet sich unter http://bit.ly/tGKPKN )
  • und die Infrastruktur eignet sich zur AdHoc-Abfrage von strukturierten Daten, die im Google Cloud Storage abgelegt sind.

Das ganze ist nützlich, um im BigData-Stil Daten auszuwerten, die die Kapazität des eigenen Notebooks übersteigen: das bedeutet aber auch, daß BigQuery nur eine Lösung für die Ablage und Abfrage von Daten ist: die Logik und das Tooling der Auswertung muß man selbst mitbringen.

Die Logik der Auswertung kann z.B. in Werkzeugen wie R abgelegt sein und auch ablaufen: dafür arbeitet Google an einer Erweiterung zu R (http://code.google.com/p/google-bigquery-r-client/ ), mit der man den BigQuery-Service direkt aufrufen kann.

Neu an der v2 von BigQuery ist, daß die SQL-artige Abfragesprache nun SQL-Joins zwischen Tabellen unterstützt, wobei Michael Manoochehri klar darauf hinweist, dass optimale Antwortzeiten weiterhin bei Abfragen in einer Tabelle zu erwarten sind.

Mit ‘bq‘ existiert auch hier ein Kommandozeilen-Werkzeug, um sehr unkompliziert mit BigQuery kommunizieren zu können.

Hilfreich ist auch noch unter http://code.google.com/intl/de-DE/apis/bigquery/docs/developers_guide.html#csvformat die Beschreibung der CSV-Spezifikationen, damit BigQuery direkt damit arbeiten kann.

Hinterlasse einen Kommentar

Nett: Kerkeling lehnt Griechenlandlösung ab (von titanic-magazin.de)

,

Hinterlasse einen Kommentar

Photo from “Visual Complexity” from Manuel Lima: good overview with good illustrations

Hinterlasse einen Kommentar

Review of the DreamForce event in Munich

I attended the DreamForce event in Munich on 27th of October, which was acclaimed to be the biggest cloud event in Europe: I am not sure of that, but it was very worthwile experience.

My main intention was to evaluate how the well-known backend applications for e.g. CRM from SalesForce can be connected with applications running on the Heroku PaaS infrastructure, which was acquired by SalesForce.  (The background of this is that I am currently looking into business ideas, which can form the basis of startup)

First of all they had a keynote of Hans-Dietrich Genscher, a former german minister of foreign affairs (next to other offices he held): initally I was not completely sure what he can/could tell the audience, but it was a very focused & motivating keynote with some humorous sidenotes. You can see the keynote below:

Regarding my main intention: there seems at the moment not to be an integration between Heroku PaaS and the SalesForce apps. The main answer was all the time that you can make use of the (very good) API of SalesForce from e.g. an Heroku application.

I think especially from a startup perspective there would be a good value add, when you can focus on the design & functionality of your customer-focussing services while the business processes (mainly CRM and Service relevant here) are managed by a mature application in the backend. 

When I used my demo account on SalesForce I was very fond of the Chatter functionality: perhaps easiest explained as social networking enabled message bus for enterprises, which brings employees, business objects and business processes together in a nice Web 2.0 enabled way: it is especially interesting as it left already the annoucement stage and it is already available. (Surprisingly the most participants said in a short survey that they have not seen/used Chatter until now)

From a technical point of view I liked very much the developers corner, which had technical talks during the whole day: not only from SalesForce people, but also consultants, who bring their own experience to to the table (e.g. like the people from Tquila)   

A friend said before on Twitter, that at least last year he saw the event as a marketing only event: I have to admit that this is right when you look at most of the talks (they are just good at marketing), but I got also good ideas on how to look into the SalesForce user group: after all a well spent day. 

P.S.

- The people from TQuila (@tquiladotcom ) have just opened their offices in Munich and are exploring demands/options for a Force.com user/developer group here.

, , , ,

Hinterlasse einen Kommentar

Dev tools for oAuth implementation

I had already quite the situation that I needed to call an #oAuth protected API for e.g. a web application, without having implemented the enduser facing oAuth-Transactions. 

If you want to access Google APIs, you can use Google oAuth Playground (which was presented today) at http://googlecodesamples.com/oauth_playground/index.php .

Unfortunately this tool just serves Googles APIs, so I wanted to share the small code snippet I use to create access token for arbitrary APIs from the python command line:

import tweepy

CONSUMER_KEY = ‘paste your Consumer Key here’

CONSUMER_SECRET = ‘paste your Consumer Secret here’

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)

auth_url = auth.get_authorization_url()

print ‘Please authorize: ’ + auth_url

verifier = raw_input(‘PIN: ‘).strip()

auth.get_access_token(verifier)

print “ACCESS_KEY = ‘%s’” % auth.access_token.key

print “ACCESS_SECRET = ‘%s’” % auth.access_token.secret

You can find the snippet also on Pastebin: http://pastebin.com/np7rip3b

, ,

Hinterlasse einen Kommentar

Follow

Bekomme jeden neuen Artikel in deinen Posteingang.

Schließe dich 732 Followern an