4.3.1.1  Ausführen einiger Beispiel-Queries

Wie im vorherigen Kapitel beschrieben, muss in der Konsolensitzung zwischen Anlegen der Originalversion und der Aktualisierung eine Verzögerung eingebaut werden, um irgendwie das "Zeitloch" zu simulieren, in dem - wenn wir bei dem vorherigen Beispiel bleiben - der Personalausweis als Verlust gemeldet war, aber tatsächlich schon wieder in meinem Besitz war.
Ohne jetzt groß validStart und validEnd anzupassen, habe ich das Beispiel mit einer Verzögerung von 50 Sekunden lassen:
( xdmp:invoke-function(local:create-temporal-fields#0),
  xdmp:invoke-function(local:create-range-index-fields#0),
  xdmp:invoke-function(local:create-axes#0),
  xdmp:invoke-function(local:create-temporal-collection#0),
  xdmp:invoke-function(local:insert-original#0),
  xdmp:sleep(50000),
  xdmp:invoke-function(local:insert-update#0))
Und bekomme folgendes Ergebnis:
Diese Daten wurde aus der Exploreransicht der Konsolensitzung entnommen.
Document
validStart
validEnd
systemStart
systemEnd
duesel_alex_270774.2462380991258156208.xml
2019-03-19T14:17:00
unendlich
2019-03-19T13:18:28
2019-03-19T13:19:18
duesel_alex_270774.819911042637597172.xml
2019-03-19T14:17:00
2019-03-19T14:18:00
2019-03-19T13:19:18
unendlich
duesel_alex_270774.xml
2019-03-19T14:18:00
unendlich
2019-03-19T13:19:18
unendlich
Wie man sieht, müsste sich jetzt das Zeitloch von 50 Sekunden der Systemzeiten innerhalb der gültigen Zeiten befinden, um das Beispiel mit dem verlorenen Ausweis zumindest für die Zeitspanne von 50 Sekunden simulieren zu können.
Das korrekte Setup bleibt an dieser Stelle dem geneigten Leser selbst überlassen.
Zwei Queries, die die Werte in der Tabelle illustrieren, sind bspw. folgende:
Bei dieser Query werden alle Dokumente gesucht, deren gültiger Zeitraum, den Zeitraum zwischen 14:17 Uhr und 14:18 Uhr umfasst. Das sind das Split-Dokument und das Original-Dokument. Beide haben den Status "gestolen", da erst um 14:18 Uhr der Fund bekannt gegeben wurde.
Verändert man den Zeitraum nach 18:00 Uhr, so wird das Original - wie erwartet - durch das Update verdrängt.
Die aktuelle Version des temporal verwalteten Dokuments ist in der Collection "latest" gespeichert.
Wie man sieht, kann man - ausreichend Lösungsphantasie vorausgesetzt - einiges mit diesen Queries anstellen. Hilfreich ist sicherlich auch die umfangreiche Liste der Vergleichsoperatoren, die MarkLogic zum Vergleichen von Zeiträumen bereitstellt: ISO Operators ↗↗ und ALLEN Operators ↗↗.
Previous Page Next Page
Version: 93
Jan 25 2021