Migration mit Migrationsverlauf planen

Mit dem Migrations-Lineage-Dienst können Sie den Datenfluss und die Verbindungen in Ihrer Quelldatenbank visualisieren, wenn Sie eine BigQuery-Data-Warehouse-Migration planen.

Wenn Sie eine Migrationslinie erstellen, stellt der Lineage-Dienst ein Diagramm bereit, in dem visualisiert wird, wie Daten durch Ihr Quellsystem fließen und wie jede Tabelle oder Ansicht in Ihrem Quellsystem verbunden ist. Das folgende Diagramm zeigt ein Beispiel:

Eine Migrations-Lineage mit einem Diagramm des Datenflusses.

Der Dienst für Migrationsherkunft unterstützt die folgenden SQL-Dialekte:

  • Amazon Redshift-SQL
  • Snowflock-SQL
  • Teradata SQL
  • GoogleSQL (BigQuery)

Beschränkungen

Der Lineage-Dienst verarbeitet die ersten 5 GB der ältesten Logs aus Ihrer Quelldatenbank.

Unterstützte Standorte

Der Migrations-Lineage-Dienst ist an ausgewählten Standorten verfügbar. Weitere Informationen finden Sie unter Standorte für BigQuery SQL Translator und Lineage Service.

Erforderliche Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle MigrationWorkflow-Bearbeiter (roles/bigquerymigration.editor) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie für die Verwendung des Migrations-Lineage-Dienstes benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die für die Verwendung des Migrations-Lineage-Dienstes erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um den Migrations-Lineage-Dienst zu verwenden:

  • bigquerymigration.workflows.create
  • bigquerymigration.workflows.get
  • bigquerymigration.lineageDbs.query

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter BigQuery-IAM-Rollen und -Berechtigungen.

Migrationslinie erstellen

Zum Erstellen einer Migrationslinie führen Sie zuerst das Tool dwh-migration-dumper aus, um SQL-Logdateien für die Quelleingabe zu generieren, die Sie in Cloud Storage hochladen. Nachdem Sie die Eingabedateien in Cloud Storage hochgeladen haben, können Sie die Migrationsherkunft mit der Google Cloud Console oder der BigQuery Migration API generieren.

dwh-migration-dumper-Tool ausführen

Wählen Sie eine der folgenden Optionen aus:

Amazon Redshift

So erstellen und sehen Sie sich den Migrationsverlauf einer Amazon Redshift-Datenbank an:

  1. Führen Sie das Tool dwh-migration-dumper aus, um einen Dump Ihrer Quelldateien zu generieren.
  2. Abfragelogs in Cloud Storage hochladen

Snowflake

So erstellen und sehen Sie sich den Migrationsverlauf einer Snowflake-Datenbank an:

  1. Führen Sie das Tool dwh-migration-dumper aus, um einen Dump Ihrer Quelldateien zu generieren.
  2. Abfragelogs in Cloud Storage hochladen

Teradata

So erstellen und sehen Sie sich den Migrationsverlauf einer Teradata-Datenbank an:

  1. Führen Sie das Tool dwh-migration-dumper aus, um einen Dump Ihrer Quelldateien zu generieren.
  2. Abfragelogs in Cloud Storage hochladen

BigQuery

So erstellen und sehen Sie sich die Migrationsherkunft einer BigQuery-Datenbank an:

  1. Weisen Sie dem Konto oder Dienstkonto die folgenden Rollen zu:
  2. Installieren Sie das dwh-migration-dumper-Tool.
  3. Führen Sie das dwh-migration-dumper-Tool aus, um Metadaten und Abfragelogs zu generieren. Diese Metadaten und Abfragelogs sind in einer oder mehreren ZIP-Dateien enthalten.

    dwh-migration-dumper --connector bigquery
    
    dwh-migration-dumper --connector bigquery-logs
  4. Laden Sie die ZIP-Dateien in einen Cloud Storage-Bucket hoch. Weitere Informationen zum Erstellen von Buckets und zum Hochladen von Dateien in Cloud Storage finden Sie unter Bucket erstellen und Objekte aus einem Dateisystem hochladen.

Migrationsverlauf generieren

Nachdem Sie die ZIP-Dateien mit den Metadaten und Abfragelogs in Cloud Storage hochgeladen haben, können Sie die Migrationslinie generieren. Wählen Sie eine der folgenden Optionen aus:

Console

  1. Rufen Sie die Seite Ihre Migrationsdienste auf.

    Zu Ihren Migrationsdiensten

  2. Klicken Sie unter SQL übersetzen auf Übersetzen > Batch-Übersetzung.

  3. Geben Sie unter Übersetzungskonfiguration Folgendes ein:

    1. Geben Sie unter Anzeigename einen Namen für den Lineage-Job an. Der Name kann Buchstaben, Ziffern und Unterstriche enthalten.
    2. Wählen Sie unter Verarbeitungsort den Ort aus, an dem der Lineage-Job ausgeführt werden soll.
    3. Wählen Sie unter Quelldialekt den SQL-Quelldialekt aus.
    4. Wählen Sie als Zieldialekt die Option GoogleSQL aus.
  4. Klicken Sie auf Weiter.

  5. Gehen Sie unter Details zum Dateispeicherort so vor:

    1. Geben Sie unter Speicherort des Ausgabeverzeichnisses den Pfad zu einem Cloud Storage-Bucket an, in dem die Übersetzungs-Ausgabedateien gespeichert werden sollen. Sie können den Pfad im Format bucket_name/folder_name/ eingeben oder auf Durchsuchen klicken.
    2. Geben Sie unter Speicherort des Eingabeverzeichnisses den Pfad zum Cloud Storage-Ordner mit den Log-ZIP-Dateien an, die Sie zuvor hochgeladen haben. Sie können den Pfad im Format bucket_name/folder_name/ eingeben oder auf Durchsuchen klicken. Sie können auch den Namen des Unterverzeichnisses Ihrer Ausgabedateien im Feld Name des Ausgabeunterverzeichnisses angeben.
    3. Sie können zusätzliche Eingabedateien hinzufügen, indem Sie auf Eingabeverzeichnis hinzufügen klicken.
  6. Klicken Sie auf Weiter.

  7. Klicken Sie das Kästchen Herkunft aus Abfragelogs an.

  8. Klicken Sie auf Erstellen.

Der Lineage-Job wird jetzt ausgeführt. Je nach Größe der Eingabe kann es mehrere Stunden dauern, bis der Job abgeschlossen ist. Nach Abschluss des Jobs stellt das Tool einen Link zur generierten Migrationslinie bereit.

API

Führen Sie den folgenden curl-Befehl aus, um einen Lineage-Job zu erstellen:

  curl -d "{
    \"tasks\": {
      \"TASK_NAME\": {
        \"type\": \"Experimental_Lineage\",
        \"translation_details\": {
          \"target_base_uri\": \"BUCKET_PATH\",
          \"source_target_mapping\": {
            \"source_spec\": {
              \"base_uri\": \"BUCKET_PATH\"
            }
          },
          \"target_types\": \"LINEAGE\"
        }
      }
    }
  }
  " \
    -H "Content-Type:application/json" \
    -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows

Ersetzen Sie Folgendes:

  • TASK_NAME: Ein Name zur Identifizierung dieses Lineage-Jobs.
  • BUCKET_PATH: der Pfad zum Cloud Storage-Bucket, der Ihre ZIP-Eingabedateien enthält.
  • PROJECT_ID: die Projekt-ID IhresGoogle Cloud -Projekts.
  • LOCATION: Ein Verarbeitungsstandort. Dieser Wert muss entweder eu oder us sein.

Dieser Aufruf gibt eine Meldung ähnlich der folgenden zurück:

  {
    "name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID",
    "tasks": {
      "task_name": { /*...*/ }
    },
    "state": "RUNNING"
  }

Der Lineage-Job wird jetzt ausgeführt. Je nach Größe der Eingabe kann es mehrere Stunden dauern, bis der Job abgeschlossen ist. Führen Sie den folgenden curl-Befehl mit der Workflow-ID aus, um den Status des Lineage-Jobs zu prüfen:

  curl \
  -H "Content-Type:application/json" \
  -H "Authorization:Bearer " -X GET https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID

Nach Abschluss des Jobs stellt das Tool einen Link zur generierten Lineage-Ansicht bereit.

Migrations-Lineage öffnen

Nachdem Sie eine Migrationslinie erstellt haben, können Sie sie mit einer der folgenden Optionen öffnen:

Console

  1. Rufen Sie die Seite Ihre Migrationsdienste auf.

    Zu Ihren Migrationsdiensten

  2. Klicken Sie unter SQL übersetzen auf Letzte anzeigen.

  3. Klicken Sie auf der Seite SQL-Übersetzungen auf den Jobnamen, um den gesamten Lineage-Job auszuwählen. Lineage-Jobs haben den Ausgabewert Lineage.

  4. Klicken Sie auf der Seite Übersetzungsdetails auf Datenherkunft.

API

Führen Sie den folgenden curl-Befehl mit der BigQuery Migration API aus, um eine abgeschlossene Migrationslinie zu öffnen:

  curl \
  -H "Content-Type:application/json" \
  -H "Authorization:Bearer " -X GET https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID IhresGoogle Cloud -Projekts.
  • LOCATION: Ein Verarbeitungsstandort. Dieser Wert muss entweder eu oder us sein.
  • WORKFLOW_ID: Die Workflow-ID des generierten Lineage.

Rufen Sie den Link auf, der im Feld taskResult.translationTaskResult.consoleUri der Ausgabenachricht enthalten ist.

Migrationsverlauf verwenden

In den folgenden Abschnitten wird beschrieben, wie Sie die Migrationsherkunft verwenden können, um mit Ihren Quelldaten und Ihrer Quelldatenbank zu arbeiten.

Begriffe für die Migrations-Lineage

Die folgenden Begriffe werden in einer Migrationslinie verwendet:

Nutzungsbedingungen Beschreibung
Skripts SQL-Scripts und andere Programme, die in den Datenbanklogs sichtbar sind, die während der Erstellung des Lineage erfasst werden. Skripts bestehen aus Anweisungen, bei denen es sich meist um einzelne SQL-Anweisungen handelt.
Knoten Die Knoten des Herkunftsdiagramms. Sie bestehen aus Tabellen und Spalten.
Tabellen Auch als Beziehungen bezeichnet, einschließlich gewöhnlicher Tabellen, Ansichten, strukturierter Dateien und anderer tabellenähnlicher Ressourcen.
Spalten Auch als Attribute bezeichnet, einschließlich Tabellenspalten, Ansichtsprojektionen, Pseudospalten, spaltenähnlichen Feldern in Dateien und anderen Ressourcen sowie Unterspalten wie Strukturfelder.
Kanten Verbindungen zwischen Herkunftsknoten, die Interaktionen aufgrund einer Pipeline angeben, die ein Skript ausführt, das diese Knoten gelesen oder geschrieben hat. Kanten werden mit Zeitstempeln, Attributen und anderen Metadaten versehen, die angeben, wann die Kante abgeleitet wurde. Ein Knoten, der über eine Kante mit einem anderen Knoten verbunden ist, wird als direkte Verbindung bezeichnet. Eine Reihe von Kanten zwischen zwei Knoten wird als indirekte Verbindung bezeichnet.
Lineage-Kanten Gerichtete Kanten, die angeben, dass der Quellknoten in einer Klausel wie FROM, WHERE oder GROUP BY enthalten war, die die Daten des Zielknotens beeinflusst hat.
Nutzer und Pipelines Metadatenlabels, die von der Quelldatenbank bereitgestellt werden und Informationen dazu enthalten, wer und was Skripts ausgeführt hat. Sie haben keine inhärente Bedeutung für die Lineage-Engine, werden aber verwendet, um Skripts nach Herkunft zu gruppieren.

In den folgenden Abschnitten werden die verschiedenen Seiten in einer Migrationslinie beschrieben.

Landingpage prüfen

Auf der Landingpage des Migrations-Lineage-Diagramms sehen Sie die ID des Lineage-Jobs, ein Suchfeld zum Suchen von Lineage-Objekten nach Namen und eine Vorschlagsliste mit einigen Lineage-Objekten, die für Sie von Interesse sein könnten. Die Seite enthält auch die Gesamtzahl der Tabellen, Pipelines und Nutzer in der Migrationslinie.

Wenn Sie zu einer bestimmten Tabelle, Ansicht oder Spalte wechseln möchten, suchen Sie im Suchfeld nach dem Objekt oder klicken Sie auf der Landingpage auf eines der vorgeschlagenen Objekte.

Knotenseite aufrufen

Klicken Sie auf einen der folgenden Tabs, um die Knoten in Ihrem Migrationsverlauf zu sehen.

Tab „Data Flow“ (Datenfluss)

Auf dem Tab Data Flow (Datenfluss) wird ein Teil des Lineage-Diagramms visualisiert. Sie ist die Standardseite, wenn Sie sich zum ersten Mal eine Tabelle oder Spalte im Lineage-Dienst ansehen. Das Diagramm veranschaulicht, wie Daten durch Ihr Quellsystem fließen. Knoten in diesem Diagramm stellen Tabellen oder Ansichten dar, während Kanten zwischen den Knoten Daten darstellen, die von den Knoten auf der linken Seite zu den Knoten auf der rechten Seite fließen.

In jeder Tabelle im Diagramm Datenfluss wird der nicht qualifizierte Name angezeigt. Wenn Sie den voll qualifizierten Namen einer Tabelle mit dem Datenbank- und Schemapräfix sehen möchten, halten Sie den Mauszeiger auf den Knoten, um die Kurzinfo aufzurufen. Jede Tabelle gibt ihr Schema an, wie durch den vertikalen Balken auf dem Knoten angegeben. Alle Schemas in der Lineage werden alphabetisch sortiert und ihnen wird eine Farbe zugewiesen. Tabellen im selben Schema haben also Balken in derselben Farbe und Tabellen in Schemas mit ähnlichen Namen haben Balken in ähnlichen Farben.

Jeder Knoten hat ein Symbol, das seine Eigenschaften angibt:

  • monitor: eine Ansicht, keine Tabelle.
  • cached: Eine Tabelle, die immer vollständig aktualisiert wird (gekürzt und dann neu geschrieben). Klicken Sie auf das Symbol, um Skripts neben dieser Tabelle aufzurufen.
  • Im Cache: Eine Tabelle, die nicht immer vollständig aktualisiert wird (sie wird gekürzt und dann neu geschrieben). Klicken Sie auf das Symbol, um Skripts neben dieser Tabelle aufzurufen.
  • timer: Eine Tabelle, die nur kurzlebig war. Bewegen Sie den Mauszeiger auf das Symbol, um die Dauer anzuzeigen, für die die Tabelle vorhanden war.
  • Schneeflocke: Eine Tabelle, in die vor mehr als sieben Tagen zuletzt geschrieben wurde. Dies deutet auf eine Tabelle mit statischen oder selten geschriebenen Daten hin.

So prüfen Sie die Objekte im Diagramm Data Flow (Datenfluss):

  • Wenn Sie eine Liste der Tabellenspalten aufrufen möchten, klicken Sie auf eine Tabelle. Diese Ansicht enthält den Namen jeder Spalte sowie ihren Datentyp, der aus einem bereitgestellten Metadaten-Dump ermittelt oder aus dem SQL in den Abfragelogs abgeleitet wurde.
  • Wenn Sie das Herkunftsdiagramm auf Spaltenebene für eine Spalte aufrufen möchten, klicken Sie auf die Spalte. Im Herkunftsgraphen auf Spaltenebene stellen die Kanten Datenflüsse dar, die sich auf die Zielspalte auswirken.
  • Wenn Sie Details zu einer Kante aufrufen möchten, klicken Sie im Diagramm auf die entsprechende Kante. Diese Ansicht enthält Links zu den SQL-Scripts, die den Edge ausgelöst haben.

    Eine Kante wird von einem Quellknoten zu einem Zielknoten generiert, wenn in einer SQL-Anweisung auf den Quellknoten verwiesen wird, während mit der Anweisung Daten berechnet werden, die in den Zielknoten eingefügt werden. In der Regel werden dabei Daten von der Quelle zum Ziel übertragen. Auf dem Tab Data Flow (Datenfluss) wird jedoch auch eine Kante angezeigt, wenn der Quellknoten in einer WHERE- oder GROUP BY-Klausel verwendet wird, die sich auf das Ziel auswirkt. Wenn Sie nur Datenübertragungen filtern möchten, aktivieren Sie in der Symbolleiste die Schaltfläche Nicht datenbezogene Kanten einblenden.

Tab „Verbindungen“

Auf dem Tab Verbindungen eines Lineage-Knotens wird eine Liste der benachbarten Knoten im Lineage-Diagramm angezeigt. Standardmäßig werden verbundene Knoten nach der Entfernung des kürzesten Pfads vom aktuellen Knoten sortiert. Knoten, die weniger Kanten benötigen, um vom aktuellen Knoten aus erreicht zu werden, werden zuerst aufgeführt. Mit der Option Sortieren können Sie die Sortierung ändern.

Die Verbindungsliste enthält standardmäßig sowohl Upstream- (Ersteller-) als auch Downstream- (Nutzer-)Knoten des aktuellen Knotens. Sie können diesen Filter mit dem Steuerelement Typ ändern. In der Spalte Entfernung werden Knoten, die sich vor dem aktuellen Knoten befinden, mit einem Aufwärtspfeil und der Entfernung des kürzesten Rückwärtspfads zu diesem Knoten vom aktuellen Knoten aus angezeigt. Knoten, die sich hinter dem aktuellen Knoten befinden, werden mit einem Abwärtspfeil und der Entfernung des kürzesten Vorwärtspfads zu diesem Knoten vom aktuellen Knoten aus angezeigt. Ein Knoten kann sowohl vorgelagert als auch nachgelagert vom aktuellen Knoten sein, wenn er Teil eines Zyklus ist.

Wenn Sie eine Datei mit allen angezeigten Knoten herunterladen möchten, klicken Sie auf CSV-Datei herunterladen.

Tab "Users" ("Nutzer")

Auf dem Tab Nutzer eines Knotens werden Nutzer angezeigt, die Skripts ausgeführt haben, mit denen der Knoten oder Knoten, die vor- oder nachgelagert sind, gelesen oder geschrieben wurden. Standardmäßig wird der Nutzer, der die meisten einzelnen Aktionen ausgeführt hat, zuerst aufgeführt. Sie können die Sortierung mit der Option Sortieren ändern.

Wenn Sie eine Datei mit allen angezeigten Nutzern herunterladen möchten, klicken Sie auf CSV-Datei herunterladen.

Tab „Pipelines“

Auf dem Tab Pipelines eines Knotens werden die Pipelines angezeigt, in denen Skripts ausgeführt wurden, die den Knoten oder Knoten, die sich upstream oder downstream davon befinden, gelesen oder in die Knoten geschrieben haben. Standardmäßig wird die Pipeline, in der die meisten separaten Aktionen ausgeführt wurden, zuerst aufgeführt. Mit der Option Sortieren können Sie die Sortierung ändern.

Wenn Sie eine Datei mit allen angezeigten Pipelines herunterladen möchten, klicken Sie auf CSV-Datei herunterladen.

Tab „Code“

Auf dem Tab Code für einen Knoten werden alle SQL-Scripts angezeigt, die in den Eingabedateien enthalten sind und mit denen Daten aus diesem Knoten gelesen oder in diesen Knoten geschrieben wurden. Erwähnungen des Knotens werden im SQL-Text hervorgehoben. Klicken Sie auf ein Skript, um den vollständigen Text zu maximieren. Sie können die Filtereinstellungen ändern, um die Liste der angezeigten Skripts zu filtern.

Wenn Sie eine Datei mit allen angezeigten Skripts herunterladen möchten, klicken Sie auf CSV-Datei herunterladen.

Edge-Seite prüfen

Klicken Sie auf einen der folgenden Tabs, um die Knotenverbindungen in Ihrem Herkunftsdiagramm zu sehen.

Tab „Details“

Auf dem Tab Details für eine Kante werden Prädikate und Kategorien angezeigt, die die Vorgänge beschreiben, die von Skripts ausgeführt wurden, die die Kante verursacht haben.

Prädikate werden als dreiteilige Codes angegeben, die durch Bindestriche getrennt sind. Der erste Teil ist entweder r, was darauf hinweist, dass die Quelle der Kante eine Beziehung ist, oder a, was darauf hinweist, dass die Quelle der Kante ein Attribut ist. Der zweite Teil ist eine der folgenden Abkürzungen, die angibt, wie sich der Quellknoten auf die Daten im Zielknoten ausgewirkt hat:

  • has: Die Quellbeziehung enthält das Zielattribut.
  • dat: Die Quelle kopiert oder überträgt Daten an das Ziel.
  • res: Die Quelle filtert oder schränkt die Kardinalität des Ziels in einer Klausel wie WHERE, HAVING oder JOIN ON ein.
  • grp: Die Quelle wird in einer GROUP BY-Klausel verwendet, die sich auf das Ziel auswirkt.

Der dritte Teil ist entweder r oder a. Er gibt an, ob das Ziel des Edge eine Beziehung oder ein Attribut ist.

Kantenkategorien können Folgendes umfassen:

  • dat Prädikate:
    • AGGREGATE: Die Quelle wurde in einer aggregierten Berechnung verwendet, mit der das Ziel geschrieben wurde.
    • EXACT_COPY: Daten aus der Quelle wurden vollständig in das Ziel kopiert.
    • FUNCTION: Die Quelle wurde zum Berechnen des Ziels verwendet.
    • IDENTITY_COPY: Das Ziel wurde nicht berechnet. Das Ziel war eine wörtliche Kopie der Quelle ohne Casts oder Konvertierungen.
    • PARTITION_PROMOTION: Das Ziel enthält Daten aus der Quelle, weil eine Partition der Quelle in das Ziel übertragen wurde.
    • WEAK_COPY: Daten aus der Quelle wurden zumindest teilweise in das Ziel kopiert.
  • res Prädikate:
    • FILTER: Die Quelle wurde in einem Vergleich verwendet, bei dem das Ziel geschrieben wurde.
    • KEY: Daten aus der Quelle wurden als Schlüssel in einem Join-Vergleich verwendet, bei dem das Ziel geschrieben wurde.
  • grp Prädikate:
    • GROUP: Daten aus der Quelle wurden als Schlüssel in einer GROUP BY-Klausel verwendet, die sich auf das Ziel auswirkt.

Tab „Code“

Auf dem Tab Code für einen Knoten werden die SQL-Scripts angezeigt, die diesen Knoten verursacht haben. Die Quell- und Zielknoten der Kante werden hervorgehoben, wenn sie im SQL-Text erwähnt werden.

Nächste Schritte

  • Führen Sie eine Migrationsbewertung durch, um die Machbarkeit und die potenziellen Vorteile der Migration Ihres Data Warehouse zu BigQuery zu bewerten.
  • Verwenden Sie den SQL-Übersetzungsdienst, z. B. den interaktiven SQL-Übersetzer, die Translation API und den Batch-SQL-Übersetzer, um die Konvertierung Ihrer SQL-Abfragen in GoogleSQL zu automatisieren, einschließlich der Gemini-optimierten SQL-Anpassung.