Objekte für Zeitreisen erstellen und ändern
Übersicht
Zur Ausführung von Zeitreihenabfragen für NPSaaSerstellen Sie eine Zeitreisetabelle, ein Schema oder eine Datenbank (Zeitreihenobjekte), indem Sie DATA_VERSION_RETENTION_TIME (Aufbewahrungszeitintervall) auf einen Wert ungleich null setzen. Um DATA_VERSION_RETENTION_TIME festzulegen, verwenden Sie den Befehl CREATE oder ALTER für diese Objekttypen oder die Webkonsole. Sie können zwischen 1 Tag und bis zu 99 Tagen oder null auswählen, um ein temporales Objekt in ein nicht temporales Objekt zu ändern.
Bevor Sie die Aufbewahrungszeitintervalle für alle Tabellen in einem Schema oder einer Datenbank definieren, müssen Sie die Kosten für den Speicher für temporale Tabellen berücksichtigen, die von Bedeutung sein können. Siehe Speicherbelegung für Zeitreisen verwalten.
Sie können auch einen Standardwert für DATA_VERSION_RETENTION_TIME für das System festlegen.
Temporale Tabellen verfügen normalerweise über aktuelle Zeilen und Protokollzeilen. Aktuelle Zeilen werden nicht zum Löschen markiert. Protokollzeilen werden zum Löschen markiert (durch die Anweisungen DELETE, UPDATE, MERGE oder TRUNCATE ) und sind für Zeitreihenabfragen bis zum angegebenen Aufbewahrungszeitraum nach ihren Löschzeitmarken sichtbar.
Eine Tabelle mit dem Wert null für DATA_VERSION_RETENTION_TIME ist nicht temporal. Nur die aktuellen (nicht gelöschten) Zeilen sind für Abfragen sichtbar. Einige Protokollzeilen werden möglicherweise für Teilsicherungen beibehalten, aber die Zeilen sind für Zeitreihenabfragen nicht zugänglich.
Wenn Sie DATA_VERSION_RETENTION_TIME einer vorhandenen temporalen Tabelle auf null setzen, wird die Tabelle zu einer nicht temporalen Tabelle. Der Zugriff auf Langzeitdaten mit Zeitreiseabfragen wird nicht mehr unterstützt.
Einschränkungen
Änderungen an Aufbewahrungszeitintervallen für Tabellen, Schemata und Datenbanken werden nicht von primären Knoten auf Replikatknoten repliziert. Es handelt sich auch nicht um Tabellenzeilen mit Protokolldaten (gelöscht).
Die Aufbewahrungszeitintervalle von Tabellen, Schemas und Datenbanken werden automatisch mit dem Befehl nzbackup gesichert und mit dem Befehl nzrestore wiederhergestellt. Die Einfüge-und Löschzeitmarken von Tabellenzeilen
werden nicht gesichert und wiederhergestellt. Wiederhergestellte Zeilen erhalten neue Einfügezeitmarken in der Zieldatenbank oder im Zielsystem und Zeilen, die durch inkrementellen Restore gelöscht wurden, erhalten neue Löschzeitmarken in
der Zieldatenbank oder im Zielsystem. Es gibt keine Erwartung oder Garantie, dass die Anzahl der historischen Versionen einer Zeile auf dem Ziel mit der in der Quellendatenbank übereinstimmt. Beispielsweise kann eine bestimmte Zeile zwischen
Sicherungsinkrementen in der Quelle mehrmals aktualisiert oder aktualisiert und anschließend gelöscht werden. Diese Aktionen führen zu einer einzelnen Löschung dieser Zeile auf dem Ziel.
Wenn Sie versuchen, Ihr NPSaaS-System um zusätzliche SPU-Gehäuse zu erweitern, führt die Prozedur zum Verlust von archivierten (gelöschten) Zeilen. Alle aktuellen Zeilen werden mit neuen Einfügezeitmarken neu verteilt.
Die folgenden Tabellentypen können keine temporalen Tabellen sein:
- Temporäre Tabellen
- Externe Tabellen
- Versionierte Tabellen, die durch Hinzufügen und/oder Löschen von Spalten geändert wurden
- Zeilensichere Tabellen.
Diese Einschränkung betrifft die folgenden Befehle:
-
CREATE TABLE ROW SECURITY, CREATE EXTERNAL TABLE, CREATE TEMPORARY TABLE Wenn DATA_VERSION_RETENTION_TIME mit einem Wert ungleich Null angegeben ist, schlagen die Befehle fehl.
-
ALTER TABLE DATA_VERSION_RETENTION_TIME Wenn die Tabelle eine temporäre, zeilensichere, versionierte oder externe Tabelle ist und DATA_VERSION_RETENTION_TIME mit einem Wert ungleich Null angegeben wird, schlägt der Befehl fehl.
-
ALTER TABLE ADD COLUMN, ALTER TABLE DROP COLUMN Wenn in der Tabelle eine DATA_VERSION_RETENTION_TIME ungleich Null angegeben ist, schlägt der Befehl fehl.
Der Befehl GROOM TABLE VERSIONS wandelt eine versionierte Tabelle in eine nicht versionierte Tabelle um. In diesem Fall können Sie DATA_VERSION_RETENTION_TIME ungleich null mit dem Befehl ALTER TABLE angeben.
Ausnahmebedingungen im Zusammenhang mit DATA_VERSIONS_RETENTION_TIME für watsonx.data
Es gibt Ausnahmen für watsonx.data in Bezug auf DATA_VERSION_RETENTION_TIME. Die folgende Tabelle enthält Informationen zum Verhalten der Eigenschaft DATA_VERSION_RETENTION_TIME für Datenbanken, Schemas und Tabellen für watsonx.data.
| Verhalten | Ausnahme |
|---|---|
| CREATE DATABASE mit DATA_VERSION_RETENTION_TIME für watsonx.data | Nicht zulässig |
| ALTER DATABASE mit DATA_VERSION_RETENTION_TIME für watsonx.data | Nicht zulässig |
| CREATE SCHEMA mit DATA_VERSION_RETENTION_TIME für watsonx.data | Nicht zulässig |
| ALTER SCHEMA mit DATA_VERSION_RETENTION_TIME für watsonx.data | Nicht zulässig mit Ausnahme von NETEZZA_SCHEMA |
| CREATE TABLE mit (temporaler) Tabelle DATA_VERSION_RETENTION_TIME | Nur unter NETEZZA_SCHEMA zulässig |
| ALTER TABLE mit (temporaler) Tabelle DATA_VERSION_RETENTION_TIME | Nur unter NETEZZA_SCHEMA zulässig |
Wenn SYSTEM DEFAULT DATA_VERSION_RETENTION_TIME ungleich null ist, übernimmt CREATE DATABASE die Eigenschaft nicht von SYSTEM DEFAULT. CREATE SCHEMA mit NETEZZA_SCHEMA übernimmt keine Datenbankeigenschaft. Es sind keine Auswirkungen oder Änderungen für die automatische Zeitreisetask für watsonx.dataerforderlich.
Zeitreiseobjekte mit der Befehlszeile erstellen
Temporale Tabellen über die Befehlszeile erstellen
Um eine temporale Tabelle zu erstellen, setzen Sie DATA_VERSION_RETENTION_TIME auf einen Wert ungleich null.
Ausführliche Informationen zur Syntax und zu Berechtigungen finden Sie unter Befehl CREATE TABLE.
CREATE TABLE <tablename> ( <col>[, <col>… ] ) DATA_VERSION_RETENTION_TIME <number-of-days>;
Beispiel:
CREATE TABLE PRODUCT (prodid int, proddesc char(100)) DATA_VERSION_RETENTION_TIME 30;
Wenn Sie eine Zeile in die Tabelle einfügen, erhält die Zeile eine virtuelle Einfügezeitmarke, die der Commitzeit der Einfügetransaktion entspricht.
Wenn Sie eine Zeile aus der Tabelle löschen, erhält die Zeile eine virtuelle Löschzeitmarke, die der Commitzeit der Löschtransaktion (oder Abschneidetransaktion) entspricht.
Temporale Schemas über die Befehlszeile erstellen
Um ein temporales Schema zu erstellen, setzen Sie DATA_VERSION_RETENTION_TIME auf einen Wert ungleich null.
Ausführliche Informationen zur Syntax und zu den Berechtigungen finden Sie unter Befehl CREATE SCHEMA.
CREATE SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME <number-of-days>;
Beispiel:
CREATE SCHEMA SCHEMA1 DATA_VERSION_RETENTION_TIME 30;
Temporale Datenbanken über die Befehlszeile erstellen
Zum Erstellen einer temporalen Datenbank setzen Sie DATA_VERSION_RETENTION_TIME auf einen Wert ungleich null.
Ausführliche Informationen zur Syntax und zu Berechtigungen finden Sie unter Befehl CREATE DATABASE.
CREATE DATABASE <db_name> DATA_VERSION_RETENTION_TIME <number-of-days>;
Beispiel:
CREATE DATABASE DB1 DATA_VERSION_RETENTION_TIME 30;
Zeitreiseobjekte mit der Webkonsole erstellen
Temporale Tabellen mit der Webkonsole erstellen
- Melden Sie sich an der Webkonsole an, wie unter Einführung in die Webkonsole beschrieben.
- Erstellen Sie eine temporale Tabelle wie in Tabellen erstellen beschrieben.
Sie müssen retention time interval auf einen Wert ungleich null setzen.
Datenbanken, Schemas und Tabellennamen, die einen Punkt (".") enthalten Sie werden nicht in den Statistiken und Diagrammen für Zeitreisen angezeigt, wenn Sie das Aufbewahrungszeitintervall auf einen Wert ungleich null setzen. Wenn Sie das Aufbewahrungszeitintervall nicht festlegen, werden alle Sonderzeichen unterstützt.
Wenn Sie eine Zeile in die Tabelle einfügen, erhält die Zeile eine virtuelle Einfügezeitmarke, die der Commitzeit der Einfügetransaktion entspricht.
Wenn Sie eine Zeile aus der Tabelle löschen, erhält die Zeile eine virtuelle Löschzeitmarke, die der Commitzeit der Löschtransaktion (oder Abschneidetransaktion) entspricht.
Temporale Schemas mit der Webkonsole erstellen
Um ein temporales Schema zu erstellen, setzen Sie retention time interval auf einen Wert ungleich null.
- Melden Sie sich an der Webkonsole an, wie unter Einführung in die Webkonsole beschrieben.
- Erstellen Sie ein temporales Schema wie unter Schemas erstellen beschrieben.
Temporale Datenbanken über die Befehlszeile erstellen
Um eine temporale Datenbank zu erstellen, setzen Sie retention time interval auf einen Wert ungleich null.
- Melden Sie sich an der Webkonsole an, wie unter Einführung in die Webkonsole beschrieben.
- Erstellen Sie eine temporale Datenbank, wie unter Datenbanken erstellen beschrieben.
Ändern von Zeitreiseobjekten über die Befehlszeile
Ändern temporaler Tabellen in nicht temporale Tabellen über die Befehlszeile
Um eine temporale Tabelle in eine nicht temporale Tabelle zu ändern, setzen Sie DATA_VERSION_RETENTION_TIME auf 0.
Ausführliche Informationen zur Syntax und den erforderlichen Berechtigungen finden Sie unter Befehl ALTER TABLE.
ALTER TABLE <table> DATA_VERSION_RETENTION_TIME 0;
Beispiel:
ALTER TABLE PRODUCT DATA_VERSION_RETENTION_TIME 0;
Wenn Sie DATA_VERSION_RETENTION_TIME auf 0 setzen, können Sie keine Zeitabfragen ausführen und Sie haben keinen Zugriff mehr auf Protokollzeilen für diese Tabelle. Sie können einige oder alle der jetzt nicht zugänglichen Protokollzeilen in der Tabelle mit GROOM TABLE freigeben.
Ändern von nicht temporalen Tabellen in temporale Tabellen mit der Befehlszeile
Um eine nicht temporale Tabelle in eine temporale Tabelle zu ändern, setzen Sie DATA_VERSION_RETENTION_TIME] auf einen Wert ungleich null.
Ausführliche Informationen zur Syntax und den erforderlichen Berechtigungen finden Sie unter Befehl ALTER TABLE.
ALTER TABLE <table> DATA_VERSION_RETENTION_TIME <number-of-days>;
Beispiel:
ALTER TABLE PRODUCT DATA_VERSION_RETENTION_TIME 30;
Wenn Sie Ihre temporale Tabelle zuerst inaktiviert und dann dieselbe Tabelle in eine temporale Tabelle konvertiert haben, haben Sie keinen Zugriff auf die vorherigen Protokollzeilen für diese Tabelle. Protokolldaten werden erfasst, wenn Zeilen gelöscht oder aktualisiert werden, nachdem die Tabelle in temporale Daten konvertiert wurde.
Wie beim Befehl CREATE TABLE erhält eine Zeile, die in die Tabelle eingefügt wird, eine virtuelle Einfügezeitmarke, die der Commitzeit der Einfügetransaktion entspricht. Eine Zeile, die aus der Tabelle gelöscht wird, erhält eine virtuelle Löschzeitmarke, die der Commitzeit der Löschtransaktion (oder Abschneidetransaktion) entspricht. Die Untergrenze für die Aufbewahrungsdauer und die Startzeit für die Aufbewahrungsdauer der Tabelle sind gleich oder kurz vor der Commitzeit dieser ALTER TABLE-Transaktion.
Im Gegensatz zum Befehl CREATE TABLE, der keine vorhandenen Zeilen enthält, werden vorhandene sichtbare Zeilen in der Tabelle so behandelt, als würden sie von dieser ALTER TABLE-Transaktion eingefügt. Die vorhandenen sichtbaren Zeilen empfangen Zeitmarken für virtuelle Einfügungen, die der Startzeit der Aufbewahrungsdauer entsprechen. Mit diesen Zeitmarken sind die Zeilen potenziell für Zeitreiseabfragen sichtbar.
Ändern temporaler Schemata in nicht temporale Schemata über die Befehlszeile
Um ein temporales Schema in ein nicht temporales Schema zu ändern, setzen Sie DATA_VERSION_RETENTION_TIME auf 0.
Detaillierte Informationen zur Syntax, zu den erforderlichen Berechtigungen und zur Option CASCADE finden Sie in Befehl ALTER SCHEMA.
ALTER SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
Beispiel:
ALTER SCHEMA SCHEMA DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
Ändern von nicht temporalen Schemata in temporale Schemata mit der Befehlszeile
Um ein nicht temporales Schema in temporales Schema zu ändern, setzen Sie DATA_VERSION_RETENTION_TIME auf einen Wert ungleich null.
Detaillierte Informationen zur Syntax, zu den erforderlichen Berechtigungen und zur Option CASCADE finden Sie in Befehl ALTER SCHEMA.
ALTER SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE;
Beispiel:
ALTER SCHEMA DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;
Ändern temporaler Datenbanken in nicht temporale Datenbanken über die Befehlszeile
Wenn Sie eine temporale Datenbank in eine nicht temporale Datenbank ändern möchten, setzen Sie DATA_VERSION_RETENTION_TIME auf 0.
Ausführliche Informationen zur Syntax und den erforderlichen Berechtigungen finden Sie unter Befehl ALTER DATABASE.
ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
Beispiel:
ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 0 NOCASCADE;
Ändern von nicht temporalen Datenbanken in temporale Datenbanken über die Befehlszeile
Um eine nicht temporale Datenbank in eine temporale Datenbank zu ändern, setzen Sie DATA_VERSION_RETENTION_TIME auf einen Wert ungleich null.
Ausführliche Informationen zur Syntax und den erforderlichen Berechtigungen finden Sie unter Befehl ALTER DATABASE.
ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE;
Beispiel:
ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;
Zeitreisobjekte mit der Webkonsole ändern
Ändern temporaler Tabellen in nicht temporale Tabellen mit der Webkonsole
Um eine temporale Tabelle in eine nicht temporale Tabelle zu ändern, setzen Sie retention time interval auf 0.
- Melden Sie sich an der Webkonsole an, wie unter Einführung in die Webkonsole beschrieben.
- Ändern Sie Ihre Tabelle wie im Abschnitt Aufbewahrungszeitraum für Tabellen aktualisieren beschrieben.
Wenn Sie retention time interval auf 0 setzen, können Sie keine Reiseabfragen zur Laufzeit ausführen und Sie haben keinen Zugriff auf Protokollzeilen für diese Tabelle mehr. Sie können einige oder alle der jetzt nicht zugänglichen Protokollzeilen in der Tabelle mit GROOM TABLE freigeben.
Ändern nicht temporaler Tabellen in temporale Tabellen mit der Webkonsole
Um eine nicht temporale Tabelle in eine temporale Tabelle zu ändern, setzen Sie das Aufbewahrungszeitintervall auf einen Wert ungleich null.
- Melden Sie sich an der Webkonsole an, wie unter Einführung in die Webkonsole beschrieben.
- Ändern Sie Ihre Tabelle wie im Abschnitt Aufbewahrungszeitraum für Tabellen aktualisieren beschrieben.
Wenn Sie Ihre temporale Tabelle zuerst inaktiviert und dann dieselbe Tabelle in eine temporale Tabelle konvertiert haben, haben Sie keinen Zugriff auf die vorherigen Protokollzeilen für diese Tabelle. Protokolldaten werden erfasst, wenn Zeilen gelöscht oder aktualisiert werden, nachdem die Tabelle in temporale Daten konvertiert wurde.
Ähnlich wie beim Erstellen einer Tabelle erhält eine Zeile, die in die Tabelle eingefügt wird, eine virtuelle Einfügezeitmarke, die der Commitzeit der Einfügetransaktion entspricht. Eine Zeile, die aus der Tabelle gelöscht wird, erhält eine virtuelle Löschzeitmarke, die der Commitzeit der Löschtransaktion (oder Abschneidetransaktion) entspricht. Die Untergrenze für die Aufbewahrungsdauer der Tabelle und die Startzeit für die Aufbewahrungsdauer sind gleich oder kurz vor der Commitzeit dieser Änderungstransaktion.
Im Gegensatz zum Erstellen einer Tabelle werden vorhandene sichtbare Zeilen in der Tabelle so behandelt, als würden sie von dieser Änderungstransaktion eingefügt. Die vorhandenen sichtbaren Zeilen empfangen Zeitmarken für virtuelle Einfügungen, die der Startzeit der Aufbewahrungsdauer entsprechen. Mit diesen Zeitmarken sind die Zeilen potenziell für Zeitreiseabfragen sichtbar.
Ändern temporaler Schemata in nicht temporale Schemata mit der Webkonsole
Wenn Sie ein temporales Schema in ein nicht temporales Schema ändern möchten, setzen Sie retention time interval auf 0.
- Melden Sie sich an der Webkonsole an, wie unter Einführung in die Webkonsole beschrieben.
- Ändern Sie Ihre Tabelle wie in Aufbewahrungszeitraum für Schemas aktualisieren beschrieben.
Ändern nicht temporaler Schemata in temporale Schemata mit der Webkonsole
Wenn Sie ein nicht temporales Schema in ein temporales Schema ändern möchten, setzen Sie retention time interval auf einen Wert ungleich null.
- Melden Sie sich an der Webkonsole an, wie unter Einführung in die Webkonsole beschrieben.
- Ändern Sie Ihre Tabelle wie in Aufbewahrungszeitraum für Schemas aktualisieren beschrieben.
Ändern temporaler Datenbanken in nicht temporale Datenbanken mit der Webkonsole
Um eine temporale Datenbank in eine nicht temporale Datenbank zu ändern, setzen Sie retention time interval auf 0.
- Melden Sie sich an der Webkonsole an, wie unter Einführung in die Webkonsole beschrieben.
- Ändern Sie Ihre Tabelle wie im Abschnitt Aufbewahrungszeitraum für Datenbanken aktualisieren beschrieben.
Ändern nicht temporaler Datenbanken in temporale Datenbanken mit der Webkonsole
Um eine nicht temporale Datenbank in eine temporale Datenbank zu ändern, setzen Sie das Aufbewahrungszeitintervall auf einen Wert ungleich null.
- Melden Sie sich an der Webkonsole an, wie unter Einführung in die Webkonsole beschrieben.
- Ändern Sie Ihre Tabelle wie im Abschnitt Aufbewahrungszeitraum für Datenbanken aktualisieren beschrieben.
Nächste Schritte
Nachdem Sie Zeitreiseobjekte erstellt haben, können Sie mit der Ausführung von Zeitreiseabfragen beginnen. Weitere Informationen erhalten Sie nach Auswahl der folgenden Links.