Auf dieser Seite wird beschrieben, wie Sie Pipelines mithilfe der Versionsverwaltung in Cloud Data Fusion über Git-Repositories verwalten.
Versionsverwaltung
Cloud Data Fusion bietet die Möglichkeit, Pipelines für ETL- und ELT-Integrationen visuell zu entwerfen. Zur besseren Verwaltung von Pipelines zwischen Entwicklung und Produktion ermöglicht Cloud Data Fusion die Versionsverwaltung der Pipelines über GitHub und andere Versionskontrollsysteme.
Mit der Versionsverwaltung in Cloud Data Fusion haben Sie folgende Möglichkeiten:
- Integrieren Sie jeden Cloud Data Fusion-Namespace in ein Versionsverwaltungssystem.
- Verwalten Sie Ihre Pipelines in einem zentralen Git-Repository.
- Pipelineänderungen prüfen und prüfen.
- Pipelineänderungen rückgängig machen.
- Effektiv mit dem Team zusammenarbeiten und gleichzeitig eine zentrale Kontrolle gewährleisten.
Hinweise
- Source Control Management unterstützt die Einbindung in GitHub-, Bitbucket Server-, Bitbucket Cloud- und Gitlab-Repositories.
- GitHub-OAuth wird nicht unterstützt.
- Versionsverwaltung unterstützt nur Batchpipelines.
- Die Versionsverwaltung unterstützt nur JSON-Dateien für Pipelinedesign für Push- und Pull-Vorgänge. Ausführungskonfigurationen werden nicht unterstützt.
- Die Größenbeschränkung für das verknüpfte Repository beträgt 5 GB.
Erforderliche Rollen und Berechtigungen
Die Versionsverwaltung in Cloud Data Fusion umfasst zwei wichtige Vorgänge:
- Versionsverwaltung-Repositories konfigurieren
- Pipelines mit Git-Repositories mithilfe von Push- und Pull-Vorgängen synchronisieren
Bitten Sie Ihren Administrator, Ihnen eine der folgenden vordefinierten Rollen für Ihr Projekt zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zur Verwendung der Funktion „Verwaltung der Versionsverwaltung“ benötigen:
Versionsverwaltungs-Repository konfigurieren:
- Cloud Data Fusion-Operator (
roles/datafusion.operator
) - Cloud Data Fusion-Bearbeiter (
roles/datafusion.editor
) - Cloud Data Fusion-Administrator (
roles/datafusion.admin
)
- Cloud Data Fusion-Operator (
Synchronisieren Sie Pipelines mit Push- oder Pull-Vorgängen aus einem Namespace:
- Cloud Data Fusion-Operator (
roles/datafusion.operator
) - Cloud Data Fusion-Entwickler (
roles/datafusion.developer
) - Cloud Data Fusion-Bearbeiter (
roles/datafusion.editor
) - Cloud Data Fusion-Administrator (
roles/datafusion.admin
)
- Cloud Data Fusion-Operator (
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie die erforderlichen Berechtigungen auch über andere vordefinierte Rollen erhalten.
Git-Repository einrichten
Um ein Git-Repository in GitHub zu erstellen, folgen Sie der Anleitung unter Repository erstellen.
Weitere Informationen zu persönlichen Zugriffstokens in GitHub und anderen Versionskontrollsystemen finden Sie auf den folgenden Seiten:
Git-Repository mit Cloud Data Fusion verbinden
Mit Cloud Data Fusion können Sie Ihr Git-Repository auf dem Tab „Verwaltung der Versionsverwaltung“ für jeden Namespace konfigurieren und verbinden. So verknüpfen Sie einen Namespace mit Ihrem Git-Repository:
Console
- Klicken Sie in Cloud Data Fusion Studio auf Menü.
- Klicken Sie auf Namespace-Verwaltung.
- Klicken Sie auf der Seite Namespace-Verwaltung auf den Tab Verwaltung des Quellsteuerelements.
- Klicken Sie auf Repository verknüpfen.
Geben Sie die folgenden Informationen ein:
- Anbieter: Wählen Sie einen Git-Dienstanbieter wie GitHub oder GitLab aus.
- Repository-URL: Geben Sie die URL ein, unter der auf das Repository zugegriffen werden kann. Bei GitHub lautet die Repository-URL
https://github.com/HOST/REPO
. - Standardzweig (optional): Geben Sie den ersten Zweig von Git ein. Dieser Zweig kann sich vom auf GitHub konfigurierten Standardzweig unterscheiden. Dieser Zweig wird zum Synchronisieren von Pipelines verwendet, unabhängig vom Standardzweig auf GitHub.
- Pfadpräfix (optional): Geben Sie ein Präfix für den Pipelinenamen ein, der im Git-Repository gespeichert wird. Wenn der Name der Pipeline beispielsweise
DataFusionQuickStart
lautet und Sie das Präfix alsnamespaceName
angeben, wird die Pipeline alsnamespaceName/DataFusionQuickStart
im Git-Repository gespeichert. - Authentifizierungstyp: In Cloud Data Fusion können Sie das personalisierte Zugriffstoken als Authentifizierungstyp verwenden. Diese Option ist automatisch ausgewählt.
- Tokenname: Geben Sie einen Namen ein, der mit dem Token verknüpft werden kann.
- Token: Geben Sie das vom GitHub-Repository bereitgestellte Token ein.
- Optional: Nutzername: Geben Sie einen Nutzernamen oder einen Inhaber für das Token ein.
Klicke auf Validieren. Warten Sie, bis die Verbindung verifiziert wurde.
Wenn die Konfiguration abgeschlossen ist, klicken Sie auf Speichern und schließen, um die Konfiguration zu bestätigen.
REST API
Erstellen Sie einen geheimen Schlüssel in Cloud Data Fusion, der das persönliche Zugriffstoken enthält.
Führen Sie dazu diesen Befehl aus:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/securekeys/PASSWORD_SECRET_KEY -X PUT -d '{ "description": "Example Secure Key","data": "PERSONAL_ACCESS_TOKEN"}'
Ersetzen Sie Folgendes:
NAMESPACE_ID
: die ID des Namespace.PASSWORD_SECRET_KEY
: der Name des geheimen Schlüssels, der das persönliche Zugriffstoken enthält.PERSONAL_ACCESS_TOKEN
ist das persönliche Zugriffstoken von GitHub.
Führen Sie dazu diesen Befehl aus:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X PUT -d '{"test": "TEST_ONLY", "config": {"provider": "PROVIDER_TYPE", "link": "REPO_URL", "defaultBranch": "DEFAULT_BRANCH", "pathPrefix": "PATH_TO_DIRECTORY", "auth": {"type": "AUTH_TYPE", "patConfig": {"passwordName": "PASSWORD_SECRET_KEY", "username": "USER_NAME"}}}}'
Ersetzen Sie Folgendes:
NAMESPACE_ID
: die ID des Namespace.TEST_ONLY
: Legen Sietrue
fest, wenn Sie die Konfiguration nur validieren und nicht hinzufügen möchten.PROVIDER_TYPE
: der Name des Git-Anbieters, alsoGITHUB
.REPO_URL
: Repository-URL, die verknüpft werden soll. Verwenden Sie einehttps
-URL, z. B.https://github.com/user/repo.git
.DEFAULT_BRANCH
: Zweig, der für Push- und Pull-Vorgänge verwendet wird. Wenn nichts angegeben ist, wird der standardmäßig konfigurierte Zweig im Repository verwendet, z. B. der Hauptzweig.PATH_TO_DIRECTORY
: Pfad zum Verzeichnis im Repository, in dem die Konfigurationsdateien gespeichert sind.AUTH_TYPE
: der Authentifizierungstyp. Es wird nurPAT
unterstützt. Siehe Detailgenaues persönliches Zugriffstoken in GitHubPASSWORD_SECRET_KEY
: der Name des geheimen Schlüssels, der das persönliche Zugriffstoken für den AuthentifizierungstypPAT
enthält.USER_NAME
: Sie können diesen Wert für den AuthentifizierungstypPAT
weglassen.
Cloud Data Fusion-Pipelines mit einem Remote-Repository synchronisieren
Nachdem Sie ein Git-Repository mit einem Namespace konfiguriert haben, können Sie Pipelines per Push- und Pull-Übertragung übertragen und mit dem Git-Repository synchronisieren.
Pipelines von Cloud Data Fusion in das Git-Repository übertragen
So synchronisieren Sie mehrere bereitgestellte Pipelines von einem Namespace mit einem Git-Repository:
Console
- Klicken Sie in Cloud Data Fusion Studio auf Menü.
- Klicken Sie auf Namespace-Verwaltung.
- Klicken Sie auf der Seite Namespace-Verwaltung auf den Tab Verwaltung des Quellsteuerelements.
- Suchen Sie das Git-Repository, mit dem Sie synchronisieren möchten, und klicken Sie auf Sync pipelines (Pipelines synchronisieren).
- Klicken Sie auf den Tab Namespace-Pipelines.
Suchen Sie nach den Pipelines, die Sie an das Git-Repository übertragen möchten, und wählen Sie sie aus.
Wenn die neueste Version der Pipeline in das Git-Repository übertragen oder daraus abgerufen wird, wird für den Status Mit Git verbunden
Connected
angezeigt. Wenn die Pipeline noch nie an GitHub übertragen wurde, wird der Status Mit Git verbunden angezeigt (-
).Wenn Sie eine neuere Version einer Pipeline bereitstellen, die bereits mit dem Git-Repository synchronisiert ist, ändert sich der Status Connected to Git von
Connected
in leer (-
).Klicken Sie auf An Repository senden.
Geben Sie eine Commit-Nachricht ein und klicken Sie auf OK.
Der Push-Vorgang wird gestartet und eine Meldung darüber angezeigt, dass die ausgewählten Pipelines per Push-Befehl an das Remote-Repository übertragen werden.
Wenn der Push-Vorgang erfolgreich abgeschlossen wurde, wird eine Erfolgsmeldung mit der Anzahl der Pipelines angezeigt, die an das Remote-Repository übertragen wurden.
Wenn der Push-Vorgang fehlschlägt, sehen Sie in der Pipeline in GitHub nach, ob es sich um die neueste Version handelt. Für jeden fehlgeschlagenen Push-Vorgang wird eine Fehlermeldung angezeigt. Wenn Sie sich die Details des Fehlers ansehen möchten, maximieren Sie die Fehlermeldung.
Sie können auch einzelne Pipelines aus dem Pipeline Design Studio per Push in ein Git-Repository übertragen:
- Klicken Sie in Cloud Data Fusion Studio auf Menü.
- Klicken Sie auf Liste.
- Klicken Sie auf die Pipeline, die Sie in das Git-Repository übertragen möchten.
- Klicken Sie auf der Pipeline-Seite auf Aktionen > An Repository senden.
- Geben Sie eine Commit-Nachricht ein und klicken Sie auf OK.
REST API
Übertragen Sie eine Reihe von Pipelines von Cloud Data Fusion in das Git-Repository:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/push -X POST -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}, "commitMessage": "COMMIT_MESSAGE"'
Ersetzen Sie Folgendes:
NAMESPACE_ID
: die ID des Namespace.PIPELINE_NAME_1
,PIPELINE_NAME_2
: Namen der Pipelines, die übertragen werden sollen.COMMIT_MESSAGE
: Commit-Nachricht für das Git-Commit.
Die Antwort enthält die ID des Push-Vorgangs. Beispiel:
RESPONSE { "id": OPERATION_ID }
Führen Sie den folgenden Befehl aus, um den Status des Push-Vorgangs abzufragen:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_ID
Ersetzen Sie Folgendes:
NAMESPACE_ID
: die ID des Namespace.OPERATION_ID
: die vom Push-Vorgang empfangene Vorgangs-ID.
Die Antwort enthält den Status des Push-Vorgangs. Beispiel:
RESPONSE { "id": OPERATION_ID "done": True/False "status": STARTING/RUNNING/SUCCEEDED/FAILED "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]} }
Anhand des Attributs
done
in der Antwort können Sie feststellen, ob der Push-Vorgang abgeschlossen ist. Wenn der Vorgang fehlgeschlagen ist, finden Sie weitere Informationen im Attributerror
.
Pipelines aus dem Git-Repository in Cloud Data Fusion abrufen
So synchronisieren Sie mehrere Pipelines von einem Git-Repository mit Ihrem Namespace:
Console
- Klicken Sie in Cloud Data Fusion Studio auf Menü.
- Klicken Sie auf Namespace-Verwaltung.
- Klicken Sie auf der Seite Namespace-Verwaltung auf den Tab Verwaltung des Quellsteuerelements.
- Suchen Sie das Git-Repository, mit dem Sie eine Synchronisierung durchführen möchten, und klicken Sie auf Pipelines synchronisieren.
- Klicken Sie auf den Tab Repository-Pipelines. Alle im Git-Repository gespeicherten Pipelines werden angezeigt.
- Suchen Sie nach den Pipelines, die Sie aus dem Git-Repository in Ihren Cloud Data Fusion-Namespace abrufen möchten, und wählen Sie sie aus.
Klicken Sie auf Aus Repository abrufen.
Der Pull-Vorgang wird gestartet und eine Meldung darüber angezeigt, dass die ausgewählten Pipelines aus dem Remote-Repository abgerufen werden. Cloud Data Fusion sucht unter dem konfigurierten Pfad nach JSON-Dateien, ruft sie ab und stellt sie als Pipelines in Cloud Data Fusion bereit.
Wenn der Pull-Vorgang erfolgreich abgeschlossen wurde, wird eine Erfolgsmeldung mit der Anzahl der Pipelines angezeigt, die aus dem Remote-Repository abgerufen wurden.
Wenn der Pull-Vorgang fehlschlägt, wird eine Fehlermeldung angezeigt. Maximieren Sie die Fehlermeldung, um die Details des Fehlers anzusehen.
Sie können auch einzelne Pipelines aus einem Git-Repository in einen Namespace aus dem Pipeline-Designstudio abrufen:
- Klicken Sie in Cloud Data Fusion Studio auf Menü.
- Klicken Sie auf Liste.
- Klicken Sie auf die Pipeline, die Sie aus dem Git-Repository abrufen möchten.
- Klicken Sie auf der Pipeline-Seite auf Aktionen > Aus Repository abrufen.
REST API
Rufen Sie eine Reihe von Pipelines aus dem Git-Repository in Cloud Data Fusion ab:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/pull -X POST -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}'
Ersetzen Sie Folgendes:
NAMESPACE_ID
: die ID des Namespace.PIPELINE_NAME_1
,PIPELINE_NAME_2
: Namen der abzurufenden Pipelines.
Die Antwort enthält die ID des Pull-Vorgangs. Beispiel:
RESPONSE { "id": OPERATION_ID }
Führen Sie den folgenden Befehl aus, um den Status des Pull-Vorgangs abzufragen:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_ID
Ersetzen Sie Folgendes:
NAMESPACE_ID
: die ID des Namespace.OPERATION_ID
: die vom Pull-Vorgang empfangene Vorgangs-ID.
Die Antwort enthält den Status des Pull-Vorgangs. Beispiel:
RESPONSE { "id": OPERATION_ID "done": True/False "status": STARTING/RUNNING/SUCCEEDED/FAILED "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]} }
Anhand des Attributs
done
in der Antwort können Sie feststellen, ob der Pull-Vorgang abgeschlossen ist. Wenn der Vorgang fehlgeschlagen ist, finden Sie weitere Informationen im Attributerror
.
Git-Repository-Konfiguration löschen
So löschen Sie die Git-Repository-Konfiguration aus einem Namespace:
Console
- Klicken Sie in Cloud Data Fusion Studio auf Menü.
- Klicken Sie auf Namespace-Verwaltung.
- Klicken Sie auf der Seite Namespace-Verwaltung auf den Tab Verwaltung des Quellsteuerelements.
- Klicken Sie für die Git-Repository-Konfiguration, die Sie löschen möchten, auf > Löschen.
REST API
Löschen Sie die Git-Repository-Konfiguration:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X DELETE
Ersetzen Sie NAMESPACE_ID durch die ID des Namespace.