Ressource erstellen

Die Erstellung einer Ressource ist erforderlich, um die Datenaufnahme aus einem Quellsystem zu definieren und zu planen. Die PUBLIC.CREATE_RESOURCE-Prozedur ist der Einstiegspunkt aus der UI oder einem Arbeitsblatt, um eine neue Ressource zu erstellen.

Zum Aufrufen dieser Prozedur muss dem Benutzer die Anwendungsrolle ADMIN zugewiesen sein.

Der Prozess der Ressourcenerstellung 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 erstellt wird

  4. Erstellung der Datenaufnahmedefinition von Ressourcen und der Datenaufnahmeprozesse

  5. Benutzerdefinierte Logik nach der Erstellung einer Ressource

Erstvalidierung

Die Erstvalidierung wird gleich zu Beginn des Erstellungsprozesses der Ressource durchgeführt, und es wird überprüft:

  • ob gegebene Eingabedaten ein gültiges Objekt für die Datenaufnahmedefinition der Ressource darstellen

  • ob keine Ressource mit angegebener id und resourceId existiert

Benutzerdefinierte Validierung

Die benutzerdefinierte Validierung wird nach der anfänglichen Validierung ausgeführt und ist so konzipiert, dass sie die kundenspezifische Logik des Konnektors unterstützt. So können Sie beispielsweise überprüfen, ob eine bestimmte Ressource in einem Quellsystem vorhanden ist.

Standardmäßig wird PUBLIC.CREATE_RESOURCE_VALIDATE(resource VARIANT) aufgerufen, das 'response_code': 'OK' zurückgibt. Sie kann über das SQL-Skript oder durch Verwendung von CreateResourceHandlerBuilder überschrieben werden, um eine kundenspezifische Implementierung der CreateResourceValidator-Schnittstelle bereitzustellen.

Wenn die benutzerdefinierte Überprüfung einen Fehler zurückgibt, werden die folgenden Schritte nicht ausgeführt, und es wird die Fehlerantwort durch die CREATE_RESOURCE-Prozedur zurückgegeben.

Benutzerdefinierte Logik, bevor eine Ressource erstellt wird

Sie können eine benutzerdefinierte Logik implementieren, bevor eine Ressource erstellt und in den Zeitplan aufgenommen wird. Sie können damit zum Beispiel eine neue Zieltabelle erstellen, in der die Aufnahmedaten gespeichert werden.

Standardmäßig wird PUBLIC.PRE_CREATE_RESOURCE(resource VARIANT) aufgerufen, das 'response_code': 'OK' zurückgibt. Die Prozedur kann über das SQL-Skript oder durch Verwendung von CreateResourceHandlerBuilder überschrieben werden, um eine kundenspezifische Implementierung der PreCreateResourceCallback-Schnittstelle bereitzustellen.

Wenn die benutzerdefinierte Logik einen Fehler zurückgibt, werden die nachfolgenden Schritte nicht ausgeführt, und die bereitgestellte Fehlerantwort wird von der CREATE_RESOURCE-Prozedur zurückgegeben.

Erstellung der Datenaufnahmedefinition von Ressourcen und der Datenaufnahmeprozesse

Bei diesem Schritt wird ein neuer Datensatz zur STATE.RESOURCE_INGESTION_DEFINITION-Tabelle hinzugefügt. Wenn eine Ressource zum ersten Mal aktiviert wird (enabled Parameter gleich true), wird außerdem für jede bereitgestellte Aufnahmekonfiguration ein neuer Datenaufnahmeprozess hinzugefügt. Datenaufnahmeprozesse werden mit dem SCHEDULED-Status erstellt, was bedeutet, dass die Aufnahme später beginnen wird. Wenn das Kennzeichen enabled auf false gesetzt ist, wird kein Datenaufnahmeprozess erstellt und die ENABLE_RESOURCE-Prozedur muss aufgerufen werden, um die Aufnahme zu aktivieren.

Benutzerdefinierte Logik nach der Erstellung einer Ressource

Die benutzerdefinierte Logik kann nach der Erstellung und dem Zeitplan einer Ressource festgelegt werden. Sie können damit zum Beispiel eine neue Zieltabelle erstellen, in der die Aufnahmedaten gespeichert werden.

Standardmäßig wird PUBLIC.POST_CREATE_RESOURCE(id VARCHAR) aufgerufen, das 'response_code': 'OK' zurückgibt. Die Prozedur kann über das SQL-Skript oder durch Verwendung von CreateResourceHandlerBuilder überschrieben werden, um eine kundenspezifische Implementierung der PostCreateResourceCallback-Schnittstelle bereitzustellen.

Wenn die benutzerdefinierte Logik einen Fehler zurückgibt, wird die gegebene Fehlerantwort von der CREATE_RESOURCE-Prozedur zurückgegeben, aber die Erstellung der Datenaufnahmedefinition der Ressource und die Datenaufnahmeprozesse werden nicht zurückgesetzt.

Antwort

Erfolgreiche Antwort

Bei Erfolg liefert die Prozedur eine Antwort, die in etwa so aussieht:

{
  "response_code": "OK",
  "id": "<new resource ingestion definition id>"
}
Copy

Die in der Antwort zurückgegebene id ist eine ID der Datenaufnahmedefinition von Ressourcen und kann verwendet werden, um die Ressource später zu aktivieren, zu deaktivieren oder zu aktualisieren.

Fehlerantwort

Bei einem Fehler gibt die Prozedur eine Antwort zurück, die in etwa so aussieht:

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

Mögliche Fehlercodes sind:

  • INVALID_INPUT - Die mitgelieferten Argumente der Prozedur sind ungültig, und es ist nicht möglich, ein gültiges Ressourcenobjekt zu erstellen oder eine Ressource mit der angegebenen ID existiert bereits.

  • CREATE_RESOURCE_ERROR - Bei der Erstellung der neuen Datenaufnahmedefinition von Ressourcen oder bei der Erstellung von Datenaufnahmeprozessen ist etwas Unerwartetes passiert. Alle Änderungen werden rückgängig gemacht.