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
- Aktivieren Sie Dataproc Metastore in Ihrem Projekt.
- Erstellen Sie einen Dataproc Metastore-Dienst.
- Metadaten in Dataproc Metastore importieren
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
-
Metadata mutate-Administrator (
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
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-DienstLOCATION
: 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.
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 Dateiresult 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
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 vonRESOURCE_NAME
. Dieser Wert ist der Pfad, in den Sie den Speicherort Ihrer Metadatenressource verschieben. Dieser Pfad muss mitgs://
beginnen. Beispiel:gs://bucket/object
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öchtenLOCATION_URI
: der neue Cloud Storage-Pfad für den Inhalt vonRESOURCE_NAME
. Dieser Wert ist der Pfad, in den Sie den Speicherort Ihrer Metadatenressource verschieben. Dieser Pfad muss mitgs://
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
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-DienstLOCATION
: 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-DienstLOCATION
: 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 inUPDATE_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
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.
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