Das „Project Gemini“ ist der Code-Name für ein Excel 2010 Add-In Projekt, welches für Benutzer echte „Self Service Business Intelligence“ ermöglichen soll. Gemini besteht aus drei Komponenten:
– | Das Excel Add-In mit eigener Benutzeroberfläche und eigenem Ribbon. Wenn Sie das Add-In verwenden, können Sie über 100 Millionen Datensätze importieren, diese in Beziehung zueinander setzen, beispielsweise in neuen Spalten formelbasiert neue Werte errechnen oder Auswertungen in Pivot-Tabellen erstellen. Sie müssen keine Kenntnisse in Datenbankabfragesprachen wie T-SQL oder MDX erwerben. Zudem können Sie Ihre Lösungen auf einer Sharepoint Website bereitstellen. |
– | Ein Add-In für Sharepoint 2010 ermöglicht Ihnen die über das Excel Add-In erstellten Arbeitsmappen zu verwalten, Rechte zuzuweisen und auch weitere Analysen durchzuführen. Die Excel Services sollten auf dem Sharepoint Server aktiviert sein. |
– | Letzte Komponente von Gemini ist die ausgefeilte neue Speicherverwaltung, die eine spaltenbasierte Kompression der Daten vornimmt („column-based compression“). Diese Speicherverwaltung ermöglicht auch erst die Integration von Millionen von Zeilen in die Lösung. |
Microsoft war so freundlich, mich zum Einen auch an dieser Preview teilnehmen zu lassen (Danke an dieser Stelle) und zum Anderen den Teilnehmern ein Tutorial für Gemini zu Verfügung zu stellen. Dieses enthält sowohl ein Beispiel für einen Microsoft SQL Server als auch – für diejenigen unter uns, die keinen SQL Server zur Verfügung haben – eine Access 2007 Datenbank. Im Verlauf des Artikels lehne ich mich teilweise an einige Schritte des Tutorials an. Der Einfachheit halber habe ich mich für die Access Datenbank entschieden, denn zum Einen muss ich gestehen nicht viel Erfahrung mit dem SQL Server zu haben und zum Anderen erschien mir der Installations- und Konfigurationsaufwand des SQL Servers zu hoch. Die Verwendung des Sharepoint Servers 2010 steht ausser Frage, denn einerseits steht dieser noch unter der NDA und anderseits hätte auch dieser installiert werden müssen.
Im Tutorial ist die Datenbank AW_CompanySales.accdb enthalten, die einige Daten-
tabellen zu einer fiktiven Firma „Adventure Works Cycles“ enthält; ein Hersteller von Fahrrädern. In der obigen Abbildung habe ich einen Screenshot der Beziehungen innerhalb dieser Datenbank gemacht, das kann später für das Verständnis einzelner Beziehungen sinnvoll sein. Wir sehen, dass die Tabelle „Total Sales“ Verbindungen zu den Tabellen „Product“ (Produkttabelle), „SalesDate“ /(Verkaufsdati), „Currency“ (Währungen), „Geography“ (Standorte) und weiteren Tabellen hat. Folgend eine Abbildung der Entwurfsansicht der Tabelle „Total Sales“ in Access 2007. Ein kleiner Hinweis: ich habe, um die obere Ansicht möglichst übersichtlich anordnen zu können einige Felder in der Tabelle „Total Sales“ umsortiert. Übrigens, die Tabelle enthält 1.375.079 Datensätze.
Nach der Installation des Add-Ins für Excel (das .NET Framework 3.5 SP1 und Office 2010 müssen zuvor installiert worden sein), starten wir Excel 2010 und finden einen neuen Ribbon vor, wie folgend zu sehen:
Interessanterweise sind einige der Beschriftungen für die Buttons in Deutsch, obwohl ich zuvor auch Office 2007 auf Englisch umgestellt hatte und Office 2010 sowieso in Englisch installiert ist. Scheint so, als würde das Add-In auf einige bestehende Komponenten zugreifen. Lassen Sie uns nun die Daten aus der Datenbank importieren. Dafür klicken wir auf „Daten vorbereiten und Laden“ (sollte in Englisch „Load and Prepare Data“ heißen). Es öffnet sich ein neues Fenster, welches sich wie folgt präsentiert:
Auch hier sind einige Beschriftungen in Deutsch, andere in Englisch. Es gibt drei Möglichkeiten Daten zu importieren; erstens aus einer Datenbank, zweitens aus einem Datenfeed und drittens aus einem Bericht. Da wir die Access Datenbank importieren möchten, wählen wir erstere Möglichkeit. Wir erhalten folgendes Fenster, welches mir irgendwie bekannt vorkommt, ich es auf die Schnelle aber nicht gefunden habe. Vielleicht täusche ich mich aber auch.
Nach Auswahl von „Microsoft Access“ erhalten wir folgenden Dialog, wo wir die Access auswählen.
Wir werden nun gefragt, ob wir Tabellen und Sichten importieren möchten oder eine SQL Abfrage angeben möchten. Wir entscheiden und für ersteres und erhalten eine Liste aller in der Datenbank vorhandenen Tabellen.
Wenn wir in die Felder unter „Anzeigename“ klicken, können wir diesen editieren und zum Beispiel aussagekräftigere Namen verwenden; ich belasse es jedoch bei den englischen Bezeichnungen, da ich später diesen Artikel auch in Englisch publizieren möchte. Übrigens, wenn wir auf „Vorschau anzeigen und filtern“ klicken, erhalten wir für die markierte Tabelle eine Vorschau der Daten, die auch mit einem Filter belegt werden kann.
Sobald ich einen Filter gesetzt habe und den Dialog mit „Ok“ beende, wird in der Liste der Tabellen unter der Spalte „Filterdetails“ der Text „Angewendete Filter“ angezeigt, welcher auch anklickbar und in einem separaten Fenster mit folgende Information als Text anzeigt:
Ausgewählte Spalte(n): ArabicDescription, ChineseDescription, Class, Color, DaysToManufacture, DealerPrice, EndDate, EnglishDescription, EnglishProductName, FinishedGoodsFlag, FrenchDescription, FrenchProductName, GermanDescription, HebrewDescription, JapaneseDescription, ListPrice, ModelName, ProductAlternateKey, ProductKey, ProductLine, ProductSubcategoryKey, ReorderPoint, SafetyStockLevel, Size, SizeRange, SizeUnitMeasureCode, SpanishProductName, StandardCost, StartDate, Status, Style, ThaiDescription, TurkishDescription, Weight, WeightUnitMeasureCode.
Angewendeter Filter: ([ProductAlternateKey] = ‚BA-8327‘ OR [ProductAlternateKey] = ‚BB-7421‘ OR [ProductAlternateKey] = ‚BB-8107‘ OR [ProductAlternateKey] = ‚BB-9108‘ OR [ProductAlternateKey] = ‚BC-M005‘ OR [ProductAlternateKey] = ‚BC-R205‘ OR [ProductAlternateKey] = ‚BE-2349‘ OR [ProductAlternateKey] = ‚BE-2908‘)
Für den weiteren Import lösche ich jedoch den Filter, denn wir möchten ja alle Daten importieren. Wenn wir auf „Next“ klicken, dann erhalten wir eine Zusammenfassung angezeigt. Stellt uns das Ergebnis zufrieden, können wir den Import mit „Finish“ starten. Während der Bearbeitung wird uns ein Statusfenster angezeigt, welches über die Abläufe informiert.
Wie sie im rot umrandeten Bereich sehen können, sind für die Tabelle „Total Sales“ über 1 Million Zeilen importiert worden. Das Ganze hat, inklusive der Ferstigstellung des Punktes „Data Preparation“ auf meinem Rechner ca. 3 Minuten gedauert. Wir schließen nun den Dialog und schauen uns die Auswirkungen im Hauptfenster an.
Wir sehen nun im unteren Bereich des Fensters die importierten Tabellen in Form von Reitern, wenn wir einen Rechtsklick auf eine der Spaltenköpfe durchführen, eröffnen sich einige Möglichkeiten zu Verwaltung der Spalte. Interessant ist insbesondere die Möglichkeit direkt zu der verknüpften Tabelle zu springen (wenn vorhanden). Sie erinnern sich an das erste Bild in diesem Beitrag? Richtig, „CurrencyKey“ ist mit der Tabelle „Currency“ verknüpft.
Wenn wir möchten, können wir über einen Klick auf „Verwalten Beziehungen“ uns die Beziehungen einzelner oder aller Tabellen in einem gesonderten Fenster anzeigen lassen. Von dort aus können wir auch neue erstellen oder bestehende löschen.
Schauen wir uns ein bißchen weiter in der Tabelle „Total Sales“ um. Wenn wir ganz nach rechts scrollen, sehen wir die Spalte „Spalte hinzufügen“. Ein Doppelklick auf den Spaltenkopf ermöglicht das Eintragens eines Namens. Zum Testen habe ich einfach mal den Namen der bestehenden Spalte „UnitPrice“ eingetragen. Die Software erkennt dies und benennt die neue Spalte automatisch in „UnitPrice2“ um.
Eine neue Spalte anzulegen wäre sinnlos, wenn diese keine Daten enthalten könnte. Wie wär’s wenn wir spaßeshalber einfach die Differenz von „UnitPrice“ und „TotalProductCost“ ausrechnen würden? Da wir ja hier keine Zellen in dem Sinne haben, würde ich tippen, wir geben einfach =UnitPrice-TotalProductCost in das Feld neben dem f(x) ein. Tja, dies funktioniert leider nicht, aber glücklicherweise schlägt das Add-In gleich eine Korrekturmöglichkeit in Form einer Fehlermeldung vor, nämlich eckige Klammern zu verwenden. Der zweite Versuch mit =[UnitPrice]-[TotalProductCost] ist erfolgreich. Nun noch schnell die Spalte umbenannt und fertig.
Wow, einfacher geht’s echt nicht mehr. Die Formatierung als Währung wurde ebenfalls automatisch übernommen. Diese könnten wir aber auch anpassen, indem wir bei „Data Type“ einen anderen Typ wählen würde und in der darunter liegenden Auswahlliste ein anderes Format angeben würden. Als „Data Type“ stehen „Text“, „Number (Decimal)“, „Number (Whole)“, „Currency“, „Date“ und „Boolean“ zur Verfügung. Ich denke die Namen sprechen für sich. Das f(x) erinnert übrigens sehr an Excel; schauen wir doch mal, was sich dahinter verbirgt:
Richtig, Formeln sind auch verwendbar und wenn ich das richtig sehe, sind diese in einer ähnlichen Syntax zu Excel aufgebaut. Darüber werden wir jedoch einen eigenständigen Artikel schreiben, dann das würde den Rahmen dieses Artikels nun deutlich sprengen.
Abschließend wäre es schön, wenn wir nun die Daten in unsere Excel Tabelle bekommen würden und vielleicht direkt schon eine grafische Auswertung dieser. Wir probieren mal „Chart and Table (Horizontal)“ aus der Schaltfläche „Pivot“ aus.
Wir erhalten zunächst eine Rückfrage von Excel 2010, ob die PivotTable in Zelle A1 der aktuellen Tabelle eingefügt werden soll. Dies bestätigen wir und erhalten folgendes Bild.
Ich bin jetzt kein Pivot Table Experte, deshalb ein einfache Darstellung der Werte aus der Tabelle „Total Sales“ mit einer Verknüpfung zum Land.
Zusammenfassend stellen wir fest, Daten mit Gemini auswerten ist sehr einfach; das gesamte Potential habe ich sicherlich noch nicht angesprochen. Ein paar kleine Ungereimtheiten im Add-In sind auch noch vorhanden, so ist zum Beispiel neben den Sprachbezeichnern die Bildschirmaktualisierung des Add-In Fensters noch nicht optimal; das Fenster flackert relativ stark, wenn es verschoben oder in der Größe geändert wird.
Hallo Mainweb,
bist du dir mit Excel 2007 sicher? Nach meinen Informationen wird Excel 2010 benötigt.
lG,
Gerald