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:

  1. Erstvalidierung

  2. Benutzerdefinierte Validierung

  3. Benutzerdefinierte Logik, bevor eine Ressource aktualisiert wird

  4. Aktualisierung von Datenaufnahmekonfigurationen

  5. Beenden von Datenaufnahmeprozessen für externe Datenaufnahmekonfigurationen

  6. Zeitplan für Datenaufnahmeprozesse für neue Datenaufnahmekonfigurationen

  7. 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 und resourceId 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."
}
Copy

Fehlerantwort

Bei Fehlern wird eine Antwort ähnlich der Folgenden zurückgegeben:

{
  "response_code": "<ERROR_CODE>",
  "message": "<error message>"
}
Copy

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.