Auf dieser Seite wird die Verwendung der Dataproc Metastore-Benutzeroberfläche für Administratoren erläutert.
Die Administratoroberfläche bietet Ihnen ein zentrales Tool, mit dem Sie die in Ihrem Dataproc Metastore-Dienst gespeicherten Metadaten prüfen und verwalten können, ohne eine Verbindung zu einem Dataproc-Cluster oder einer Hive-Instanz herstellen zu müssen. Stattdessen können Sie Ihre Metadaten mit der gcloud CLI oder den Dataproc Metastore APIs verwalten.
Über die Administratoroberfläche können Sie beispielsweise eine SQL-Abfrage direkt auf Ihre Back-End-Metadaten ausführen, um einen bestimmten Tabellennamen abzurufen. Bei diesem Vorgang sind weniger Schritte erforderlich als beim üblichen Workflow, z. B. das Erstellen eines Dataproc-Clusters, das Herstellen einer SSH-Verbindung zum Cluster, das Starten einer Hive-Instanz und schließlich das Ausführen einer Abfrage (z. B. SELECT * FROM table_name
).
So können Sie mit der Administratoroberfläche Zeit sparen und die Anzahl der Google Cloud Ressourcen, die zum Abrufen Ihrer Daten erforderlich sind, reduzieren.
Hinweis
- Aktivieren Sie Dataproc Metastore in Ihrem Projekt.
- Erstellen Sie einen Dataproc Metastore-Dienst.
- Metadaten in Dataproc Metastore importieren
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Verwendung der Dataproc Metastore-Benutzeroberfläche benötigen. Dabei wird das Prinzip der geringsten Berechtigung angewendet:
-
So rufen Sie Dataproc Metastore-Metadaten ab:
Administrator von Metadatenabfragen (
roles/metastore.metadataQueryAdmin
) für das Nutzerkonto oder Dienstkonto -
So ändern Sie den Speicherort der Ressourcen Ihrer Metadaten, einschließlich Datenbanken, Tabellen und Partitionen, oder verschieben eine Tabelle in eine andere Datenbank:
-
Administrator für die Metadatenänderung (
roles/metastore.metadataMutateAdmin
) für das Nutzer- oder Dienstkonto -
Dataproc Metastore-Bearbeiter (
roles/metastore.editor
) für das Nutzerkonto oder Dienstkonto
-
Administrator für die Metadatenänderung (
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Verwenden der Dataproc-Metastore-Benutzeroberfläche für Administratoren erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um die Dataproc Metastore-Benutzeroberfläche zu verwenden:
-
So rufen 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 Rollen und Berechtigungen für Dataproc Metastore finden Sie unter IAM-Rollen und -Berechtigungen für Dataproc Metastore.Unterstützte Administratorvorgänge
Sie können Aktionen auf der Administratoroberfläche nur über die gcloud CLI oder die Dataproc Metastore APIs ausführen. Vorgänge über die Administratoroberfläche werden in der Google Cloud Console nicht unterstützt.
Die Administratoroberfläche unterstützt die folgenden Vorgänge.
Schreibgeschützte Vorgänge
- Metadaten abfragen.
Lese- und Schreibvorgänge
- Ändern Sie den Speicherort der Metadaten, einschließlich Datenbanken, Tabellen und Partitionen.
- Tabelleneigenschaften ändern, z. B. benutzerdefinierte Schlüssel/Wert-Paare
- Eine Tabelle in eine andere Datenbank verschieben
Metadaten abfragen
Mit diesem Vorgang können Sie Metadateninformationen in Ihrer Datenbank mithilfe von SQL-Abfragen abrufen. Nach dem Ausführen einer Abfrage werden die Ergebnisse in den Bucket artifacts Google Cloud kopiert.
Beachten Sie vor dem Ausführen dieses Vorgangs Folgendes:
- Zu den unterstützten Vorgängen gehören nur
read-only
-MySQL- oder Spanner-Abfragen. Wenn in der Abfrage versucht wird, die Daten zu ändern, 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 sie manuell aus Ihrem Google Cloud -Bucket löschen. Wenn Sie sie nicht löschen, fallen möglicherweise zusätzliche Speicherkosten an.
gcloud-CLI
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-Dienstes.LOCATION
: die Google Cloud Region, in der sich Ihr Dataproc Metastore-Dienst befindet.QUERY
: Die SQL-Abfrage, die auf Ihre Metadaten ausgerichtet ist.- Wenn Sie eine MySQL-Datenbank verwenden, verwenden Sie eine reguläre MySQL-Abfrage.
- Wenn Sie eine Spanner-Datenbank verwenden, verwenden Sie eine GoogleSQL-Abfrage.
Rufen Sie die Ausgabedatei in Ihrem Bucket artifacts Google Cloud auf.
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.
- Wenn Sie eine Spanner-Datenbank verwenden, verwenden Sie eine GoogleSQL-Abfrage.
PROJECT_ID
: die Google Cloud Projekt-ID, in der sich der Dataproc Metastore-Dienst befindet.SERVICE
: der Name Ihres Dataproc Metastore-Dienstes.LOCATION
: die Region, in der sich Ihr Dataproc Metastore befindet.
Im folgenden Beispiel wird ein Beispielbefehl gezeigt, mit dem eine select *
-Abfrage aus einer Datenbank namens DBS ausgeführt wird.
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 auswerten
Wenn Sie zum ersten Mal einen Befehl zum Abfragen von Metadaten ausführen, erstellt Dataproc Metastore automatisch einen Google Cloud Ordner im Bucket „artifacts“ Google Cloud .
Dieser Ordner heißt query-results
. Nach jeder erfolgreichen Abfrage (API-Aufruf) wird im Ordner query-results
ein neuer Ordner mit einer zufällig generierten UUID erstellt.
Jeder neue Ordner enthält eine result manifest
-Datei mit den Abfrageergebnissen. Der Speicherort dieses Ordners wird in der Antwort deines API-Aufrufs 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 result manifest
-Datei sieht in etwa so aus:
{
"status": {
"code": 0,
"message": "Query results are successfully uploaded to cloud storage",
"details": []
},
"filenames": ["result-001"]
}
Details zur Manifestdatei des Ergebnisses:
- Das Feld
status
gibt an, ob die Abfrage erfolgreich war oder fehlgeschlagen ist. - Wenn die Abfrage erfolgreich ausgeführt wurde, werden im Feld
filenames
alle erstellten Dateien aufgelistet. Diese Dateien befinden sich im selben Ordner wie dieresult manifest
-Datei. - Wenn die Abfrage fehlgeschlagen ist, wird im Feld
details
die Fehlermeldung angezeigt.
Ressourcenstandort der Metadaten ändern
Mit diesem Vorgang können Sie den Speicherort einer Datenbank, Tabelle oder Partition ändern.
Wenn Sie diesen Befehl ausführen, wird nur das übergeordnete Verzeichnis oder die entsprechende Metadatenressource aktualisiert. Mit diesem Befehl werden keine vorhandenen Daten an den neuen Speicherort übertragen.
gcloud-CLI
Führen Sie den folgenden
gcloud metastore services alter-metadata-resource-location
-Befehl aus, um den Ressourcenspeicherort der Metadaten zu ändern: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 Metastore-Dienstes.LOCATION
: die Google Cloud Region, in der sich Ihr Dataproc Metastore-Dienst befindet.RESOURCE_NAME
: der Name der Datenbank, Tabelle oder Partition, die Sie ändern.LOCATION_URI
: Der neue Cloud Storage-Pfad für den Inhalt vonRESOURCE_NAME
. Dieser Wert ist der Pfad, an den Sie den Speicherort der Metadatenressource verschieben. Dieser Pfad muss mitgs://
beginnen. Beispiel:gs://bucket/object
Prüfen Sie, ob die Änderung des Ressourcenspeicherorts 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 Google Cloud Projekt-ID, in der sich der Dataproc Metastore-Dienst befindet.SERVICE
: der Name Ihres Dataproc Metastore-Dienstes.LOCATION
: die Region, in der sich Ihr Dataproc Metastore befindet.RESOURCE_NAME
: der Name der Datenbank, Tabelle oder Partition, die Sie ändern.LOCATION_URI
: Der neue Cloud Storage-Pfad für den Inhalt vonRESOURCE_NAME
. Dieser Wert ist der Pfad, an den Sie den Speicherort der Metadatenressource verschieben. Dieser Pfad muss mitgs://
beginnen. Beispiel:gs://bucket/object
Im folgenden Beispiel wird ein Beispielbefehl gezeigt, mit dem eine Tabelle namens test-table2
in einen neuen Cloud Storage-Bucket verschoben wird.
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, z. B. ein benutzerdefiniertes Schlüssel/Wert-Paar, das Sie zum Speichern von Daten verwenden. Sie können beispielsweise ein Schlüssel/Wert-Paar von properties.customerID_1
in properties.customerID_2
ändern.
gcloud-CLI
Führen Sie den folgenden
gcloud metastore services alter-table-properties
-Befehl aus, um die Eigenschaften 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-Dienstes.LOCATION
: die Google Cloud Region, in der sich Ihr Dataproc Metastore-Dienst befindet.TABLE_NAME
: der Name der Tabelle mit den Eigenschaften, die Sie ändern möchten, im folgenden Format:databases/{database_id}/tables/{table_id}
.UPDATE_MASK
: die vorhandenen Property-Werte, die Sie aktualisieren. Verwenden Sie eine durch Kommas getrennte Liste, um die Schlüssel/Wert-Paare zu beschreiben, z. B.properties.1,properties.2,properties.3,...
.PROPERTIES
: die neuen Eigenschaften 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 aufgeführten Werte überschreiben die Werte inUPDATE_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-Dienstes.LOCATION
: die Google Cloud Region, in der sich Ihr Dataproc Metastore-Dienst befindet.TABLE_NAME
: der Name der Tabelle mit den Eigenschaften, die Sie ändern möchten, im folgenden Format:databases/{database_id}/tables/{table_id}
.UPDATE_MASK
: die vorhandenen Property-Werte, die Sie aktualisieren. Verwenden Sie eine durch Kommas getrennte Liste, um die Schlüssel/Wert-Paare zu beschreiben, z. B.properties.1,properties.2,properties.3,...
.PROPERTIES
: die neuen Eigenschaften für Ihre Tabelle. Verwenden Sie eine durch Kommas getrennte Liste, um die Schlüssel/Wert-Paare zu beschreiben, z. B.a=1,b=2,c=3,...
. Die hier aufgeführten Werte überschreiben die Werte inUPDATE_MASK
.
Im folgenden Beispiel wird ein Befehl gezeigt, mit dem die Tabelleneigenschaften einer Tabelle namens test-table
geändert werden. In diesem Beispiel wird das vorhandene Schlüssel/Wert-Paar properties.customerID_1
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.
Daten, die in externen Tabellen gespeichert sind, können nicht verschoben werden.
gcloud-CLI
Führen Sie den folgenden
gcloud metastore services move-table-to-database
-Befehl aus, um eine Tabelle in eine andere Datenbank zu verschieben: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 Ihr Dataproc Metastore-Dienst befindet.DB_NAME
: der Name der Quelldatenbank, die die Tabelle enthält, 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 die Sie die Tabelle verschieben möchten.
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, in der sich Ihr Dataproc Metastore-Dienst befindet.SERVICE
: der Name Ihres Dataproc Metastore-Dienstes.LOCATION
: die Region, in der sich Ihr Dataproc Metastore befindet.DB_NAME
: der Name der Quelldatenbank, die die Tabelle enthält, 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 die Sie die Tabelle verschieben möchten.
Im folgenden Beispiel wird ein Beispielbefehl gezeigt, mit dem eine Datenbank namens testdb1
in eine andere Datenbank namens testdb2
verschoben wird.
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