Home Up PDF Prof. Dr. Ingo Claßen
Infrastruktur - ADBKT

Stack im Portainer anlegen

Stacks entsprechen docker-compose.

Einloggen

  • In Portainer einloggen (nur im Intranet: entweder an der HTW oder über VPN)
  • Host, Userid und Passwort werden in der LV bekannt gegeben
  • https://xxx.f4.htw-berlin.de:9443/

Environment "local" auswählen

Dashboard wird angezeigt

Stack-Formular öffnen

  • In der Navigationsleiste links auf "Stacks" klicken
  • Auf Button "Add stack" klicken

Stack bereitstellen

  • Name für Stack vergeben
  • Docker-Compose-Code in Web-Editor eingeben
  • Auf "Deploy the stack" klicken

Cassandra Container anlegen

Stack cas anlegen

networks:
services:
  cas:
    container_name: cas
    image: cassandra:latest
    ports:
      - 9042:9042
    environment:
      - JVM_OPTS=-Xms1024M -Xmx1024M
      - HEAP_NEWSIZE=1024M
      - MAX_HEAP_SIZE=1024M

Keyspace erstellen

Konsole in Container cas öffnen und dort die Cassandra Query Language Shell starten (cqlsh).

create keyspace tour_delight with replication = {
  'class': 'SimpleStrategy', 'replication_factor' : 1
};

Drei Cassandra Container anlegen

Stack cas1 anlegen

networks:
  ncas:
    name: ncas

services:
  cas1:
    container_name: cas1
    image: cassandra:latest
    ports:
      - 9042:9042
    environment:
      - JVM_OPTS=-Xms1024M -Xmx1024M
      - HEAP_NEWSIZE=1024M
      - MAX_HEAP_SIZE=1024M
    networks:
      - ncas

Keyspace und Tabelle anlegen

Konsole in Container cas1 öffnen und dort die Cassandra Query Language Shell starten (cqlsh).

create keyspace test with replication = {
  'class': 'SimpleStrategy', 'replication_factor' : 1
};

use test;

create table t (
  pk int, 
  sk int, 
  v int, 
  primary key (pk, sk)
);

insert into t(pk, sk, v) values (1, 1, 100);
insert into t(pk, sk, v) values (1, 2, 200);

select * from t where pk=1;

Stack cas2 anlegen

Wichtig: Container cas1 muss bereits laufen.

networks:
  ncas:
    name: ncas

services:
  cas1:
    container_name: cas2
    image: cassandra:latest
    ports:
      - 9043:9042
    environment:
      - CASSANDRA_SEEDS=cas1
      - JVM_OPTS=-Xms1024M -Xmx1024M
      - HEAP_NEWSIZE=1024M
      - MAX_HEAP_SIZE=1024M
    networks:
      - ncas

Stack cas3 anlegen

Wichtig: Container cas1 muss bereits laufen.

networks:
  ncas:
    name: ncas

services:
  cas1:
    container_name: cas3
    image: cassandra:latest
    ports:
      - 9044:9042
    environment:
      - CASSANDRA_SEEDS=cas1
      - JVM_OPTS=-Xms1024M -Xmx1024M
      - HEAP_NEWSIZE=1024M
      - MAX_HEAP_SIZE=1024M
    networks:
      - ncas

Postgres Container anlegen

Stack pg anlegen

services:
  pg1:
    container_name: pg
    image: postgres
    ports:
      - 5432:5432
    environment:
      POSTGRES_PASSWORD: htw-bln-pg

Zwei Postgres Container anlegen

Stack pg1 anlegen

services:
  pg1:
    container_name: pg1
    image: postgres
    ports:
      - 5432:5432
    environment:
      POSTGRES_PASSWORD: htw-bln-pg

Stack pg2 anlegen

Wichtig: Port 5433 wird nach außen gereicht

services:
  pg2:
    container_name: pg2
    image: postgres
    ports:
      - 5433:5432
    environment:
      POSTGRES_PASSWORD: htw-bln-pg

Neo4j-Container anlegen / Python-Zugriff

Stack anlegen - Name: neo4j

services:
  neo4j:
    container_name: neo4j
    image: neo4j
    ports:
      - 7474:7474
      - 7687:7687
    environment:
      - NEO4J_AUTH=neo4j/htw-bln-neo4j
      - NEO4J_server_memory_heap_initial__size=500M 
      - NEO4J_server_memory_heap_max__size=500M 
      - NEO4J_server_memory_pagecache_size=500M 
      - NEO4J_PLUGINS=["apoc", "graph-data-science"]
      - NEO4J_dbms_security_allow__csv__import__from__file__urls=true
      - NEO4J_server_directories_import=/data/csv

Auf Neo4j-Browser zugreifen

Wert von "aaa" ist ihr Container

http://aaa.f4.htw-berlin.de:7474

Credentials

Datei cred-neo4j.txt anlegen. Wert von "aaa" ist ihr Container

neo4j_userid='neo4j'
neo4j_password='adbktneo4j'
neo4j_host='neo4j://aaa.f4.htw-berlin.de:7687'

Notebook Preview

Notebook

Konfiguration DBeaver

DBeaver Download

DBeaver starten - neue Verbindung anlegen

PostgreSQL auswählen - "Next" klicken

Credentials eingeben - "Test Connection ..." klicken

Ggf. öffnet sich ein Download-Dialog für den Treiber. Treiber downloaden.

Username und Password durch eigene Werte ersetzen!

"OK" klicken, "Finish" klicken

Verbindung mit Name "adbkt" wurde angelegt

Rechte Maustaste - "Rename" klicken

Umbenennen

Rechte Maustaste - "Edit Connection" klicken

"Initialization" auswählen - "Configure ..." klicken

"Add" klicken

Search Path einstellen - 3x "OK" klicken - fertig

set search_path to ${user},ugeobln,ugm,uinsta,umisc,umobility,usozmed,public;

Installation von Python-Moduen

Dieser Container verwendet "uv" als Paketmanager. D.h., statt

pip install something

muss

uv pip install something

verwendet werden

Globale Postgres-Datenbank

Credentials

Datei cred-pg.txt anlegen. Die Werte für "aaa" wie bei DBeaver.

user='aaa'
password='aaa'
host='aaa.f4.htw-berlin.de'
port=5432
dbname='adbkt'

Notebook Preview

Notebook

Lokale Postgres-Datenbanken

Credentials 1

Datei cred-pg1.txt anlegen. Wert von "aaa" ist ihr Container

user='postgres'
password='adbktpg'
host='aaa.f4.htw-berlin.de'
port=5432
dbname='postgres'

Credentials 2

Datei cred-pg2.txt anlegen. Wert von "aaa" ist ihr Container

Wichtig: Auf Port 5433 zugreifen

user='postgres'
password='adbktpg'
host='aaa.f4.htw-berlin.de'
port=5433
dbname='postgres'

Notebook Preview

Notebook

Cassandra

Notebook Preview

Notebook

Neo4j

Credentials

Datei cred-neo4j.txt anlegen. Wert von "aaa" ist ihr Container

neo4j_userid='neo4j'
neo4j_password='adbktneo4j'
neo4j_host='neo4j://aaa.f4.htw-berlin.de:7687'

Notebook Preview

Notebook

Zugriffskontrolle

Notebook Preview

Notebook

Transfer Mobilitätsdaten

Notebook Preview

Notebook

Geodaten

Notebook Preview

Notebook

ER-Diagramm

Notebook Preview

Notebook

Transaktionen

Notebook Preview

Notebook

Verteilte Transaktionen

Notebook Preview

Notebook

GraphQL

Notebook Preview

Notebook

Weiteres

DynamoDB

Notebook Preview

Notebook

Indizes auf Vektordatenbanken

Notebook Preview

Notebook

Retail Sales

Notebook Preview

Notebook