Dataproc Metastore-Administratoroberfläche

Auf dieser Seite wird erläutert, wie Sie den Dataproc Metastore-Administrator verwenden .

Die Verwaltungsoberfläche bietet Ihnen ein zentrales Tool, mit dem Sie die in Ihrem Dataproc Metastore-Dienst gespeicherten Metadaten verwalten, ohne eine Verbindung zu einem Dataproc-Cluster oder einer Hive-Instanz herstellen zu müssen. Stattdessen Sie können Metadaten mit der gcloud CLI oder Dataproc Metastore verwalten. APIs

Beispielsweise können Sie über die Administratoroberfläche eine SQL-Abfrage direkt ausführen. in den Back-End-Metadaten, um einen bestimmten Tabellennamen abzurufen. Dieser Prozess umfasst weniger Schritte ausführen als der typische Workflow, wie z. B. Dataproc-Cluster, über SSH eine Verbindung zum Cluster herstellen, eine Hive-Instanz starten, Anschließend führen Sie eine Abfrage aus (z. B. SELECT * FROM table_name).

Daher kann Ihnen die Administratoroberfläche dabei helfen, Zeit zu sparen und die Menge der Google Cloud-Ressourcen, die zum Abrufen Ihrer Daten erforderlich sind.

Hinweise

Erforderliche Rollen

So erhalten Sie die erforderlichen Berechtigungen zur Verwendung der Dataproc Metastore-Administratoroberfläche: bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für Ihr Projekt basierend auf dem Prinzip der geringsten Berechtigung:

  • So fragen Sie Dataproc Metastore-Metadaten ab: Administrator für Metadatenabfragen (roles/metastore.metadataQueryAdmin) für das Nutzer- oder Dienstkonto
  • So ändern Sie den Ressourcenstandort Ihrer Metadaten, einschließlich Datenbanken, Tabellen und Partitionen, oder verschieben eine Tabelle in eine andere Datenbank: <ph type="x-smartling-placeholder">
      </ph>
    • Metadata mutate-Administrator (roles/metastore.metadataMutateAdmin) für das Nutzer- oder Dienstkonto
    • Dataproc Metastore Editor (roles/metastore.editor) im Nutzerkonto oder Dienstkonto

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Verwenden der Dataproc Metastore-Administratoroberfläche erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um die Dataproc Metastore-Administratoroberfläche zu verwenden:

  • So fragen Sie Dataproc Metastore-Metadaten ab: metastore.services.queryMetadata
  • So ändern oder verschieben Sie Dataproc Metastore-Tabellen: metastore.services.mutateMetadata

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

Weitere Informationen zu bestimmten Dataproc Metastore-Rollen und -Berechtigungen finden Sie in der Übersicht zu Dataproc Metastore IAM.

Unterstützte Administratorvorgänge

Sie können Vorgänge auf der Administratoroberfläche nur mit der gcloud CLI oder die Dataproc Metastore APIs. Vorgänge auf der Administratoroberfläche werden in der Google Cloud Console nicht unterstützt.

Die Administratoroberfläche unterstützt die folgenden Vorgänge.

  • Schreibgeschützte Vorgänge.

    • Abfragemetadaten.
  • Lese- und Schreibvorgänge.

    • Den Ressourcenstandort Ihrer Metadaten ändern, einschließlich Datenbanken und Tabellen und Partitionen.
    • Tabelleneigenschaften ändern, z. B. benutzerdefinierte Schlüssel/Wert-Paare.
    • Verschieben Sie eine Tabelle in eine andere Datenbank.

Abfragemetadaten

Durch diesen Vorgang können Sie Metadateninformationen in Ihrer Datenbank suchen mithilfe von SQL-Abfragen. Nachdem Sie eine Abfrage ausgeführt haben, in Ihrem Google Cloud-Bucket für Artefakte abgelegt werden.

Beachten Sie die folgenden Hinweise, bevor Sie diesen Vorgang ausführen:

  • Zu den unterstützten Vorgängen gehören nur read-only-MySQL- oder Spanner-Abfragen. Wenn bei der Abfrage versucht wird, der Daten geändert werden muss, schlägt der Vorgang fehl.
  • Die Ausgabedatei enthält maximal 1.000 Zeilen. Diese Konfiguration kann nicht geändert werden.
  • Die Ausgabedateien werden nicht automatisch gelöscht. Stattdessen müssen Sie manuell aus Ihrem Google Cloud-Bucket. Wenn Sie sie nicht löschen, zusätzliche Speicherkosten.

gcloud-CLI

  1. Führen Sie den folgenden gcloud metastore services query-metadata-Befehl aus, um Metadaten abzufragen:

    gcloud metastore services query-metadata SERVICE \
      --location=LOCATION \
      --query=QUERY

    Ersetzen Sie Folgendes:

    • SERVICE: der Name Ihres Dataproc Metastore-Dienst
    • LOCATION: die Google Cloud-Region, in der Ihr In dem sich der Dataproc Metastore-Dienst befindet.
    • QUERY: Die SQL-Abfrage zum Targeting Ihrer Metadaten.
      • Wenn Sie eine MySQL-Datenbank verwenden, verwenden Sie eine reguläre MySQL-Abfrage.
      • Verwenden Sie eine GoogleSQL-Abfrage, wenn Sie eine Spanner-Datenbank verwenden.
  2. Sehen Sie sich die Ausgabedatei im Google Cloud-Bucket für Artefakte an.

REST

curl -X POST -s -i \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X POST -d '{"query": "QUERY"}' \
  -H "Content-Type:application/json" \
  https://metastore.googleapis.com/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:queryMetadata

Ersetzen Sie Folgendes:

  • QUERY: Die SQL-Abfrage, die Sie für das Targeting Ihrer Metadaten verwenden.
    • Wenn Sie eine MySQL-Datenbank verwenden, verwenden Sie eine reguläre MySQL-Abfrage.
    • Verwenden Sie eine GoogleSQL-Abfrage, wenn Sie eine Spanner-Datenbank verwenden.
  • PROJECT_ID: die ID des Google Cloud-Projekts, das Sie verwenden In dem sich der Dataproc Metastore-Dienst befindet.
  • SERVICE: der Name Ihres Dataproc Metastores .
  • LOCATION: Die Region, in der Ihr Dataproc Metastore sich befindet.

Das folgende Beispiel zeigt einen Beispielbefehl, der eine select *-Abfrage aus einer Datenbank namens DBS ausführt.

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" -X POST -d  '{"query": "select * from DBS;"}' \
  https://metastore.googleapis.com/projects/dpms/locations/us-central1/services/dpms1:queryMetadata

Ausgabe eines Metadatenvorgangs für Abfragen interpretieren

Wenn Sie einen Metadaten-Abfragebefehl zum ersten Mal ausführen, wird Dataproc Metastore automatisch erstellt einen Google Cloud-Ordner im Google Cloud-Bucket für Artefakte. Dieser Ordner heißt query-results. Nach jeder erfolgreichen Abfrageausführung (API-Aufruf) wird im Ordner query-results ein neuer Ordner erstellt (der mit dem zufällig generierte UUID).

Jeder neue Ordner enthält eine result manifest-Datei mit Ihren Abfrageergebnissen. Standort dieses Ordners als Antwort auf Ihren API-Aufruf zurückgegeben.

In der Antwort enthält das Feld resultManifestUri beispielsweise den Speicherort der Datei.

"response": {
    "@type": "type.googleapis.com/google.cloud.metastore.QueryMetadataResponse",
    "resultManifestUri": "gs://gcs-bucket-6a3638b8-e319-46363-ad33-e632a5e/query-results/800156f5-2d13-4b80-bec3-2345a9e880f6/result-manifest"
  }

Die Ausgabe der Datei result manifest sieht in etwa so aus:

{
  "status": {
    "code": 0,
    "message": "Query results are successfully uploaded to cloud storage",
    "details": []
  },
  "filenames": ["result-001"]
}

Details zur Ergebnismanifestdatei:

  • Im Feld status wird angezeigt, ob die Abfrage erfolgreich war oder fehlgeschlagen ist.
  • Wenn die Abfrage erfolgreich ausgeführt wurde, werden im Feld filenames alle Dateien erstellt. Diese Dateien befinden sich im selben Ordner wie die Datei result manifest.
  • Wenn die Abfrage zu einem Fehler führte, wird im Feld details die Fehlermeldung angezeigt.

Ressourcenstandort der Metadaten ändern

Mit diesem Vorgang können Sie den Ressourcenstandort einer Datenbank, Tabelle oder -Partition an.

Wenn Sie diesen Befehl ausführen, wird nur das übergeordnete Verzeichnis bzw. das entsprechende Metadatenressource. Mit diesem Befehl werden keine vorhandenen Daten neuen Speicherort.

gcloud-CLI

  1. Führen Sie folgenden Befehl aus, um den Ressourcenstandort der Metadaten zu ändern: gcloud metastore services alter-metadata-resource-location-Befehl:

    gcloud metastore services alter-metadata-resource-location SERVICE \
      --location=LOCATION \
      --resource_name=RESOURCE_NAME \
      --location_uri=LOCATION_URI

    Ersetzen Sie Folgendes:

    • SERVICE: der Name Ihres Dataproc Metastores .
    • LOCATION: die Google Cloud-Region, in der Ihr In dem sich der Dataproc Metastore-Dienst befindet.
    • RESOURCE_NAME: der Name der Datenbank, Tabelle oder eine Partition, die Sie ändern.
    • LOCATION_URI: der neue Cloud Storage-Pfad für den Inhalt von RESOURCE_NAME. Dieser Wert ist der Pfad, in den Sie den Speicherort Ihrer Metadatenressource verschieben. Dieser Pfad muss mit gs:// beginnen. Beispiel: gs://bucket/object
  2. Prüfen Sie, ob die Änderung des Ressourcenstandorts erfolgreich war.

REST

curl -X POST -s -i \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  POST -d '{"resource_name": "RESOURCE_NAME", "location_uri":"LOCATION_URI"}' \
  -H "Content-Type:application/json" \
  https://metastore.googleapis.com/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:alterLocation

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Google Cloud-Projekts, das Sie verwenden In dem sich der Dataproc Metastore-Dienst befindet.
  • SERVICE: der Name Ihres Dataproc Metastore-Dienstes.
  • LOCATION: Die Region, in der sich der Dataproc Metastore befindet.
  • RESOURCE_NAME: der Name der Datenbank, Tabelle oder Partition, die Sie ändern möchten
  • LOCATION_URI: der neue Cloud Storage-Pfad für den Inhalt von RESOURCE_NAME. Dieser Wert ist der Pfad, in den Sie den Speicherort Ihrer Metadatenressource verschieben. Dieser Pfad muss mit gs:// beginnen. Beispiel: gs://bucket/object

Das folgende Beispiel zeigt einen Beispielbefehl, mit dem eine Tabelle namens test-table2 in einen neuen Cloud Storage-Bucket.

 curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
   -H "Content-Type: application/json" \
   -X POST -d  '{"resource_name": "databases/testdb1/tables/test-table2",
   "location_uri":"gs://gcs-bucket-dpms1-9425bd83-b794-4f1c-9e79-2d833f758cc1/empty"}'
   https://metastore.googleapis.com/projects/dpms/locations/us-central1/services/dpms1:alterLocation

Tabelleneigenschaften ändern

Mit diesem Vorgang können Sie die Eigenschaften einer Tabelle ändern, beispielsweise einen benutzerdefinierten Schlüssel/Wert-Paar, das Sie zum Speichern von Daten verwenden. Sie können beispielsweise ein Schlüssel/Wert-Paar von properties.customerID_1 bis properties.customerID_2.

gcloud-CLI

  1. Führen Sie den folgenden gcloud metastore services alter-table-properties-Befehl aus, um die Attribute einer Tabelle zu ändern:

    gcloud metastore services alter-table-properties SERVICE \
      --location=LOCATION \
      --table-name=TABLE_NAME \
      --update-mask=UPDATE_MASK \
      --properties=PROPERTIES

    Ersetzen Sie Folgendes:

    • SERVICE: der Name Ihres Dataproc Metastore-Dienst
    • LOCATION: die Google Cloud-Region, in der Ihr In dem sich der Dataproc Metastore-Dienst befindet.
    • TABLE_NAME: der Name der Tabelle mit dem die Sie ändern, im folgenden Format: databases/{database_id}/tables/{table_id}.
    • UPDATE_MASK: Die vorhandenen Attributwerte, die Sie aktualisieren. Verwenden Sie zur Beschreibung der Schlüssel/Wert-Paare eine durch Kommas getrennte Liste. Beispiel: properties.1,properties.2,properties.3,...
    • PROPERTIES: die neuen Attribute für Ihre Tabelle. Verwenden Sie eine durch Kommas getrennte Liste, um die Schlüssel/Wert-Paare zu beschreiben. Beispiel: a=1,b=2,c=3,... Die hier aufgelisteten Werte überschreiben die Werte in „UPDATE_MASK“.

REST

curl -X POST -s -i \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  POST -d '{"table_name": "TABLE_NAME", "update_mask":"UPDATE_MASK", "properties":PROPERTIES}'\
  -H "Content-Type:application/json" \
  https://metastore.googleapis.com/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:alterTableProperties

Ersetzen Sie Folgendes:

  • SERVICE: der Name Ihres Dataproc Metastore-Dienst
  • LOCATION: die Google Cloud-Region, in der Ihr In dem sich der Dataproc Metastore-Dienst befindet.
  • TABLE_NAME: der Name der Tabelle mit dem die Sie ändern, im folgenden Format: databases/{database_id}/tables/{table_id}.
  • UPDATE_MASK: Die vorhandenen Attributwerte, die Sie aktualisieren. Verwenden Sie zur Beschreibung der Schlüssel/Wert-Paare eine durch Kommas getrennte Liste. Beispiel: properties.1,properties.2,properties.3,...
  • PROPERTIES: die neuen Attribute für Ihre Tabelle. Verwenden Sie zur Beschreibung der Schlüssel/Wert-Paare eine durch Kommas getrennte Liste. Beispiel: a=1,b=2,c=3,... Die hier aufgelisteten Werte überschreiben die Werte in UPDATE_MASK

Das folgende Beispiel zeigt einen Beispielbefehl, mit dem die Tabelleneigenschaften eines eine Tabelle mit dem Namen test-table. In diesem Beispiel wird das vorhandene Schlüssel/Wert-Paar, properties.customerID_1 wird auf den neuen Wert properties.customerID_2 aktualisiert

  curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
   -H "Content-Type: application/json"
   -X POST -d  '{"table_name": "databases/default/tables/test-table", "update_mask":{"paths":"properties.customerID_1"}, "properties":{"customerID_1":"customerID_2"}}' https://metastore.googleapis.com/projects/dpms-p

Tabelle in eine andere Datenbank verschieben

Mit diesem Vorgang können Sie eine interne Tabelle (verwaltete Tabelle) in eine andere Datenbank verschieben. In diesem Fall werden sowohl das übergeordnete Verzeichnis der Datenbank als auch die zugehörigen Daten verschoben.

Sie können keine Daten verschieben, die in externen Tabellen gespeichert sind.

gcloud-CLI

  1. Führen Sie den folgenden Befehl aus, um eine Tabelle in eine andere Datenbank zu verschieben: gcloud metastore services move-table-to-database-Befehl:

    gcloud metastore services move-table-to-database SERVICE \
      --location=LOCATION \
      --db_name=DB_NAME \
      --table_name=TABLE_NAME \
      --destination_db_name=DESTINATION_DB_NAME

    Ersetzen Sie Folgendes:

    • SERVICE: der Name Ihres Dataproc Metastore-Dienstes.
    • LOCATION: Die Google Cloud-Region, in der sich der Dataproc Metastore-Dienst befindet.
    • DB_NAME: der Name der Quelldatenbank, die die zu verschiebende Tabelle enthält.
    • TABLE_NAME: der Name der Tabelle, die Sie verschieben möchten.
    • DESTINATION_DB_NAME: der Name der neuen Datenbank, in die Sie die Tabelle verschieben möchten.
  2. Prüfen Sie, ob die Tabellenänderung erfolgreich war.

REST

curl -X POST -s -i \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  POST -d '{"table_name": "TABLE_NAME", "db_name": "DB_NAME", "destination_db_name": "DESTINATION_DB_NAME"}'\
  -H "Content-Type:application/json" \
  https://metastore.googleapis.com/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:moveTableToDatabase

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Google Cloud-Projekt-ID, die Ihr In dem sich der Dataproc Metastore-Dienst befindet.
  • SERVICE: der Name Ihres Dataproc Metastores .
  • LOCATION: Die Region, in der Ihr Dataproc Metastore sich befindet.
  • DB_NAME: der Name der Quelldatenbank, die die Tabelle, die Sie verschieben möchten.
  • TABLE_NAME: der Name der Tabelle, die Sie verschieben möchten.
  • DESTINATION_DB_NAME: der Name der neuen Datenbank in das Sie die Tabelle verschieben möchten.

Das folgende Beispiel zeigt einen Beispielbefehl, mit dem ein datenbasierter Befehl mit der Bezeichnung mit dem Namen testdb1 in eine andere Datenbank namens testdb2.

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/json"
 -X POST -d  '{"table_name": "testtb1", "db_name": "testdb1",
 "destination_db_name": "testdb2"}' https://metastore.googleapis.com/projects/dpms/locations/asia-northeast2/services/dpms1:moveTableToDatabase

Nächste Schritte