In diesem Dokument wird beschrieben, wie Sie Metadaten aus einer Drittanbieterquelle in Dataplex Universal Catalog importieren, indem Sie eine Pipeline für verwaltete Verbindungen in Workflows ausführen.
Um eine Pipeline für verwaltete Verbindungen einzurichten, erstellen Sie einen Connector für Ihre Datenquelle. Anschließend führen Sie die Pipeline in Workflows aus. Die Pipeline extrahiert Metadaten aus Ihrer Datenquelle und importiert sie dann in Dataplex Universal Catalog. Bei Bedarf werden mit der Pipeline auch Dataplex Universal Catalog-Eintragsgruppen in Ihrem Google Cloud -Projekt erstellt.
Weitere Informationen zu verwalteten Verbindungen finden Sie unter Übersicht über verwaltete Verbindungen.
Hinweise
Führen Sie die Aufgaben in diesem Abschnitt aus, bevor Sie Metadaten importieren.
Connector erstellen
Ein Connector extrahiert die Metadaten aus Ihrer Datenquelle und generiert eine Metadaten-Importdatei, die von Dataplex Universal Catalog importiert werden kann. Der Connector ist ein Artifact Registry-Image, das auf Dataproc Serverless ausgeführt werden kann.
Erstellen Sie einen benutzerdefinierten Connector, der Metadaten aus Ihrer Drittanbieterquelle extrahiert.
Einen Beispielconnector, den Sie als Referenzvorlage zum Erstellen eines eigenen Connectors verwenden können, finden Sie unter Benutzerdefinierten Connector für den Metadatenimport entwickeln.
Google Cloud -Ressourcen konfigurieren
-
Enable the Workflows, Dataproc, Cloud Storage, Dataplex Universal Catalog, Secret Manager, Artifact Registry, and Cloud Scheduler APIs.
Wenn Sie die Pipeline nicht nach einem Zeitplan ausführen möchten, müssen Sie die Cloud Scheduler API nicht aktivieren.
Erstellen Sie Secrets in Secret Manager, um die Anmeldedaten für Ihre Drittanbieterdatenquelle zu speichern.
VPC-Netzwerk (Virtual Private Cloud) konfigurieren, um Dataproc Serverless für Spark-Arbeitslasten auszuführen.
Erstellen Sie einen Cloud Storage-Bucket zum Speichern der Metadaten-Importdateien.
Erstellen Sie die folgenden Dataplex Universal Catalog-Ressourcen:
Benutzerdefinierte Aspekttypen für die Einträge erstellen, die Sie importieren möchten.
Benutzerdefinierte Eintragstypen für die Einträge erstellen, die Sie importieren möchten.
Erforderliche Rollen
Ein Dienstkonto repräsentiert die Identität eines Workflows und bestimmt, welche Berechtigungen der Workflow hat und auf welche Google Cloud Ressourcen er zugreifen kann. Sie benötigen ein Dienstkonto für Workflows (zum Ausführen der Pipeline) und für Dataproc Serverless (zum Ausführen des Connectors).
Sie können das Compute Engine-Standarddienstkonto (PROJECT_NUMBER-compute@developer.gserviceaccount.com
) verwenden oder ein eigenes Dienstkonto (oder mehrere Konten) erstellen, um die Pipeline für verwaltete Verbindungen auszuführen.
Console
Rufen Sie in der Google Cloud Console die Seite IAM auf.
Wählen Sie das Projekt aus, in das Sie Metadaten importieren möchten.
Klicken Sie auf
Zugriff gewähren und geben Sie dann die E-Mail-Adresse des Dienstkontos ein.Weisen Sie dem Dienstkonto die folgenden Rollen zu:
- Log-Autor
- Dataplex Entry Group Owner
- Dataplex Metadata Job Owner
- Dataplex Catalog Editor
- Dataproc-Bearbeiter
- Dataproc-Worker
- Zugriffsperson für Secret Manager-Secret für das Secret, in dem die Anmeldedaten für Ihre Datenquelle gespeichert sind
- Storage Object User für den Cloud Storage-Bucket
- Artifact Registry Reader: für das Artifact Registry-Repository, das das Connector-Image enthält
- Dienstkontonutzer: Wenn Sie verschiedene Dienstkonten verwenden, weisen Sie dem Dienstkonto, auf dem Workflows ausgeführt werden, diese Rolle für das Dienstkonto zu, auf dem die serverlosen Dataproc-Batchjobs ausgeführt werden.
- Workflow-Aufrufer: wenn Sie die Pipeline planen möchten
Speichern Sie die Änderungen.
gcloud
Weisen Sie dem Dienstkonto Rollen zu. Führen Sie folgende Befehle aus:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/logging.logWriter gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.entryGroupOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.metadataJobOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.catalogEditor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.editor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.worker
Ersetzen Sie Folgendes:
-
PROJECT_ID
: Der Name des Zielprojekts Google Cloud, in das die Metadaten importiert werden sollen. SERVICE_ACCOUNT_ID
: das Dienstkonto, z. B.my-service-account@my-project.iam.gserviceaccount.com
.
-
Weisen Sie dem Dienstkonto die folgenden Rollen auf Ressourcenebene zu:
gcloud secrets add-iam-policy-binding SECRET_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/secretmanager.secretaccessor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/storage.objectUser \ --condition=resource.name.startsWith('projects/_/buckets/BUCKET_ID') gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=REPOSITORY_LOCATION \ --member=SERVICE_ACCOUNT_ID} \ --role=roles/artifactregistry.reader
Ersetzen Sie Folgendes:
SECRET_ID
: Die ID des Secrets, in dem die Anmeldedaten für Ihre Datenquelle gespeichert sind. Dazu wird das Formatprojects/PROJECT_ID/secrets/SECRET_ID
verwendet.BUCKET_ID
: der Name des Cloud Storage-Buckets.REPOSITORY
: das Artifact Registry-Repository, das das Connector-Image enthält.REPOSITORY_LOCATION
: Der Google CloudSpeicherort, an dem das Repository gehostet wird.
Weisen Sie dem Dienstkonto, auf dem Workflows ausgeführt werden, die Rolle
roles/iam.serviceAccountUser
für das Dienstkonto zu, auf dem die serverlosen Dataproc-Batchjobs ausgeführt werden. Sie müssen diese Rolle auch dann zuweisen, wenn Sie dasselbe Dienstkonto für Workflows und Dataproc Serverless verwenden.gcloud iam service-accounts add-iam-policy-binding \ serviceAccount:SERVICE_ACCOUNT_ID \ --member='SERVICE_ACCOUNT_ID' \ --role='roles/iam.serviceAccountUser'
Wenn Sie verschiedene Dienstkonten verwenden, ist der Wert für das Flag
--member
das Dienstkonto, mit dem die serverlosen Dataproc-Batchjobs ausgeführt werden.Wenn Sie die Pipeline planen möchten, weisen Sie dem Dienstkonto die folgende Rolle zu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="SERVICE_ACCOUNT_ID" \ --role=roles/workflows.invoker
Metadaten importieren
Wenn Sie Metadaten importieren möchten, erstellen Sie einen Workflow und führen Sie ihn aus, um die Pipeline für verwaltete Verbindungen auszuführen. Optional können Sie auch einen Zeitplan für die Ausführung der Pipeline erstellen.
Console
Workflow erstellen Geben Sie die folgenden Informationen an:
- Dienstkonto: Das Dienstkonto, das Sie im Abschnitt Erforderliche Rollen dieses Dokuments konfiguriert haben.
Verschlüsselung: Wählen Sie Google-managed encryption key aus.
Workflow definieren: Stellen Sie die folgende Definitionsdatei bereit:
Wenn Sie die Pipeline on demand ausführen möchten, führen Sie den Workflow aus.
Geben Sie die folgenden Laufzeitargumente an:
Ersetzen Sie Folgendes:
-
PROJECT_ID
: Der Name des Zielprojekts Google Cloud, in das die Metadaten importiert werden sollen. -
LOCATION_ID
: der Ziel Google Cloud standort, an dem die serverlosen Dataproc- und Metadatenimportjobs ausgeführt werden und in den Metadaten importiert werden. -
ENTRY_GROUP_ID
: Die ID der Eintragsgruppe, in die Metadaten importiert werden sollen. Die ID der Eintragsgruppe kann Kleinbuchstaben, Ziffern und Bindestriche enthalten.Der vollständige Ressourcenname dieser Eintragsgruppe ist
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: Wenn die Pipeline die Eintragsgruppe erstellen soll, falls sie noch nicht in Ihrem Projekt vorhanden ist, legen Sie diesen Wert auftrue
fest. -
BUCKET_ID
: Der Name des Cloud Storage-Buckets, in dem die vom Connector generierte Datei für den Metadatenimport gespeichert wird. Bei jeder Workflow-Ausführung wird ein neuer Ordner erstellt. -
SERVICE_ACCOUNT_ID
: Das Dienstkonto, das Sie im Abschnitt Erforderliche Rollen dieses Dokuments konfiguriert haben. Das Dienstkonto führt den Connector in Dataproc Serverless aus. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: Eine Liste mit zusätzlichen Argumenten, die an den Connector übergeben werden sollen. Beispiele finden Sie unter Benutzerdefinierten Connector für den Metadatenimport entwickeln. Setzen Sie jedes Argument in doppelte Anführungszeichen und trennen Sie die Argumente durch Kommas. -
CONTAINER_IMAGE
: Das benutzerdefinierte Container-Image des Connectors, das in Artifact Registry gehostet wird. -
ENTRY_TYPES
: Eine Liste der Eintragstypen, die für den Import infrage kommen, im Formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
muss entweder derselbeGoogle Cloud Speicherort sein, in den Sie Metadaten importieren, oderglobal
. -
ASPECT_TYPES
: Eine Liste der Aspekttypen, die für den Import infrage kommen, im Formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
muss entweder derselbeGoogle Cloud Speicherort sein, in den Sie Metadaten importieren, oderglobal
. -
Optional: Geben Sie für das Argument
NETWORK_TAGS
eine Liste von Netzwerk-Tags an. -
Optional: Geben Sie für das Argument
NETWORK_URI
den URI des VPC-Netzwerks an, das eine Verbindung zur Datenquelle herstellt. Wenn Sie ein Netzwerk angeben, lassen Sie das Subnetzargument weg. -
Optional: Geben Sie für das
SUBNETWORK_URI
-Argument den URI des Subnetzwerks an, das mit der Datenquelle verbunden ist. Wenn Sie ein Subnetz angeben, lassen Sie das Netzwerkargument weg.
Je nach Menge der importierten Metadaten kann die Ausführung der Pipeline mehrere Minuten oder länger dauern. Weitere Informationen zum Aufrufen des Fortschritts finden Sie unter Ergebnisse der Workflow-Ausführung aufrufen.
Nachdem die Pipeline ausgeführt wurde, können Sie in Dataplex Universal Catalog nach den importierten Metadaten suchen.
-
Optional: Wenn Sie die Pipeline nach einem Zeitplan ausführen möchten, erstellen Sie einen Zeitplan mit Cloud Scheduler. Geben Sie die folgenden Informationen an:
- Häufigkeit: Ein unix-cron-Ausdruck, der den Zeitplan für die Ausführung der Pipeline definiert.
- Workflow-Argument: Die Laufzeitargumente für den Connector, wie im vorherigen Schritt beschrieben.
- Dienstkonto: Das Dienstkonto. Das Dienstkonto verwaltet den Scheduler.
gcloud
Speichern Sie die folgende Arbeitslastdefinition als YAML-Datei:
Definieren Sie Bash-Variablen, erstellen Sie den Workflow und erstellen Sie optional einen Zeitplan für die Ausführung der Pipeline:
Ersetzen Sie Folgendes:
-
PROJECT_ID
: Der Name des Zielprojekts Google Cloud, in das die Metadaten importiert werden sollen. -
LOCATION_ID
: der Ziel Google Cloud standort, an dem die serverlosen Dataproc- und Metadatenimportjobs ausgeführt werden und in den Metadaten importiert werden. -
SERVICE_ACCOUNT_ID
: Das Dienstkonto, das Sie im Abschnitt Erforderliche Rollen dieses Dokuments konfiguriert haben. WORKFLOW_DEFINITION_FILE
: Der Pfad zur YAML-Datei mit der Workflowdefinition.WORKFLOW_NAME
: Der Name des Workflows.WORKFLOW_ARGUMENTS
: die Laufzeitargumente, die an den Connector übergeben werden sollen. Die Argumente haben das JSON-Format:Bei Cloud Scheduler werden die doppelten Anführungszeichen innerhalb des Strings in Anführungszeichen mit Schrägstrichen (\) maskiert. Beispiel:
--message-body="{\"argument\": \"{\\\"key\\\": \\\"value\\\"}\"}"
.Ersetzen Sie Folgendes:
-
ENTRY_GROUP_ID
: Die ID der Eintragsgruppe, in die Metadaten importiert werden sollen. Die ID der Eintragsgruppe kann Kleinbuchstaben, Ziffern und Bindestriche enthalten.Der vollständige Ressourcenname dieser Eintragsgruppe ist
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: Wenn die Pipeline die Eintragsgruppe erstellen soll, falls sie noch nicht in Ihrem Projekt vorhanden ist, legen Sie diesen Wert auftrue
fest. -
BUCKET_ID
: Der Name des Cloud Storage-Buckets, in dem die vom Connector generierte Datei für den Metadatenimport gespeichert wird. Bei jeder Workflow-Ausführung wird ein neuer Ordner erstellt. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: Eine Liste mit zusätzlichen Argumenten, die an den Connector übergeben werden sollen. Beispiele finden Sie unter Benutzerdefinierten Connector für den Metadatenimport entwickeln. -
CONTAINER_IMAGE
: Das benutzerdefinierte Container-Image des Connectors, das in Artifact Registry gehostet wird. -
ENTRY_TYPES
: Eine Liste der Eintragstypen, die für den Import infrage kommen, im Formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
muss entweder derselbeGoogle Cloud Speicherort sein, in den Sie Metadaten importieren, oderglobal
. -
ASPECT_TYPES
: Eine Liste der Aspekttypen, die für den Import infrage kommen, im Formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
muss entweder derselbeGoogle Cloud Speicherort sein, in den Sie Metadaten importieren, oderglobal
. -
Optional: Geben Sie für das Argument
NETWORK_TAGS
eine Liste von Netzwerk-Tags an. -
Optional: Geben Sie für das Argument
NETWORK_URI
den URI des VPC-Netzwerks an, das eine Verbindung zur Datenquelle herstellt. Wenn Sie ein Netzwerk angeben, lassen Sie das Subnetzargument weg. -
Optional: Geben Sie für das
SUBNETWORK_URI
-Argument den URI des Subnetzwerks an, das mit der Datenquelle verbunden ist. Wenn Sie ein Subnetz angeben, lassen Sie das Netzwerkargument weg.
-
CRON_SCHEDULE_EXPRESSION
: Ein Cron-Ausdruck, der den Zeitplan für die Ausführung der Pipeline definiert. Wenn Sie den Zeitplan beispielsweise jeden Tag um Mitternacht ausführen möchten, verwenden Sie den Ausdruck0 0 * * *
.
-
So führen Sie die Pipeline bei Bedarf aus: Workflow ausführen:
Die Workflow-Argumente sind im JSON-Format, aber nicht maskiert.
Je nachdem, wie viele Metadaten Sie importieren, kann es einige Minuten oder länger dauern, bis der Workflow ausgeführt wird. Weitere Informationen dazu, wie Sie den Fortschritt ansehen können, finden Sie unter Ergebnisse der Workflow-Ausführung aufrufen.
Nachdem die Pipeline ausgeführt wurde, können Sie in Dataplex Universal Catalog nach den importierten Metadaten suchen.
Terraform
Klonen Sie das
cloud-dataplex
-Repository.Das Repository enthält die folgenden Terraform-Dateien:
main.tf
: Definiert die zu erstellenden Google Cloud -Ressourcen.variables.tf
: deklariert die Variablen.byo-connector.tfvars
: Definiert die Variablen für Ihre Pipeline für verwaltete Verbindungen.
Bearbeiten Sie die Datei
.tfvars
und ersetzen Sie die Platzhalter durch die Informationen für Ihren Connector.Ersetzen Sie Folgendes:
-
PROJECT_ID
: Der Name des Zielprojekts Google Cloud, in das die Metadaten importiert werden sollen. -
LOCATION_ID
: der Ziel Google Cloud standort, an dem die serverlosen Dataproc- und Metadatenimportjobs ausgeführt werden und in den Metadaten importiert werden. -
SERVICE_ACCOUNT_ID
: Das Dienstkonto, das Sie im Abschnitt Erforderliche Rollen dieses Dokuments konfiguriert haben. -
CRON_SCHEDULE_EXPRESSION
: Ein Cron-Ausdruck, der den Zeitplan für die Ausführung der Pipeline definiert. Wenn Sie den Zeitplan beispielsweise jeden Tag um Mitternacht ausführen möchten, verwenden Sie den Ausdruck0 0 * * *
. -
ENTRY_GROUP_ID
: Die ID der Eintragsgruppe, in die Metadaten importiert werden sollen. Die ID der Eintragsgruppe kann Kleinbuchstaben, Ziffern und Bindestriche enthalten.Der vollständige Ressourcenname dieser Eintragsgruppe ist
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: Wenn die Pipeline die Eintragsgruppe erstellen soll, falls sie noch nicht in Ihrem Projekt vorhanden ist, legen Sie diesen Wert auftrue
fest. -
BUCKET_ID
: Der Name des Cloud Storage-Buckets, in dem die vom Connector generierte Datei für den Metadatenimport gespeichert wird. Bei jeder Workflow-Ausführung wird ein neuer Ordner erstellt. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: Eine Liste mit zusätzlichen Argumenten, die an den Connector übergeben werden sollen. Beispiele finden Sie unter Benutzerdefinierten Connector für den Metadatenimport entwickeln. Setzen Sie jedes Argument in doppelte Anführungszeichen und trennen Sie die Argumente durch Kommas. -
CONTAINER_IMAGE
: Das benutzerdefinierte Container-Image des Connectors, das in Artifact Registry gehostet wird. -
ENTRY_TYPES
: Eine Liste der Eintragstypen, die für den Import infrage kommen, im Formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
muss entweder derselbeGoogle Cloud Speicherort sein, in den Sie Metadaten importieren, oderglobal
. -
ASPECT_TYPES
: Eine Liste der Aspekttypen, die für den Import infrage kommen, im Formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
muss entweder derselbeGoogle Cloud Speicherort sein, in den Sie Metadaten importieren, oderglobal
. -
Optional: Geben Sie für das Argument
NETWORK_TAGS
eine Liste von Netzwerk-Tags an. -
Optional: Geben Sie für das Argument
NETWORK_URI
den URI des VPC-Netzwerks an, das eine Verbindung zur Datenquelle herstellt. Wenn Sie ein Netzwerk angeben, lassen Sie das Subnetzargument weg. -
Optional: Geben Sie für das Argument
SUBNETWORK_URI
den URI des Subnetzwerks an, das mit der Datenquelle verbunden ist. Wenn Sie ein Subnetz angeben, lassen Sie das Netzwerkargument weg.
-
Initialisieren Sie Terraform:
terraform init
Validieren Sie Terraform mit Ihrer
.tfvars
-Datei:terraform plan --var-file=CONNECTOR_VARIABLES_FILE.tfvars
Ersetzen Sie
CONNECTOR_VARIABLES_FILE
durch den Namen Ihrer Variablendefinitionsdatei.Stellen Sie Terraform mit Ihrer Datei
.tfvars
bereit:terraform apply --var-file=CONNECTOR_VARIABLES_FILE.tfvars
Terraform erstellt einen Workflow und einen Cloud Scheduler-Job im angegebenen Projekt. Workflows führt die Pipeline nach dem von Ihnen angegebenen Zeitplan aus.
Je nachdem, wie viele Metadaten Sie importieren, kann es einige Minuten oder länger dauern, bis der Workflow ausgeführt wird. Weitere Informationen dazu, wie Sie den Fortschritt ansehen können, finden Sie unter Ergebnisse der Workflow-Ausführung aufrufen.
Nachdem die Pipeline ausgeführt wurde, können Sie in Dataplex Universal Catalog nach den importierten Metadaten suchen.
Joblogs ansehen
Verwenden Sie Cloud Logging, um Logs für eine verwaltete Konnektivitätspipeline aufzurufen. Die Log-Nutzlast enthält einen Link zu den Logs für den Dataproc Serverless-Batchjob und den Metadatenimportjob, sofern zutreffend. Weitere Informationen finden Sie unter Workflow-Logs ansehen.
Fehlerbehebung
Versuchen Sie es mit diesen Vorschlägen zur Fehlerbehebung:
- Konfigurieren Sie die Protokollebene des Importjobs für den Metadatenjob so, dass Protokollierung auf Debug-Ebene anstelle von Protokollierung auf Info-Ebene verwendet wird.
- Sehen Sie sich die Logs für den serverlosen Dataproc-Batchjob (für Connector-Ausführungen) und den Metadatenimportjob an. Weitere Informationen finden Sie unter Dataproc Serverless für Spark-Logs abfragen und Metadaten-Joblogs abfragen.
- Wenn ein Eintrag nicht über die Pipeline importiert werden kann und die Fehlermeldung nicht genügend Informationen enthält, erstellen Sie einen benutzerdefinierten Eintrag mit denselben Details in einer Testeintragsgruppe. Weitere Informationen finden Sie unter Benutzerdefinierten Eintrag erstellen.
Nächste Schritte
- Metadatenverwaltung im Dataplex Universal Catalog
- Benutzerdefinierten Connector für den Metadatenimport entwickeln