SlideShare une entreprise Scribd logo
1  sur  75
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
www.filemaker-konferenz.com
Praktische Anwendungen für Datenanalyse, Bereinigung und
Visualisierung
Dr. Robert Rohrkemper
Schnittstellen zu Fremdsystemen
1
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Robert Rohrkemper (“Bobby“)
• PhD in Neuroinformatik an der ETH Zürich
• Erfahrung als Datenanalyst, Entwickler und Dozent
• Software Entwickler bei Schweiz Tourismus
• Interessen:
• Sprachen lernen
• (Deutsch, Italienisch)
• Familienforschung
• Verschiedene Sportarten
2
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Themen
• Setup bei Schweiz Tourismus
• Problem Beschreibung: Ersatz bestehender IDs mit UUIDs
• Ziele und Motivation für die Benutzung einer neuen Technik
• Datenmanipulation mit R
• Wahl der Technik und deren Begründung: ODBC mit R
• Open Source ODBC Setup auf MacOS mit einem lokalen FileMaker Server
• Custom Code für Lesen und Schreiben mit ODBC und R
• Prüfen von Daten und neu Formatierung mit R
• Beispiel aus der Praxis: UUIDs
• Weitere Anwendungen von ODBC
• Prüfen von Daten und deren Transformation mit R - Beispiel aus der Praxis: UUIDs -
Weitere Anwendungen von ODBC
• Vor- und Nachteile von externen Systemen (R, Python, Tableau)
• Zusammenhang mit früheren FMK Vorlesungen
3
Theorie
Praxis
challenge
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Unterschiedliche DB-Struktur
ODBC Treiber und Konfiguration eines lokalen DB-Servers
Fehlende Fremdschlüssel
Alle PK/FK Paare finden
PK/FK Paare mit UUIDs ersetzen
4
Challenges
1
2
3
4
5
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Setup bei Schweiz Tourismus
6
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Problem Beschreibung:
Ersatz bestehender IDs mit UUIDs
• Warum UUIDs?
• Technik in FM bereits vorhanden
• Standard: RFC 4122
• Einfache Migration zu einer neuen Masterversion
• Kein „Set Next Serial Number“ mehr nötig
• Geringere Fehleranfälligkeit durch manuelle Schritte
• Keine Konflikte zwischen dezentraler und zentraler Datenbank
• Aber wie sollen wir alle ersetzen?
• 24 Datenbanken (mit ähnlicher aber nicht identischer Struktur)
• Jede mit mehreren Beziehungen
• Teilweise fehlende Daten, z.B. fehlende Fremdschlüssel
8
F3873024-5DD0-46BF-9F27-5EDD1FE14EBE
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Beispiele
9
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Beispiele
10
Marketing Activities KPI
Documents
BackupsSegmentation
STS Account
STS Mandate STS ProfitCenter STS Budget
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Voraussetzung: Gleiche
Datenbankstruktur
Warum?
• Automatisierung nicht möglich wenn Tabellen- und Feldnamen unterschiedlich
sind
• Import mit variierenden Importeinstellungen nicht möglich
Eine kongruente Datenbankstruktur ist also in sämtlichen Derivaten sowie der
zentralen Datenbank eine Voraussetzung
Wie?
• Erstellung einer Master-Datenbank, welche alle Anforderungen erfüllt
• Duplizieren der Master-Datenbank und Anpassung der inhaltlichen Werte für
das betreffende Derivat
• Import der Daten aus der alten in die neue Datenbank, jeweils jedes Derivat
einzeln
• Die genannten Aufgaben werden teilweise automatisiert
11
challenge 1
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Migrationsschritte
12
Folien mit diesem Symbol werden weniger detailliert vorgetragen (Selbststudium/Diskussionen)
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Migrationsschritte
13
* Basis Tabelle = Table Occurence ohne Beziehungen, Bezeichnung beginnt mit __ + Tabelle Name
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Migrationsschritte
14
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Migrationsschritte
15
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Migrationsschritte
16
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Ergebnis:
Datenbank mit identischer Struktur
• Die Datenbank ist jetzt bereit für Entwicklung der Automatisierung um die
bestehenden Primärschlüssel durch UUIDs zu ersetzen
17
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Ziele und Motivation für
die Benutzung einer neuen Technik
• Ziel: Fehlende Fremdschlüssel ersetzen, alle PK/FK  UUIDs
• Möglichst wenig manuelle Schritte
• Wenig Änderungen an der Datenbankstruktur
• Geringe Anzahl „Klicks“ bei der Migration
• Keine Fehler bei der Feldzuteilung bei manuellen Importen
• Geschwindigkeit
• Geringe Dauer für die Datenübertragung
• Die Datenübertragung soll lokal erfolgen um geringer Performance des
Netzwerkes entgegen zu wirken
• Intuitive, flexible Programmiersprache
19
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Datenmanipulation mit R
21
Flights
(Flüge)
Airports (Flughäfen)
Planes
(Flugzeuge)
Airports
(Fluggesellschaften)
Weather
(Wetter)
www.r-project.org
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Datenmanipulation mit R
22
• Traditionelle Programmiersprache
• Intuitive Befehle
• Vernünftige Communityunterstützung auf StackOverflow
• Hilfe leicht zu finden
• Weit verbreitet
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Datenmanipulation mit R
23
• asdf
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Left join
24
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Inner join
25
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Mehrere Schritte in einer Kette
26
result <- fun3(fun2(fun1(x,paramA),paramB),paramC)
Vermeidet das „Dagwood Sandwich Problem“:
result <- x %>%
fun1(paramA) %>%
fun2(paramB) %>%
fun3(paramC)
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Wahl der Technik und deren Begründung:
ODBC mit R
• Möglichst wenig manuelle Schritte
• Wenig Änderungen an der Datenbankstruktur (ODBC lesen, schreiben)
• Geringe Anzahl „Klicks“ bei der Migration (Migration nach Master-DB)
• Keine Fehler bei der Feldzuteilung bei manuellen Importen (Script)
• Geschwindigkeit
• Geringe Dauer für die Datenübertragung (Lokaler Server)
• Die Datenübertragung soll lokal erfolgen um geringer Performance des
Netzwerkes entgegen zu wirken
• Intuitive, flexible Programmiersprache (Funktionsbasiert)
28
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Konsekutive IDs nach UUIDs
• - Copy source and target file locally, take newest master
• - close DB and email market (START)
• - copy globals from source dB: CURRENCY, MARKET, SUBTITLE, THISMARKET, THISMARKETKST (GLOB)
• - in source database, perform show all for these layouts: __Marketing Activities, __Backups, __Budget, __KPI,
__Segmentation
• - Use the new update procedure to import the contents of these older versions into the new master.
• - VERIFY NUMBER OF RECORDS IN ALL BASE TABLES (NREC)
• - copy next serial num from source for tables: MARKETING ACTIVITIES::__ActivityID (only this one) (ACTD)
• After update:
• - fill Backups::__ID with sequential numbers, then run R script (BAKID, R)
• - control security settings such that all accounts highlighted in attached screenshot are erased, (ACCTS)
• - inspect the local “source” backup and add any additional market logins necessary (short account names, in all
caps)
• - test and open the updated database on the original server. (via main menu), view db structure
• - fix external data sources so they point to the correct market (EXTD)
29
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Open Source ODBC Setup auf MacOS
mit einem lokalen FileMaker Server
31
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
FM (11) Server Installation
• Bei Problemen:
• Uninstall mit Installer
• Ordner /Library/FileMaker Server löschen
• fms_11.0.4.404.dmg
• fms_11.0.5.510_mac_updater.dmg
• Neu installieren:
• 11.0.4.404
• Gatekeeper: allow applications from anywhere
• Java nicht aktualisieren
• fmsadmin STOP SERVER
• fmsadmin STOP ADMINSERVER
• http://localhost:16000
32
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
ODBC Driver Setup
• Gatekeeper Deaktivieren: sudo spctl --master-disable
• Driver herunterladen und installieren:
http://help.filemaker.com/app/answers/detail/a_id/7865/~/software-update%3A-
filemaker-11.3.76-xdbc-client-drivers
• Command-Line-Tools installieren: xcode-select –install
• Homebrew installieren: /usr/bin/ruby -e "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install)"
• Unixodbc installieren: brew update; brew install unixodbc
• ini Dateien konfigurieren:
• odbcinst.ini  Pfad zum Driver
• odbc.ini  Datenbank Verbindungen
33
challenge 2
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Custom Code für Datenmanipulation mit
ODBC und R
• Abstraktion, Lesbarkeit
• FileMaker Treiber hinzufügen in odbcinst.ini
• https://stackoverflow.com/questions/43700690/connect-r-to-filemaker-pro-
15-on-mac/46213524#46213524
• Connection hinzufügen in odbc.ini
• Datenbank Struktur einlesen
• Daten von allen Tabellen einlesen
• Daten neu formatieren mit Join-Funktionen
• Daten zurückschreiben
35
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Custom Code für Datenmanipulation mit
ODBC und R
36
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Custom Code für Datenmanipulation mit
ODBC und R
37
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Custom Code für Datenmanipulation mit
ODBC und R
38
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Prüfen von Daten und
deren Transformation mit R
• Flexibler Code
• Nur kleine Änderungen nötig zwischen ähnlichen Datenbanken
• Ein komplettes Beispiel folgt
40
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
R Packages und Variablen
library(RODBC)
library(dplyr)
library(rJava)
library(dplR)
con = list() # con contains all details about external
connections
str = list() # str contains all details about the structure
of the database
stat = list() # stat contains statistics and counts
summarizing the database
dat = list() # dat contains all raw data from the base
tables
res = list() # res contains all results and analysis
41
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Tabellenamen einlesen
42
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Tabellenspalten einlesen
43
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Datensätze einlesen
44
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Fehlende Fremdschlüssel berechnen
45
Vorher
Neue Daten (noch nicht geändert am Server)
challenge 3
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Spalte auswählen und Manipulation
vorbereiten
Nachher
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
• Als Hilfsmittel für Datenbanken mit sehr vielen Tabellen und Spalten
• Input: Feldname welcher die Primärschlüssel enthält
• Output: Eine Liste aller Feldnamen welche einen identischen Wert enthalten
• Zum Beispiel:
• Input: MainTable::__ID
• Output: Table1::_FK, Table13::_FK, Table18::_FK
• Anwendungen: Legacy Datenbanken, Lösungen welche aus mehreren
Dateien bestehen
47
challenge 4 Suche nach anderen PK/FK
Kombinationen
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Beispiel aus der Praxis:
UUIDs
• Daten in R als Variablen-Liste einlesen
• str  Datenbank Struktur
• dat  Original Daten
• PK, FK identifizieren
• PK und deren abhängige FKs berechnen
• res neue Daten
• Zurück in die Datenbank schreiben
49
challenge 5
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
PK generieren
50
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
FK generieren
51
Marketing Activities
Documents
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Neue Daten schreiben
• Spalte auswählen und für Manipulation vorbereiten:
• Datenmanipulation (für Spalte mit Abhängigkeiten):
• Datenmanipulation (für Spalte ohne Abhängigkeiten):
52
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Weitere Anwendungen von ODBC mit R
• Ad-hoc Untersuchungen
• Mock-up / Prototypen von Datenvisualisierung
• Anwendungen von externen Datenquellen, “Open Data“ (opendata.ch)
• Wetter, Geo, Tourismus, Soziales, Volkswirtschaft
• Interaktive, Web-basierte Dashboards
54
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Ad-hoc Untersuchungen:
NYC Flüge 2013
• Beispieldateien hochgeladen:
• nycflights13.fmp12, nycflights13.fp7  Als ODBC Quelle
• nycflights13.rData  Gleiche Daten, für R vorbereitet
• flights.csv, airports.csv, planes.csv, airlines.csv, weather.csv  z.B. als
täglichen Export aus FileMaker
• Zusammenfassung der 5 Tabellen:
• flights: alle Flüge von NYC Flughafen im Jahr 2013: 336,776
insgesamt
• airports: Flughafen, Orte und Namen
• planes: Technische Details der Flugzeuge
• airlines: Bezugstabelle mit Übersetzung zwischen Codes der
Fluggesellschaften und deren Namen
• weather: Stündliche Wetterdaten
55
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Flüge (flights)
56
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Flughäfen (airports)
57
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Flugzeuge (planes)
58
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Fluggesellschaften (airlines)
59
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Wetter (weather)
60
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Workshop: Fragen formulieren
Typ 1: Fragen mit einer direkten Antwort als Zahl oder Tabelle:
• Wie viele Flüge gab es pro Flughafen im Jahr 2013?
• Welche Fluggesellschaft war am Tag mit der geringsten Sichtweite, am
pünktlichsten?
Typ 2: Fragen die eine Visualisierung der Antwort erfordern:
• Menge von Flügen im Durchschnitt pro Wochentag für jeden Flughafen auf
einem Balkendiagramm?
Typ 3: Komplexe Fragen deren Interpretierung mehrere Analyseschritte erfordern:
• Wann ist der beste Zeitpunkt für eine Flugreise und mit welcher
Fluggesellschaft?
62
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Übung
Bitte überlegt euch folgendes:
• Eine Frage (Typ 1, 2, oder 3), welche wir mit Hilfe der Daten beantworten
können.
• Welche Felder von welcher Tabelle werden benötigt?
• Wie könnte man die Daten kombinieren um die Fragen beantworten zu
können?
• Mögliche oder erwartete Antwort oder eine Skizze eines möglichen
Diagramms?
64
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Vor- und Nachteile von externen Systemen
(R, Python, Tableau)
+
• Andere Prozesse als bei FileMaker möglich
• Wissenschaftliche Analyse
• Testen und Konzeptualisierung ohne Änderungen der Datenbank Struktur
-
• Braucht mehr Vorbereitung
• Lernen einer neuen Arbeitsmethode erforderlich
• Abhängigkeit von anderen Systemen
65
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Zusammenhang mit früheren FMK
Vorlesungen
• Versionsverwaltung mit git und SVN
• http://de.slideshare.net/fmkonferenz/fmk2015-erste-schritte-mit-einem-
codeversionierungssystem-by-thomas-hirt
• Reguläre Ausdrücke
• http://de.slideshare.net/fmkonferenz/fmk2015-regulre-ausdrcke-by-arnold-
kegebein
• Daten Visualisierung
• http://www.slideshare.net/fmkonferenz/fmk2016-marcel-mor-the-power-of-svg/
• FM Scripting
• https://de.slideshare.net/fmkonferenz/thomas-hirt-function-scripting
• https://de.slideshare.net/fmkonferenz/fmk-2013-matroschka-prinzip-marcel-mor-
holger-darjus?next_slideshow=1
• Unterschiede zwischen FileMaker Versionen
• mehrere Vorträge an FM Konferenzen
66
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Unterschiedliche Struktur  Import Wizard mit FM Script
ODBC Treiber und Konfiguration eines lokalen DB-Servers  Geduld, StackOverflow
Fehlende Fremdschlüssel  ODBC Verbindung und R Script für Joins
Alle PK/FK Paare finden  R Script um den DB Inhalt zu analysieren
PK/FK Paare mit UUIDs ersetzen  ODBC Verbindung und R Script
68
Challenges
1
2
3
4
5
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Schlussfolgerungen
• Externe Technik kann sich für spezifische Anwendungszwecke lohnen.
• ODBC Schnittstellen erfordern eine aufwändige Installation und sind abhängig
von der verwendeten FileMaker und MacOS Version.
• Bevor viel Zeit in die Einrichtung eines neuen Prozesses oder Systems
investiert wird, lohnt es sich sicher, die Daten mit einer externen Technik zu
untersuchen um deren Wert einschätzen zu können (Pareto-Prinzip).
69
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Ressourcen
• R, RStudio IDE (open source, www.rstudio.com)
• nycflights13 Package für R:
• https://github.com/hadley/nycflights13
• https://cran.r-project.org/web/packages/nycflights13/index.html
• https://cran.r-project.org/web/packages/nycflights13/nycflights13.pdf
• Garrett Grolemund, Rstudio, Datacamp.com
• Leach, P., Mealling, M., and Salz, R. (2005) A Universally Unique IDentifier
(UUID) URN namespace. RFC 4122, RFC Editor. http://www.rfc-
editor.org/rfc/rfc4122.txt
• http://www.filemaker.com/support/product/docs/fms/fms11_help.pdf
71
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Danke!
• An das gesamte FM und IT Team bei Schweiz Tourismus
• René Loosli, Daniel Mühle, Daniel Zuber
• Daniel Mühle – FM Server einrichten, Lektorat
• Die verwendeten Bilder der Schweiz wurden von André Meier und Ivo Scholz
aufgenommen. Diese Bilder dürfen im Rahmen der FMK verwendet werden.
72
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Vielen Dank unseren Sponsoren
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper
Abstract für Slideshare
Robert Rohrkemper zeigt in seinem Vortrag, wie man mit einem Open Source
Treiber eine ODBC Verbindung aufbaut und maximale Geschwindigkeit mit ODBC
erreicht.
Stichwörter:
• ODBC
• Datenmanipulation
• R
• Datenanalyse
• Datenbereinigung
• Datenvisualisierung
75

Contenu connexe

Similaire à FMK2017 - Schnittstellen zu Fremdsystemen by Robert Rohrkemper-

Analytic powerhouse parallel data warehouse und r
Analytic powerhouse parallel data warehouse und rAnalytic powerhouse parallel data warehouse und r
Analytic powerhouse parallel data warehouse und r
Marcel Franke
 

Similaire à FMK2017 - Schnittstellen zu Fremdsystemen by Robert Rohrkemper- (20)

FMK2017 - Programmieren am offenen Herzen by Jörg Köster
FMK2017 - Programmieren am offenen Herzen by Jörg KösterFMK2017 - Programmieren am offenen Herzen by Jörg Köster
FMK2017 - Programmieren am offenen Herzen by Jörg Köster
 
Analytic powerhouse parallel data warehouse und r
Analytic powerhouse parallel data warehouse und rAnalytic powerhouse parallel data warehouse und r
Analytic powerhouse parallel data warehouse und r
 
FMK2018- Audit Log Arnold Kegebein
FMK2018- Audit Log Arnold KegebeinFMK2018- Audit Log Arnold Kegebein
FMK2018- Audit Log Arnold Kegebein
 
FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und SynchronisationFMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
 
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
 
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
 
FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com
FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.comFMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com
FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
Mag. Franz Waldhofer (Raiffeisen Software)
Mag. Franz Waldhofer (Raiffeisen Software)Mag. Franz Waldhofer (Raiffeisen Software)
Mag. Franz Waldhofer (Raiffeisen Software)
 
FMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - RecyclingFMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - Recycling
 
FMK2016 - Holger Darjus - Das Transistor-Prinzip
FMK2016 - Holger Darjus - Das Transistor-PrinzipFMK2016 - Holger Darjus - Das Transistor-Prinzip
FMK2016 - Holger Darjus - Das Transistor-Prinzip
 
FMK2017 - Wordpress und FileMaker by Karsten Risseeuw
FMK2017 - Wordpress und FileMaker by Karsten RisseeuwFMK2017 - Wordpress und FileMaker by Karsten Risseeuw
FMK2017 - Wordpress und FileMaker by Karsten Risseeuw
 
Open Source Software zur Verarbeitung und Analyse von Metadatenmanagement
Open Source Software zur Verarbeitung und Analyse von MetadatenmanagementOpen Source Software zur Verarbeitung und Analyse von Metadatenmanagement
Open Source Software zur Verarbeitung und Analyse von Metadatenmanagement
 
PrintTalk 2.0, XJDF & WebToPrint
PrintTalk 2.0, XJDF & WebToPrintPrintTalk 2.0, XJDF & WebToPrint
PrintTalk 2.0, XJDF & WebToPrint
 
FMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
FMK2017 - GUI Tipps für mobile Lösungen by Robert KaiserFMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
FMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
 
FMK2018-Migration und Synchronisation Holger Darjus
FMK2018-Migration und Synchronisation Holger DarjusFMK2018-Migration und Synchronisation Holger Darjus
FMK2018-Migration und Synchronisation Holger Darjus
 
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker PluginFMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
 
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.comFMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
 
Das Back to Basics – Webinar 1: Einführung in NoSQL
Das Back to Basics – Webinar 1: Einführung in NoSQLDas Back to Basics – Webinar 1: Einführung in NoSQL
Das Back to Basics – Webinar 1: Einführung in NoSQL
 
Cloud Computing für die Verarbeitung von Metadaten
Cloud Computing für die Verarbeitung von MetadatenCloud Computing für die Verarbeitung von Metadaten
Cloud Computing für die Verarbeitung von Metadaten
 

Plus de Verein FM Konferenz

Plus de Verein FM Konferenz (20)

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 

FMK2017 - Schnittstellen zu Fremdsystemen by Robert Rohrkemper-

  • 1. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 www.filemaker-konferenz.com Praktische Anwendungen für Datenanalyse, Bereinigung und Visualisierung Dr. Robert Rohrkemper Schnittstellen zu Fremdsystemen 1
  • 2. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Robert Rohrkemper (“Bobby“) • PhD in Neuroinformatik an der ETH Zürich • Erfahrung als Datenanalyst, Entwickler und Dozent • Software Entwickler bei Schweiz Tourismus • Interessen: • Sprachen lernen • (Deutsch, Italienisch) • Familienforschung • Verschiedene Sportarten 2
  • 3. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Themen • Setup bei Schweiz Tourismus • Problem Beschreibung: Ersatz bestehender IDs mit UUIDs • Ziele und Motivation für die Benutzung einer neuen Technik • Datenmanipulation mit R • Wahl der Technik und deren Begründung: ODBC mit R • Open Source ODBC Setup auf MacOS mit einem lokalen FileMaker Server • Custom Code für Lesen und Schreiben mit ODBC und R • Prüfen von Daten und neu Formatierung mit R • Beispiel aus der Praxis: UUIDs • Weitere Anwendungen von ODBC • Prüfen von Daten und deren Transformation mit R - Beispiel aus der Praxis: UUIDs - Weitere Anwendungen von ODBC • Vor- und Nachteile von externen Systemen (R, Python, Tableau) • Zusammenhang mit früheren FMK Vorlesungen 3 Theorie Praxis challenge
  • 4. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Unterschiedliche DB-Struktur ODBC Treiber und Konfiguration eines lokalen DB-Servers Fehlende Fremdschlüssel Alle PK/FK Paare finden PK/FK Paare mit UUIDs ersetzen 4 Challenges 1 2 3 4 5
  • 5.
  • 6. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Setup bei Schweiz Tourismus 6
  • 7.
  • 8. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Problem Beschreibung: Ersatz bestehender IDs mit UUIDs • Warum UUIDs? • Technik in FM bereits vorhanden • Standard: RFC 4122 • Einfache Migration zu einer neuen Masterversion • Kein „Set Next Serial Number“ mehr nötig • Geringere Fehleranfälligkeit durch manuelle Schritte • Keine Konflikte zwischen dezentraler und zentraler Datenbank • Aber wie sollen wir alle ersetzen? • 24 Datenbanken (mit ähnlicher aber nicht identischer Struktur) • Jede mit mehreren Beziehungen • Teilweise fehlende Daten, z.B. fehlende Fremdschlüssel 8 F3873024-5DD0-46BF-9F27-5EDD1FE14EBE
  • 9. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Beispiele 9
  • 10. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Beispiele 10 Marketing Activities KPI Documents BackupsSegmentation STS Account STS Mandate STS ProfitCenter STS Budget
  • 11. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Voraussetzung: Gleiche Datenbankstruktur Warum? • Automatisierung nicht möglich wenn Tabellen- und Feldnamen unterschiedlich sind • Import mit variierenden Importeinstellungen nicht möglich Eine kongruente Datenbankstruktur ist also in sämtlichen Derivaten sowie der zentralen Datenbank eine Voraussetzung Wie? • Erstellung einer Master-Datenbank, welche alle Anforderungen erfüllt • Duplizieren der Master-Datenbank und Anpassung der inhaltlichen Werte für das betreffende Derivat • Import der Daten aus der alten in die neue Datenbank, jeweils jedes Derivat einzeln • Die genannten Aufgaben werden teilweise automatisiert 11 challenge 1
  • 12. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Migrationsschritte 12 Folien mit diesem Symbol werden weniger detailliert vorgetragen (Selbststudium/Diskussionen)
  • 13. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Migrationsschritte 13 * Basis Tabelle = Table Occurence ohne Beziehungen, Bezeichnung beginnt mit __ + Tabelle Name
  • 14. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Migrationsschritte 14
  • 15. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Migrationsschritte 15
  • 16. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Migrationsschritte 16
  • 17. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Ergebnis: Datenbank mit identischer Struktur • Die Datenbank ist jetzt bereit für Entwicklung der Automatisierung um die bestehenden Primärschlüssel durch UUIDs zu ersetzen 17
  • 18.
  • 19. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Ziele und Motivation für die Benutzung einer neuen Technik • Ziel: Fehlende Fremdschlüssel ersetzen, alle PK/FK  UUIDs • Möglichst wenig manuelle Schritte • Wenig Änderungen an der Datenbankstruktur • Geringe Anzahl „Klicks“ bei der Migration • Keine Fehler bei der Feldzuteilung bei manuellen Importen • Geschwindigkeit • Geringe Dauer für die Datenübertragung • Die Datenübertragung soll lokal erfolgen um geringer Performance des Netzwerkes entgegen zu wirken • Intuitive, flexible Programmiersprache 19
  • 20.
  • 21. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Datenmanipulation mit R 21 Flights (Flüge) Airports (Flughäfen) Planes (Flugzeuge) Airports (Fluggesellschaften) Weather (Wetter) www.r-project.org
  • 22. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Datenmanipulation mit R 22 • Traditionelle Programmiersprache • Intuitive Befehle • Vernünftige Communityunterstützung auf StackOverflow • Hilfe leicht zu finden • Weit verbreitet
  • 23. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Datenmanipulation mit R 23 • asdf
  • 24. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Left join 24
  • 25. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Inner join 25
  • 26. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Mehrere Schritte in einer Kette 26 result <- fun3(fun2(fun1(x,paramA),paramB),paramC) Vermeidet das „Dagwood Sandwich Problem“: result <- x %>% fun1(paramA) %>% fun2(paramB) %>% fun3(paramC)
  • 27.
  • 28. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Wahl der Technik und deren Begründung: ODBC mit R • Möglichst wenig manuelle Schritte • Wenig Änderungen an der Datenbankstruktur (ODBC lesen, schreiben) • Geringe Anzahl „Klicks“ bei der Migration (Migration nach Master-DB) • Keine Fehler bei der Feldzuteilung bei manuellen Importen (Script) • Geschwindigkeit • Geringe Dauer für die Datenübertragung (Lokaler Server) • Die Datenübertragung soll lokal erfolgen um geringer Performance des Netzwerkes entgegen zu wirken • Intuitive, flexible Programmiersprache (Funktionsbasiert) 28
  • 29. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Konsekutive IDs nach UUIDs • - Copy source and target file locally, take newest master • - close DB and email market (START) • - copy globals from source dB: CURRENCY, MARKET, SUBTITLE, THISMARKET, THISMARKETKST (GLOB) • - in source database, perform show all for these layouts: __Marketing Activities, __Backups, __Budget, __KPI, __Segmentation • - Use the new update procedure to import the contents of these older versions into the new master. • - VERIFY NUMBER OF RECORDS IN ALL BASE TABLES (NREC) • - copy next serial num from source for tables: MARKETING ACTIVITIES::__ActivityID (only this one) (ACTD) • After update: • - fill Backups::__ID with sequential numbers, then run R script (BAKID, R) • - control security settings such that all accounts highlighted in attached screenshot are erased, (ACCTS) • - inspect the local “source” backup and add any additional market logins necessary (short account names, in all caps) • - test and open the updated database on the original server. (via main menu), view db structure • - fix external data sources so they point to the correct market (EXTD) 29
  • 30.
  • 31. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Open Source ODBC Setup auf MacOS mit einem lokalen FileMaker Server 31
  • 32. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper FM (11) Server Installation • Bei Problemen: • Uninstall mit Installer • Ordner /Library/FileMaker Server löschen • fms_11.0.4.404.dmg • fms_11.0.5.510_mac_updater.dmg • Neu installieren: • 11.0.4.404 • Gatekeeper: allow applications from anywhere • Java nicht aktualisieren • fmsadmin STOP SERVER • fmsadmin STOP ADMINSERVER • http://localhost:16000 32
  • 33. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper ODBC Driver Setup • Gatekeeper Deaktivieren: sudo spctl --master-disable • Driver herunterladen und installieren: http://help.filemaker.com/app/answers/detail/a_id/7865/~/software-update%3A- filemaker-11.3.76-xdbc-client-drivers • Command-Line-Tools installieren: xcode-select –install • Homebrew installieren: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" • Unixodbc installieren: brew update; brew install unixodbc • ini Dateien konfigurieren: • odbcinst.ini  Pfad zum Driver • odbc.ini  Datenbank Verbindungen 33 challenge 2
  • 34.
  • 35. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Custom Code für Datenmanipulation mit ODBC und R • Abstraktion, Lesbarkeit • FileMaker Treiber hinzufügen in odbcinst.ini • https://stackoverflow.com/questions/43700690/connect-r-to-filemaker-pro- 15-on-mac/46213524#46213524 • Connection hinzufügen in odbc.ini • Datenbank Struktur einlesen • Daten von allen Tabellen einlesen • Daten neu formatieren mit Join-Funktionen • Daten zurückschreiben 35
  • 36. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Custom Code für Datenmanipulation mit ODBC und R 36
  • 37. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Custom Code für Datenmanipulation mit ODBC und R 37
  • 38. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Custom Code für Datenmanipulation mit ODBC und R 38
  • 39.
  • 40. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Prüfen von Daten und deren Transformation mit R • Flexibler Code • Nur kleine Änderungen nötig zwischen ähnlichen Datenbanken • Ein komplettes Beispiel folgt 40
  • 41. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper R Packages und Variablen library(RODBC) library(dplyr) library(rJava) library(dplR) con = list() # con contains all details about external connections str = list() # str contains all details about the structure of the database stat = list() # stat contains statistics and counts summarizing the database dat = list() # dat contains all raw data from the base tables res = list() # res contains all results and analysis 41
  • 42. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Tabellenamen einlesen 42
  • 43. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Tabellenspalten einlesen 43
  • 44. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Datensätze einlesen 44
  • 45. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Fehlende Fremdschlüssel berechnen 45 Vorher Neue Daten (noch nicht geändert am Server) challenge 3
  • 46. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Spalte auswählen und Manipulation vorbereiten Nachher
  • 47. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper • Als Hilfsmittel für Datenbanken mit sehr vielen Tabellen und Spalten • Input: Feldname welcher die Primärschlüssel enthält • Output: Eine Liste aller Feldnamen welche einen identischen Wert enthalten • Zum Beispiel: • Input: MainTable::__ID • Output: Table1::_FK, Table13::_FK, Table18::_FK • Anwendungen: Legacy Datenbanken, Lösungen welche aus mehreren Dateien bestehen 47 challenge 4 Suche nach anderen PK/FK Kombinationen
  • 48.
  • 49. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Beispiel aus der Praxis: UUIDs • Daten in R als Variablen-Liste einlesen • str  Datenbank Struktur • dat  Original Daten • PK, FK identifizieren • PK und deren abhängige FKs berechnen • res neue Daten • Zurück in die Datenbank schreiben 49 challenge 5
  • 50. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper PK generieren 50
  • 51. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper FK generieren 51 Marketing Activities Documents
  • 52. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Neue Daten schreiben • Spalte auswählen und für Manipulation vorbereiten: • Datenmanipulation (für Spalte mit Abhängigkeiten): • Datenmanipulation (für Spalte ohne Abhängigkeiten): 52
  • 53.
  • 54. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Weitere Anwendungen von ODBC mit R • Ad-hoc Untersuchungen • Mock-up / Prototypen von Datenvisualisierung • Anwendungen von externen Datenquellen, “Open Data“ (opendata.ch) • Wetter, Geo, Tourismus, Soziales, Volkswirtschaft • Interaktive, Web-basierte Dashboards 54
  • 55. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Ad-hoc Untersuchungen: NYC Flüge 2013 • Beispieldateien hochgeladen: • nycflights13.fmp12, nycflights13.fp7  Als ODBC Quelle • nycflights13.rData  Gleiche Daten, für R vorbereitet • flights.csv, airports.csv, planes.csv, airlines.csv, weather.csv  z.B. als täglichen Export aus FileMaker • Zusammenfassung der 5 Tabellen: • flights: alle Flüge von NYC Flughafen im Jahr 2013: 336,776 insgesamt • airports: Flughafen, Orte und Namen • planes: Technische Details der Flugzeuge • airlines: Bezugstabelle mit Übersetzung zwischen Codes der Fluggesellschaften und deren Namen • weather: Stündliche Wetterdaten 55
  • 56. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Flüge (flights) 56
  • 57. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Flughäfen (airports) 57
  • 58. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Flugzeuge (planes) 58
  • 59. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Fluggesellschaften (airlines) 59
  • 60. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Wetter (weather) 60
  • 61.
  • 62. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Workshop: Fragen formulieren Typ 1: Fragen mit einer direkten Antwort als Zahl oder Tabelle: • Wie viele Flüge gab es pro Flughafen im Jahr 2013? • Welche Fluggesellschaft war am Tag mit der geringsten Sichtweite, am pünktlichsten? Typ 2: Fragen die eine Visualisierung der Antwort erfordern: • Menge von Flügen im Durchschnitt pro Wochentag für jeden Flughafen auf einem Balkendiagramm? Typ 3: Komplexe Fragen deren Interpretierung mehrere Analyseschritte erfordern: • Wann ist der beste Zeitpunkt für eine Flugreise und mit welcher Fluggesellschaft? 62
  • 63.
  • 64. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Übung Bitte überlegt euch folgendes: • Eine Frage (Typ 1, 2, oder 3), welche wir mit Hilfe der Daten beantworten können. • Welche Felder von welcher Tabelle werden benötigt? • Wie könnte man die Daten kombinieren um die Fragen beantworten zu können? • Mögliche oder erwartete Antwort oder eine Skizze eines möglichen Diagramms? 64
  • 65. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Vor- und Nachteile von externen Systemen (R, Python, Tableau) + • Andere Prozesse als bei FileMaker möglich • Wissenschaftliche Analyse • Testen und Konzeptualisierung ohne Änderungen der Datenbank Struktur - • Braucht mehr Vorbereitung • Lernen einer neuen Arbeitsmethode erforderlich • Abhängigkeit von anderen Systemen 65
  • 66. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Zusammenhang mit früheren FMK Vorlesungen • Versionsverwaltung mit git und SVN • http://de.slideshare.net/fmkonferenz/fmk2015-erste-schritte-mit-einem- codeversionierungssystem-by-thomas-hirt • Reguläre Ausdrücke • http://de.slideshare.net/fmkonferenz/fmk2015-regulre-ausdrcke-by-arnold- kegebein • Daten Visualisierung • http://www.slideshare.net/fmkonferenz/fmk2016-marcel-mor-the-power-of-svg/ • FM Scripting • https://de.slideshare.net/fmkonferenz/thomas-hirt-function-scripting • https://de.slideshare.net/fmkonferenz/fmk-2013-matroschka-prinzip-marcel-mor- holger-darjus?next_slideshow=1 • Unterschiede zwischen FileMaker Versionen • mehrere Vorträge an FM Konferenzen 66
  • 67.
  • 68. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Unterschiedliche Struktur  Import Wizard mit FM Script ODBC Treiber und Konfiguration eines lokalen DB-Servers  Geduld, StackOverflow Fehlende Fremdschlüssel  ODBC Verbindung und R Script für Joins Alle PK/FK Paare finden  R Script um den DB Inhalt zu analysieren PK/FK Paare mit UUIDs ersetzen  ODBC Verbindung und R Script 68 Challenges 1 2 3 4 5
  • 69. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Schlussfolgerungen • Externe Technik kann sich für spezifische Anwendungszwecke lohnen. • ODBC Schnittstellen erfordern eine aufwändige Installation und sind abhängig von der verwendeten FileMaker und MacOS Version. • Bevor viel Zeit in die Einrichtung eines neuen Prozesses oder Systems investiert wird, lohnt es sich sicher, die Daten mit einer externen Technik zu untersuchen um deren Wert einschätzen zu können (Pareto-Prinzip). 69
  • 70.
  • 71. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Ressourcen • R, RStudio IDE (open source, www.rstudio.com) • nycflights13 Package für R: • https://github.com/hadley/nycflights13 • https://cran.r-project.org/web/packages/nycflights13/index.html • https://cran.r-project.org/web/packages/nycflights13/nycflights13.pdf • Garrett Grolemund, Rstudio, Datacamp.com • Leach, P., Mealling, M., and Salz, R. (2005) A Universally Unique IDentifier (UUID) URN namespace. RFC 4122, RFC Editor. http://www.rfc- editor.org/rfc/rfc4122.txt • http://www.filemaker.com/support/product/docs/fms/fms11_help.pdf 71
  • 72. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Danke! • An das gesamte FM und IT Team bei Schweiz Tourismus • René Loosli, Daniel Mühle, Daniel Zuber • Daniel Mühle – FM Server einrichten, Lektorat • Die verwendeten Bilder der Schweiz wurden von André Meier und Ivo Scholz aufgenommen. Diese Bilder dürfen im Rahmen der FMK verwendet werden. 72
  • 73. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Vielen Dank unseren Sponsoren
  • 74.
  • 75. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Schnittstellen zu Fremdsystemen: Dr. Robert Rohrkemper Abstract für Slideshare Robert Rohrkemper zeigt in seinem Vortrag, wie man mit einem Open Source Treiber eine ODBC Verbindung aufbaut und maximale Geschwindigkeit mit ODBC erreicht. Stichwörter: • ODBC • Datenmanipulation • R • Datenanalyse • Datenbereinigung • Datenvisualisierung 75