Normale Ansicht

MongoDB-Beispieldatenbanken für Docker einrichten

27. November 2023 um 07:51

Aktuell setze ich mich ein wenig mit MongoDB auseinander und habe mir lokal mit Docker eine Test-Installation eingerichtet:

docker run --name mongo -d mongodb/mongodb-community-server:latest

docker exec -it mongo mongosh

  Using MongoDB: 7.0.3
  Using Mongosh: 2.1.0

test> ...

Je nachdem, wie Sie Docker installiert haben, müssen Sie sudo vor jedes docker-Kommando stellen.

Zum Kennenlernen hätte ich nun gerne ein paar Beispieldatenbanken. Und tatsächlich stellt Mongo für sein Cloud-Angebot Atlas eine ganze Palette von Testdatenbanken zur Verfügung. Eine Kurzbeschreibung der Datenbanken finden Sie hier:

https://www.mongodb.com/docs/atlas/sample-data

Genau die Datenbanken hätte ich gerne in meiner lokalen Installation als »Spielwiese«. Leider ist die Installation dieser Beispieldatenbanken bei der lokalen Verwendung von MongoDB umständlich. Auf GitHub gibt es Dumps (Backups) der Beispieldateien im JSON-Format:

git clone https://github.com/mcampo2/mongodb-sample-databases.git
cd mongodb-sample-databases
lstree sample_*

  sample_airbnb/
    listingsAndReviews.json
  sample_analytics/
    accounts.json
    customers.json
    transactions.json
  sample_geospatial/
    shipwrecks.json
  ...

Jetzt geht es darum, die Datenbanken zu importieren. Unter Linux oder macOS führen Sie dazu für jede JSON-Datei aus samples_xxx ein Kommando nach dem folgenden Muster aus:

cat sample_airbnb/listingsAndReviews.json | \
  docker exec -i mongo mongoimport --db sample_airbnb --collection listingsAndReviews

Beachten Sie, dass Sie docker exec mit der Option -i ausführen müssen (nicht -it wie bisher für den interaktiven Betrieb), damit die Weitergabe von Daten über den Pipe-Operator | funktioniert.

Anstatt nun jede JSON-Datei einzeln zu importieren, bietet sich die Formulierung eines winzigen Scripts an. Er richtet für jedes DB-Verzeichnis sample_xxx eine gleichnamige Datenbank ein und importiert jedes JSON-Dokument als Collection. (Beachten Sie, dass die auf Atlas definierten Indize nicht eingerichtet werden. Wenn Sie zum Testen einen Index brauchen, müssen Sie diesen selbst einrichten.)

#!/bin/sh
for db in sample_*; do
  for file in $db/*.json; do
      collection="$(basename $file .json)"
      cat $file | docker exec -i mongo mongoimport --db $db --collection $collection
  done
done

Das Script muss in dem Verzeichnis ausgeführt werden, in dem sich die von GitHub heruntergeladenen sample_xxx-Verzeichnisse befinden.

Nach dem Import können Sie sich in der Mongo Shell überzeugen, dass alles geklappt hat:

docker exec -it mongo mongosh

test> show dbs

  admin                40.00 KiB
  config               72.00 KiB
  local                40.00 KiB
  sample_airbnb        52.09 MiB
  sample_analytics      9.39 MiB
  sample_geospatial   784.00 KiB
  sample_mflix         28.39 MiB
  sample_supplies     968.00 KiB
  sample_training      61.30 MiB
  sample_weatherdata    2.55 MiB
  samples_airbnb       52.09 MiB
  test                112.00 KiB

test> use sample_airbnb

sample_airbnb> show collections

  listingsAndReviews

sample_airbnb> db.listingsAndReviews.findOne()

 {
    _id: '10009999',
    listing_url: 'https://www.airbnb.com/rooms/10009999',
    name: 'Horto flat with small garden',
    ...
  }

Quellen/Links

📚 Das Buch »Wärmepumpen« ist erschienen

23. November 2023 um 15:25

Als letzte und vielleicht spannendste Veröffentlichung in diesem Jahr ist heute das Buch »Wärmempumpen« erschienen. Es beschreibt — fernab vom politischen Getöse — die Funktionsweise und die Vor- und Nachteile von Wärmepumpen. In diesem Buch, das ich zusammen mit dem Energieberater Tobias Otta verfasst habe, wollen wir Sie beraten, unter welchen Umständen der Einsatz von Wärmepumpen zweckmäßig ist und ob sich das auch finanziell lohnt.

Dabei belassen wir es natürlich nicht bei der Wärmepumpe an sich, sondern behandeln auch die vielen Detailfragen rund um die Integration mit der Heizung (Warmwasser, Hydraulik, Puffer usw.). Wir erklären Ihnen die Unterschiede zwischen verschiedenen Wärmepumpenarten (Luft-, Erdwärme- und Grundwasserwärmepumpen) und wie Sie die Wärmepumpe im Sommer auch zum Kühlen verwenden können. Außerdem erläutern wir, warum eine Kombination mit einer PV-Anlage oft sinnvoll ist, obwohl die Sonne gerade im Winter, wenn der größte Strombedarf besteht, am wenigsten scheint. Ein ausführliches Kapitel mit Beispielen aus der Praxis samt umfassenden Kostenkalkulationen zeigt, welche Kosten bei der Errichtung und der Verwendung zu erwarten sind (natürlich immer im Vergleich zu einer Gasheizung).

Weitere Informationen zum Inhalt des Buch sowie eine Leseprobe finden Sie hier.

Umfang: 236 Seiten
ISBN: 978-3-8362-9773-8
Preis: Euro 39,90 (in D inkl. MWSt.)

❌