MongoDB gibt selbst an “die beliebteste Datenbank f端r moderne Apps” zu sein. MongoDB ist eine NoSQL Datenbank, welche die Daten in einem JSON-辰hnlichen Dokumentenformat speichert. Zuvor hatte ich keine Ber端hrungen mit der MongoDB und war davon ausgegangen, dass eine Anbindung an Power BI einfach umzusetzen w辰re.

Daten und -quellen sind die Basis f端r Berichte und Dasbhboards. Normalerweise gibt es in Microsoft Power BI jede Menge Konnektoren f端r Datenquellen (siehe auch Artikel Power BI-Datenquellen in Microsoft Docs), aber kurioserweise gibt es keinen Konnektor f端r MongoDB. Entsprechend schwierig bzw. kompliziert hat sich die Anbindung gestaltet. Die Anbindung habe ich hier mit allen notwendigen Schritten dokumentiert.

MongoDB Atlas

Mit MongoDB Atlas stellen die Entwickler von MongoDB eine vollst辰ndig verwaltete NoSQL-Datenbank in der Cloud zur Verf端gung. Ein Database-as-a-Service.

Ein MongoDB Cluster erstellen

F端r unser Szenario fangen wir beim MongoDB Cluster an und erstellen ein erstes Cluster. Dazu loggen wir uns in MongoDB Atlas ein und klicken unter Data Storage > Clusters auf Build a Cluster.

F端r eine Sandbox-Umgebung w辰hlen wir Shared Clusters aus und klicken auf Create a cluster.

Bei der Cluster Konfiguration k旦nnen wir den Cloud Provider, die Region, einen Namen f端r das Cluster sowie die Cluster Tier ausw辰hlen. F端r die Sandbox-Umgebung w辰hle ich als Cloud Provider AWS und als Cluster Tier M0 Sandbox aus.

Cluster Tier Konfiguration

Um das Cluster zu erstellen, klicken wir auf Create Cluster. Die Bereitstellung dauert ca. 3 Minuten. Zeit zum Kaffee holen.

Das Cluster wurde erfolgreich erstellt. Im n辰chsten Schritt werden wir den Zugriff auf das Cluster von Extern zulassen.

Dazu klicken wir auf die Schaltfl辰che Connect im Bereich Sandbox und dem Namen unseres Clusters (in meinem Fall IAMYB). Im Dialog Connect to IAMYB w辰hlen wir unter Add a connection IP address > Allow Access from Anywhere aus. F端r den Datenbankbenutzer w辰hle ich als Benutzernamen yb und als Passwort w辰hlen ich einen auto-generiertes Passwort mit einem Klick auf Autogenerate Secure Password.

So sieht der Dialog anschlieend aus.

Mit der IP 0.0.0.0/0 wird angegeben, dass alle IP-Adresen zul辰ssig sind. Klicken auf Add IP Address um das zu 端bernehmen. Danach klicken wir auf Create Database User um den Datenbankbenutzer zu erstellen.

Wenn alles in Ordnung ist, k旦nnen wir mit einem Klick auf Choose a connection method weitermachen. Nun m端ssen wir ausw辰hlen, wie wir uns mit der MongoDB Datenbank verbinden m旦chten. Das gibt uns dann den Connection-String zur端ck. Wir w辰hlen in unserem Fall Connect your application.

Um die richtige Form des Connection-Strings zu erhalten m端ssen wir bei Select your driver and version unter DRIVER Node.js und VERSION 2.2.12 or later ausw辰hlen. Danach kopieren wir uns den Connection-String raus in bspw. Notepad. Klicken auf Close und schlieen den Dialog.

Beispieldaten in die MongoDB Datenbank importieren

Damit wir Beispieldaten haben, importiere ich einen Sample Dataset. Dazu w辰hle ich im Men端 unter DATA STORAGE > Clusters aus. In Clusters > Sandbox klicke ich auf die drei Punkte neben COLLECTIONS und w辰hle aus der Liste Load Sample Dataset aus (Liste der Datasets gibt es hier).

Im n辰chsten Dialog best辰tigen wir den Import mit einem Klick auf Load Sample Dataset.

MongoDB Connector for BI und MongoDB ODBC Driver for BI Connector einrichten

Um einen Zugriff auf die in MongoDB Atlas gehostete MongoDB Datenbank einzurichten, sind zwei Komponenten notwendig.

Der MongoDB Connector for BI ist eine Bridge bzw. ein Gateway zu der MongoDB Datenbank. Der MongoDB ODBC Driver for BI Connector ist ein ODBC Treiber, mit dessen Hilfe wir eine ODBC-Datenquelle zu der MongoDB hinzuf端gen k旦nnen.

On Premises DB and Local BI Connector
Quelle: mongoDB Documentation

MongoDB Connector for BI

Der MongoDB Connector for BI kann unter dem Link https://www.mongodb.com/try/download/bi-connector heruntergeladen werden.

Die derzeit aktuelle Version ist die 2.14.3. ber Download laden wir die Datei herunter und starten die heruntergeladene .msi Datei (mongodb-bi-win32-x86_64-v2.14.3.msi).

Klicken auf Next und akzeptieren die End-User License Agreement. Klicken erneut auf Next.

Im Dialog Custom Setup k旦nnen wir den Installations-Pfad anpassen. Ich belasse es beim Standard und klicke auf Next.

Den Installations-Pfad C:\Program Files\MongoDB\Connector for BI\2.14 merken wir uns. Mit einem Klick auf Install starten wir die Installation.

Done! Im n辰chsten Schritt m端ssen wir den Installations-Pfad zu der Path-Variable hinzuf端gen.

Um den Installations-Pfad zu der Path-Variable hinzuzuf端gen, 旦ffnen wir aus der Systemsteuerung > Systemumgebungsvariablen bearbeiten.

In den Systemeigenschaften klicken wir auf Umgebungsvariablen… .

Im Dialog Umgebungsvariablen doppelklicken wir in der Liste Systemvariablen auf Path.

Im Fenster Umgebungsvariablen bearbeiten klicken wir auf Neu, geben in der Liste den Installations-Pfad + “\bin” ein und klicken auf OK.

Um die Installations und die Funktion zu testen 旦ffnen wir die Eingabeaufforderung und geben in der KOmmandozeile nachfolgenden Befehl ein.

mongosqld --version

MongoDB ODBC Driver for BI Connector

Die n辰chste Komponente die installiert werden muss ist der MongoDB ODBC Driver for BI Connector. Diesen k旦nnen wir unter dem Link https://github.com/mongodb/mongo-odbc-driver/releases/ herunterladen. Hier w辰hlen wir das richtige Paket passend zu unserer Umgebung aus. In unserem Windows 10 Fall ist es das Paket mongodb-connector-odbc-1.4.2-win-64-bit.msi.

Danach starten wir das heruntergeladene Paket mongodb-connector-odbc-1.4.2-win-64-bit.msi.

Klicken auf Next und nehmen im n辰chsten Dialog das End-User License Agreement an.

Das Dialog Custom Setup erfordert keine Anpassungen. Mit Klick auf Next geht es weiter.

Klick auf Install startet die Installation.

Nach Abschluss der Installation k旦nnen wir die Installation per Finish beenden.

mongosqld starten

Um die Bridge zu starten, ben旦tigen wir den richtigen Connection-String. Im Portal haben wir nachfolgenden Connection-String erhalten:

mongodb://yb:<password>@iamyb-shard-00-00.6pjlz.mongodb.net:27017,iamyb-shard-00-01.6pjlz.mongodb.net:27017,iamyb-shard-00-02.6pjlz.mongodb.net:27017/myFirstDatabase?ssl=true&replicaSet=atlas-juun90-shard-0&authSource=admin&retryWrites=true&w=majority

mongogsqld akzeptiert nachfolgendes Format f端r einen Connection-String, so dass wir unseren vorhandenen Connection-String dahingehend anpassen m端ssen.

mongodb://<host replica node 1><:port>,<host replica node 2><:port>,<host replica node n><:port>/?replicaset=<replicaset>&retryWrites=true&w=majority

Folglich sieht der ben旦tigte Connection-String wie folgt aus:

mongodb://iamyb-shard-00-00.6pjlz.mongodb.net:27017,iamyb-shard-00-01.6pjlz.mongodb.net:27017,iamyb-shard-00-02.6pjlz.mongodb.net:27017/?replicaSet=atlas-juun90-shard-0&retryWrites=true&w=majority

Um den mongosqld zu starten geben wir nachfolgenden Befehl in der Eingabeaufforderung ein.

mongosqld --mongo-uri "mongodb://iamyb-shard-00-00.6pjlz.mongodb.net:27017,iamyb-shard-00-01.6pjlz.mongodb.net:27017,iamyb-shard-00-02.6pjlz.mongodb.net:27017/?replicaSet=atlas-juun90-shard-0&retryWrites=true&w=majority" --mongo-ssl --auth --mongo-username yb --mongo-password <password>

Wenn alles funktioniert hat, sollte die Ausgabe wie folgt aussehen:

#Eine System DNS erstellen

In der Ausgabe sehen wir, dass die Bridge unter der Adresse 127.0.0.1 und Port 3307 auf Verbindungen wartet. Damit Power BI mit der MongoDB Datenbank kommunizieren kann, bedarf es jedoch noch der Einrichtung eines System DSN. Dazu geben wir in der Windows Suche ODBC ein und starten ODBC-Datenquellen (64-Bit).

Klicken dann im Reiter System-DSN auf Hinzuf端gen… .

Aus der Liste der Treiber w辰hle ich MongoDB ODBC 1.4.2 Unicode Driver aus und klicken auf Fertig stellen.

Im Dialog MongoDB ODBC Data Source Configuration geben wir nachfolgende Werte in die Felder ein.

Data Source NameBX-MongoDB-PowerBI-Demo
TCP/IP Server127.0.0.1
Port3307
Useryb
Password<password>
DatabaseAus der DropDown-Liste ausw辰hlen: “sample_airbnb”

Mit einem Klick auf Test k旦nnen wir die Verbindung testen.

Parallel erfolgt eine Log-Ausgabe in der Konsole wo man sehen kann was alles passiert. Damit ist die Einrichtung der System-DSN abgeschlossen. Im n辰chsten Schritt geht es nun darum, die Datenbank aus Power BI heraus anzubinden.

Power BI Test

Wir starten Power BI Desktop und klicken auf Get data from another source.

Im Dialog Get Data geben wir in das Suchfeld ODBC ein und w辰hlen auf der rechten Seite ODBC aus und klicken auf Connect.

W辰hlen im Dialog From ODBC in der Liste Data source name (DSN) die zuvor erstellte System-DSN (BX-MongoDB-PowerBI-Demo) aus und klicken auf OK.

Im letzten Schritt m端ssen wir noch den (Datenbank-) Benutzer und das dazugeh旦rige Passwort angeben. Via Klick auf Connect best辰tigen wir die Eingaben.

Wenn die Verbindung erfolgreich war, k旦nnen wir im Navigator die vorhandenen Entit辰ten sehen. Unter sample_airbnb w辰hlen wir alle Entit辰ten aus und klicken auf Load.

Fast geschafft. In der Report-Sicht klappen wir rechts innerhalb von Fields die Entit辰t listingsAndReviews_reviews auf. Markieren die Felder reviews._id und reviews.reviewer_name. Wenn alles funktioniert hat, dann solltest die Ansicht wie folgt aussehen:

Done!