Sie können die Data Catalog API verwenden, um Cloud Storage-Dateisatzeinträge zu erstellen und zu suchen (in diesem Dokument als „Dateisätze“ bezeichnet).
Dateisätze
Ein Cloud Storage-Dateisatz ist ein Eintrag in einer vom Nutzer erstellten Eintragsgruppe. Weitere Informationen finden Sie unter Einträge und Eintragsgruppen.
Er wird durch ein oder mehrere Dateimuster definiert, die einen Satz von einer oder mehreren Cloud Storage-Dateien angeben.
- Ein Dateimuster muss mit
gs://bucket_name/
beginnen. - Der Bucket-Name muss den Anforderungen für Cloud Storage-Bucket-Namen entsprechen.
- Platzhalter sind in den Ordner- und Dateibereichen von Dateimustern zulässig, in Bucket-Namen sind jedoch keine Platzhalter zulässig. Beispiele finden Sie unter:
- Platzhalternamen
- GcsFilesetSpec.filePatterns API-Referenzdokumentation
- Ein Dateisatz muss mindestens ein und nicht mehr als 5 Dateisatzmuster haben.
Sie können Data Catalog-Dateisätze mit Dataflow SQL abfragen, aber nur, wenn sie ein definiertes Schema haben und nur CSV-Dateien ohne Kopfzeilen enthalten.
Eintragsgruppen und Dateisätze erstellen
Dateisätze müssen in einer von Nutzern erstellten Eintragsgruppe platziert werden. Wenn Sie keine Eintragsgruppe erstellt haben, erstellen Sie zuerst die Eintragsgruppe und erstellen Sie dann den Dateisatz innerhalb der Eintragsgruppe. Sie können IAM-Richtlinien für die Eintragsgruppe festlegen, um festzulegen, wer Zugriff auf Dateisätze und andere Einträge innerhalb der Eintragsgruppe hat.
Console
Console
Rufen Sie die Seite Dataplex > Eintragsgruppen auf.
Klicken Sie auf Eintragsgruppe erstellen.
Füllen Sie das Formular Eintragsgruppe erstellen aus und klicken Sie dann auf ERSTELLEN.
Die Seite Eintragsgruppendetails wird geöffnet. Klicken Sie bei ausgewähltem Tab EINTRÄGE auf ERSTELLEN.
Füllen Sie das Formular Dateisatz erstellen aus.
- Klicken Sie zum Anhängen eines Schemas auf Schema definieren, um das Schemaformular zu öffnen. Klicken Sie auf + FELDER HINZUFÜGEN, um Felder einzeln hinzuzufügen, oder klicken Sie rechts oben im Formular auf Als Text bearbeiten, um die Felder im JSON-Format anzugeben.
- Klicken Sie auf Speichern, um das Schema zu speichern.
Klicken Sie auf Erstellen, um das Dateiset zu erstellen.
gcloud
gcloud
1. Eintragsgruppe erstellen
Verwenden Sie den Befehl gcloud data-catalog entry-groups create, um eine Eintragsgruppe mit einem angehängten Schema und einer Beschreibung zu erstellen.
Beispiel:
gcloud data-catalog entry-groups create my_entrygroup \ --location=us-central1
2. Dateisatz innerhalb der Eintragsgruppe erstellen
Erstellen Sie mit dem Befehl gcloud data-catalog entries create einen Dateisatz innerhalb einer Eintragsgruppe. Mit diesem Google Cloud CLI-Befehl unten wird ein Dateisatzeintrag erstellt, der das Schema der Dateisatzdaten enthält.
gcloud data-catalog entries create my_fileset_entry \ --location=us-central1 \ --entry-group=my_entrygroup \ --type=FILESET \ --gcs-file-patterns=gs://my-bucket/*.csv \ --schema-from-file=path_to_schema_file \ --description="Fileset description ..."
Notizen melden:
--gcs-file-patterns
: Siehe Anforderungen an Dateimuster.--schema-from-file
: Das folgende Beispiel zeigt das JSON-Format der Schematextdatei, die vom Flag--schema-from-file
akzeptiert wird.[ { "column": "first_name", "description": "First name", "mode": "REQUIRED", "type": "STRING" }, { "column": "last_name", "description": "Last name", "mode": "REQUIRED", "type": "STRING" }, { "column": "address", "description": "Address", "mode": "REPEATED", "type": "STRING" } ]
Java
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Java in der Data Catalog-Kurzanleitung mit Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Data Catalog Java API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich beim Data Catalog zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Node.js in der Data Catalog-Kurzanleitung mit Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Data Catalog Node.js API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich beim Data Catalog zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Python in der Data Catalog-Kurzanleitung mit Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Data Catalog Python API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich beim Data Catalog zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
REST und Befehlszeile
REST
Wenn Sie keinen Zugriff auf Cloud Client-Bibliotheken für Ihre Sprache haben oder die API mit REST-Anfragen testen möchten, sehen Sie sich die folgenden Beispiele an und lesen Sie die Dokumentation zu den Data Catalog REST APIs entryGroups.create und entryGroups.entries.create.
- Eintragsgruppe erstellen
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project-id: Ihre Google Cloud-Projekt-ID
- entryGroupId: Die ID muss mit einem Buchstaben oder Unterstrich beginnen, darf nur lateinische Buchstaben, Zahlen und Unterstriche enthalten und darf höchstens 64 Zeichen umfassen.
- displayName: Der Textname für die Eintragsgruppe.
HTTP-Methode und URL:
POST https://datacatalog.googleapis.com/v1/projects/project-id/locations/region/entryGroups?entryGroupId=entryGroupId
JSON-Text anfordern:
{ "displayName": "Entry Group display name" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/my_projectid/locations/us-central1/entryGroups/my_entry_group", "displayName": "Entry Group display name", "dataCatalogTimestamps": { "createTime": "2019-10-19T16:35:50.135Z", "updateTime": "2019-10-19T16:35:50.135Z" } }
- Dateisatz innerhalb der Eintragsgruppe erstellen
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- project_id: Ihre Google Cloud-Projekt-ID
- entryGroupId: ID der vorhandenen entryGroup. Dateisatz wird in dieser sntryGroup erstellt.
- entryId: EntryId des neuen Dateisatzes. Die ID muss mit einem Buchstaben oder Unterstrich beginnen, darf nur lateinische Buchstaben, Zahlen und Unterstriche enthalten und darf höchstens 64 Zeichen umfassen.
- description: Dateisatzbeschreibung.
- displayName: Der Textname für den Dateisatzeintrag.
- filePatterns: Muss mit "gs://bucket_name/" beginnen. Siehe Anforderungen an Dateimuster.
- schema: Dateisatzschema.Beispiel für ein JSON-Schema:
{ ... "schema": { "columns": [ { "column": "first_name", "description": "First name", "mode": "REQUIRED", "type": "STRING" }, { "column": "last_name", "description": "Last name", "mode": "REQUIRED", "type": "STRING" }, { "column": "address", "description": "Address", "mode": "REPEATED", "subcolumns": [ { "column": "city", "description": "City", "mode": "NULLABLE", "type": "STRING" }, { "column": "state", "description": "State", "mode": "NULLABLE", "type": "STRING" } ], "type": "RECORD" } ] } ... }
HTTP-Methode und URL:
POST https://datacatalog.googleapis.com/v1/projects/project_id/locations/region/entryGroups/entryGroupId/entries?entryId=entryId
JSON-Text anfordern:
{ "description": "Fileset description.", "displayName": "Display name", "gcsFilesetSpec": { "filePatterns": [ "gs://bucket_name/file_pattern" ] }, "type": "FILESET", "schema": { schema } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/my_project_id/locations/us-central1/entryGroups/my_entryGroup_id/entries/my_entry_id", "type": "FILESET", "displayName": "My Fileset", "description": "My Fileset description.", "schema": { "columns": [ { "type": "STRING", "description": "First name", "mode": "REQUIRED", "column": "first_name" }, { "type": "STRING", "description": "Last name", "mode": "REQUIRED", "column": "last_name" }, { "type": "RECORD", "description": "Address", "mode": "REPEATED", "column": "address", "subcolumns": [ { "type": "STRING", "description": "City", "mode": "NULLABLE", "column": "city" }, { "type": "STRING", "description": "State", "mode": "NULLABLE", "column": "state" } ] } ] }, "gcsFilesetSpec": { "filePatterns": [ "gs://my_bucket_name/chicago_taxi_trips/csv/shard-*.csv" ] }, "sourceSystemTimestamps": { "createTime": "2019-10-23T23:11:26.326Z", "updateTime": "2019-10-23T23:11:26.326Z" }, "linkedResource": "//datacatalog.googleapis.com/projects/my_project_id/locations/us-central1/entryGroups/my_entryGroup_id/entries/my_entry_id" }
IAM-Rollen, -Berechtigungen und -Richtlinien
Data Catalog definiert „entry“- und „entryGroup“-Rollen, um die Berechtigungsverwaltung für Dateisätze und andere Data Catalog-Ressourcen zu erleichtern.
Beitragsrollen | Beschreibung |
---|---|
dataCatalog.entryOwner |
Inhaber eines bestimmten Eintrags oder einer Gruppe von Einträgen.
|
dataCatalog.entryViewer |
Kann Details zu Eintrag und entryGroup anzeigen.
|
Rollen für Eintragsgruppen | Beschreibung |
---|---|
dataCatalog.entryGroupOwner |
Inhaber einer bestimmten entryGroup.
|
dataCatalog.entryGroupCreator |
Kann entryGroups in einem Projekt erstellen. Dem Ersteller einer entryGroup wird automatisch die Rolle dataCatalog.entryGroupOwner zugewiesen.
|
IAM-Richtlinien festlegen
Nutzer mit der Berechtigung datacatalog.<resource>.setIamPolicy
können IAM-Richtlinien für Data Catalog-Eintragsgruppen und andere Data Catalog-Ressourcen festlegen (siehe Data Catalog-Rollen).
Console
Rufen Sie in der Data Catalog-UI die Seite Details der Eintragsgruppe auf und verwenden Sie dann das IAM-Steuerfeld auf der rechten Seite, um Berechtigungen zu erteilen oder zu entziehen.
gcloud
Legen Sie die IAM-Richtlinie einer Eintragsgruppe mit Google Cloud CLI data-catalog entry-groups set-iam-policy fest:
gcloud data-catalog entry-groups set-iam-policy my_entrygroup \ --location=us-central1 \ policy file
Rufen Sie die IAM-Richtlinie einer Eintragsgruppe mit Google Cloud CLI data-catalog entry-groups get-iam-policy ab.
gcloud data-catalog entry-groups get-iam-policy my_entrygroup \ --location=us-central1
Rollen für Eintragsgruppen zuweisen
Beispiel 1
Ein Unternehmen mit unterschiedlichen Geschäftskontexten für seine Dateisätze erstellt separate Eintragsgruppen order-files
und user-files
:
Das Unternehmen gewährt Nutzern die Rolle „Betrachter von Eintragsgruppen“ für order-files
, das heißt, sie können nur nach Einträgen suchen, die in dieser Eintragsgruppe enthalten sind. Ihre Suchergebnisse geben keine Einträge in der Eintragsgruppe user-files
zurück.
Beispiel 2
Ein Unternehmen gewährt nur einem Nutzer im Projekt project_entry_group
die Rolle „Betrachter der Eintragsgruppe“. Der Nutzer kann nur Einträge innerhalb dieses Projekts ansehen.
In Dateisätzen suchen
Nutzer können den Umfang der Suche in Data Catalog mithilfe des Attributs type
einschränken. type=entry_group
beschränkt die Suchanfrage auf Eintragsgruppen, während type=fileset
nur nach Dateisätzen sucht.
type
-Attribute können in Verbindung mit anderen Attributen wie projectid
verwendet werden.
gcloud
Nach Eintragsgruppen in einem Projekt suchen:
gcloud data-catalog search \ --include-project-ids=my-project "projectid=my-project type=entry_group"
Suchen Sie nach allen Beitragsgruppen, auf die Sie zugreifen können:
gcloud data-catalog search \ --include-project-ids=my-project "type=entry_group"
Nach Dateisätzen in einem Projekt suchen:
gcloud data-catalog search \ --include-project-ids=my-project "type=entry.fileset"
Suche nach Dateisätzen in einem Projekt (vereinfachte Syntax):
gcloud data-catalog search \ --include-project-ids=my-project "type=fileset"