Ressource aktualisieren¶
Die Aktualisierung einer Ressource wird verwendet, um die Datenaufnahmekonfigurationen für eine bestimmte Ressource neu zu definieren. Die Prozedur PUBLIC.UPDATE_RESOURCE
ist der Einstiegspunkt von UI oder dem Arbeitsblatt zur Aktualisierung einer Ressource.
Der Aufruf dieser Prozedur setzt voraus, dass dem Benutzer die Anwendungsrolle ADMIN
zugewiesen wurde.
Der Prozess der Ressourcenaktualisierung besteht aus mehreren Phasen. Mehrere davon sind anpassbar, enthalten aber vernünftige Standardeinstellungen. Die Phasen sind:
Erstvalidierung
Benutzerdefinierte Validierung
Benutzerdefinierte Logik, bevor eine Ressource aktualisiert wird
Aktualisierung von Datenaufnahmekonfigurationen
Beenden von Datenaufnahmeprozessen für externe Datenaufnahmekonfigurationen
Zeitplan für Datenaufnahmeprozesse für neue Datenaufnahmekonfigurationen
Benutzerdefinierte Logik nach der Aktualisierung einer Ressource und Verwaltung der Datenaufnahmeprozesse
Erstvalidierung¶
Die Erstvalidierung wird gleich zu Beginn der Aktualisierung der Ressourcen durchgeführt. Es wird geprüft:
ob die gegebenen Eingabedaten ein gültiges Konfigurationsobjekt für die Ressourcenaufnahme darstellen
ob eine Ressource mit dem angegebenen
id
undresourceId
existiert
Benutzerdefinierte Validierung¶
Die benutzerdefinierte Validierung wird direkt nach der Erstvalidierung ausgeführt. Es handelt sich um einen Teil des Prozesses, der mit der konnektorspezifischen Logik angepasst werden soll.
Standardmäßig wird PUBLIC.UPDATE_RESOURCE_VALIDATE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT)
aufgerufen, das 'response_code': 'OK'
zurückgibt. Die Prozedur kann über das SQL-Skript oder durch Verwendung von UpdateResourceHandlerBuilder
überschrieben werden, um eine kundenspezifische Implementierung der UpdateResourceValidator
-Schnittstelle bereitzustellen.
Wenn die benutzerdefinierte Validierung einen Fehler ergibt, werden die nächsten Schritte nicht ausgeführt, und die angegebene Antwort wird von der UPDATE_RESOURCE
-Prozedur zurückgegeben.
Benutzerdefinierte Logik, bevor eine Ressource aktualisiert wird¶
Eine benutzerdefinierte Logik kann definiert und ausgeführt werden, bevor eine Ressource aktualisiert und neu eingeplant wird.
Standardmäßig wird PUBLIC.PRE_UPDATE_RESOURCE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT)
aufgerufen, das 'response_code': 'OK'
zurückgibt. Die Prozedur kann über das SQL-Skript oder durch Verwendung von UpdateResourceHandlerBuilder
überschrieben werden, um eine kundenspezifische Implementierung der PreUpdateResourceCallback
-Schnittstelle bereitzustellen.
Wenn die benutzerdefinierte Logik einen Fehler ergibt, werden die nächsten Schritte nicht ausgeführt, und die angegebene Fehlerantwort wird von der UPDATE_RESOURCE
-Prozedur zurückgegeben.
Aktualisierung der Konfigurationen für die Ressourcenaufnahme¶
In diesem Schritt werden neue Aufnahmekonfigurationen für die Ressource mit einer bestimmten resource_ingestion_definition_id
in der STATE.RESOURCE_INGESTION_DEFINITION
-Tabelle gespeichert.
Beenden von Datenaufnahmeprozessen für externe Datenaufnahmekonfigurationen¶
Wenn in diesem Schritt eine Ressource aktiviert wird (der Parameter enabled
ist gleich true
), werden alle aktiven Aufnahmeprozesse (mit den Status SCHEDULED
oder IN_PROGRESS
) mit Aufnahmekonfigurationen, deren IDs nicht in der Menge der aktualisierten Aufnahmekonfigurationen enthalten sind, beendet, d. h. ihr Status wird auf FINISHED
gesetzt.
Zeitplan für Datenaufnahmeprozesse für neue Datenaufnahmekonfigurationen¶
In diesem Schritt werden, wenn eine Ressource aktiviert ist (der Parameter enabled
ist gleich true
), neue Aufnahmeprozesse für aktualisierte Aufnahmekonfigurationen erstellt, die in einem früheren Zustand der Aufnahmekonfigurationen für eine bestimmte Ressource nicht existierten.
Benutzerdefinierte Logik nach der Aktualisierung einer Ressource¶
Benutzerdefinierte Logik kann implementiert und ausgeführt werden, nachdem die Konfigurationen für die Ressourcenaufnahme aktualisiert wurden.
Standardmäßig wird PUBLIC.POST_UPDATE_RESOURCE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT)
aufgerufen, das 'response_code': 'OK'
zurückgibt. Die Prozedur kann über das SQL-Skript oder durch Verwendung von UpdateResourceHandlerBuilder
überschrieben werden, um eine kundenspezifische Implementierung der PostUpdateResourceCallback
-Schnittstelle bereitzustellen.
Wenn die benutzerdefinierte Logik einen Fehler zurückgibt, wird die angegebene Fehlerantwort von der UPDATE_RESOURCE
-Prozedur zurückgegeben. Die Aktualisierung der Definition der Ressourcenaufnahme und der Aufnahmeprozesse wird jedoch nicht rückgängig gemacht, so dass dies bei Bedarf von der benutzerdefinierten Implementierung übernommen werden sollte.
Antwort¶
Erfolgreiche Antwort¶
Bei Erfolg gibt die Prozedur ein Ergebnis zurück, das ähnlich aussieht:
{ "response_code": "OK", "message": "Resource successfully updated." }
Fehlerantwort¶
Bei Fehlern wird eine Antwort ähnlich der Folgenden zurückgegeben:
{ "response_code": "<ERROR_CODE>", "message": "<error message>" }
Mögliche Fehlercodes sind:
INVALID_INPUT
- Die bereitgestellten Argumente der Prozedur sind ungültig, und es ist nicht möglich, die Konfigurationen für die Ressourcenaufnahme zu aktualisieren, oder eine Ressource mit dem angegebenen Wert existiert nicht.UPDATE_RESOURCE_ERROR
- Bei der Aktualisierung der Definition für die Ressourcenaufnahme mit neuen Aufnahmekonfigurationen oder beim Verwalten von Aufnahmeprozessen ist etwas Unerwartetes aufgetreten. Alle Änderungen werden rückgängig gemacht.