Personendaten aus einer benutzerdefinierten Quelle importieren

Anstatt Personendaten aus Google Workspace zu synchronisieren, können Sie Personendaten aus Cloud Storage oder BigQuery importieren. Auf dieser Seite wird beschrieben, wie Sie einen Connector für die Personensuche erstellen und benutzerdefinierte Daten zu Personen aus einem Cloud Storage-Bucket oder einer BigQuery-Tabelle importieren.

Hinweise

Personenbezogene Daten aus einer benutzerdefinierten Quelle aufnehmen

So verwenden Sie die Google Cloud Konsole zum Erfassen von personenbezogenen Daten:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Gemini Enterprise auf.

    Gemini Enterprise

  2. Rufen Sie die Seite Datenspeicher auf.

  3. Klicken Sie auf Datenspeicher erstellen.

    Hier sehen Sie die Schaltfläche zum Erstellen eines Datenspeichers.
    Erstellen Sie einen neuen Datenspeicher.

  4. Wählen Sie auf der Seite Datenquelle auswählen im Abschnitt Cloud-Quellen die Option Personen über benutzerdefinierten Connector aus.

    Wählen Sie eine Datenquelle aus.
    Wählen Sie eine Datenquelle aus.

  5. Personendaten importieren:

    • Später importieren: Wenn Sie Ihre personenbezogenen Daten noch nicht in Cloud SQL oder BigQuery importiert haben, wählen Sie Später importieren aus.

    • BigQuery: Daten aus einer BigQuery-Tabelle hochladen.

    • Cloud Storage: Daten aus einer Cloud Storage-Tabelle hochladen.

    Optionen zum Importieren von Personendaten, einschließlich späterem Import, aus BigQuery oder aus Cloud Storage.
    Personendaten importieren

  6. Klicken Sie auf Weiter.

  7. Wählen Sie eine Region für Ihren Datenspeicher aus.

  8. Geben Sie einen Namen für den Datenspeicher ein.

  9. Optional: Wenn für die Daten eine Zugriffssteuerung erforderlich ist, wählen Sie Dieser Datenspeicher enthält Informationen zur Zugriffssteuerung aus. Weitere Informationen finden Sie unter Zugriffssteuerung für Datenquellen.

  10. Klicken Sie auf Erstellen.

    Daten-Connector konfigurieren und erstellen
    Daten-Connector konfigurieren

  11. Wenn Sie den Status der Aufnahme prüfen möchten, rufen Sie die Seite Datenspeicher auf und klicken Sie auf den Namen des Datenspeichers, um Details dazu auf der Seite Daten anzeigen zu lassen. Wenn sich die Statusspalte auf dem Tab Aktivität von Wird ausgeführt in Import abgeschlossen ändert, ist die Aufnahme abgeschlossen.

    Je nach Größe der Daten kann die Datenaufnahme einige Minuten oder mehrere Stunden dauern.

Suchergebnisse anpassen

So schließen Sie personenbezogene Daten in die Suchergebnisse ein oder schließen sie aus:

  1. Klicken Sie in Ihrem Datenspeicher auf den Tab Entität und dann auf Nutzer.

  2. Klicken Sie auf der Seite Nutzer auf den Tab Schema.

  3. Klicken Sie auf Bearbeiten.

  4. Aktivieren oder deaktivieren Sie die Attribute, z. B. das Land, um anzugeben, ob sie abrufbar, durchsuchbar und indexierbar sind. Damit ein Attribut suchbar ist, muss es als Abrufbar, Indexierbar und Suchbar gekennzeichnet sein.

  5. Klicken Sie auf Speichern.

Vorschau der Personensuchergebnisse ansehen

  1. Wenn Sie den Datenspeicher bereits mit einer App verbunden haben, klicken Sie auf Apps und dann auf den Namen Ihrer App.

  2. Klicken Sie auf Vorschau.

  3. Suchen Sie über die Suchleiste nach Personen in Ihrer Organisation. In den Suchergebnissen werden Details wie Name, Stellenbezeichnung, E-Mail-Adresse und Profilbild angezeigt.

    Informationen zum Öffnen der Gemini Enterprise-Web-App in einem Browser finden Sie unter Such-Web-App aufrufen.

    Sehen Sie sich die Suchergebnisse in der Vorschau an.
    Suchergebnisse in der Vorschau ansehen

    Wenn Sie benutzerdefinierte Attribute durchsuchbar gemacht haben, können Sie sie in Suchen verwenden. Die Attribute selbst werden jedoch nicht in Profilen zurückgegeben. Wenn team-position beispielsweise ein benutzerdefiniertes Attribut ist und im Schema als abrufbar, indexierbar und durchsuchbar gekennzeichnet ist, können Sie nach Personen mit einer bestimmten Teamposition suchen, z. B. „Tech Lead“. Sie erhalten eine Liste der Personen, die diese Position innehaben, aber die Ausgabe enthält nicht die Wörter „Tech Lead“.

Webbasierte Suchanwendung aufrufen

So rufen Sie die Gemini Enterprise-Web-App auf:

  1. Klicken Sie im Navigationsmenü auf Integration.

  2. Die Option Web-App aktivieren muss aktiviert sein.

  3. Klicken Sie im Abschnitt Link zu Ihrer Webanwendung auf Kopieren und öffnen Sie den Link in Ihrem Browser.

Beispiel für organisationsdefinierte Schemafelder für personenbezogene Daten

Die Datensätze aller Personen müssen gemäß dem folgenden Schema formatiert werden. Im Beispiel einer aus Cloud Storage importierten Datei stellt jede Zeile der JSONL-Datei eine Person dar. Eine gültige, aber minimale Datei könnte so aussehen:

{"id":"01","structData":{"personId":"01","name":{"familyName":"Doe","givenName":"Jane"},"email":{"type":"work","value":"jdoe@example.com"}}}
{"id":"02","structData":{"personId":"02","name":{"familyName":"Kumar","givenName":"Ashok"},"email":{"type":"home","value":"akumar@example.net"}}}

Feldname

Typ

Wiederholbar

Indexierbar

Abrufbar

Suchbar

Beschreibung

personId

String

N

J

J

J

Die eindeutige ID der Person. Pflichtfeld. Der Wert des Felds personId muss mit dem id des Dokuments übereinstimmen.

name.familyName

String

N

J

J

J

Der Familien-/Nachname der Person.

name.givenName

String

N

J

J

J

Der Vorname der Person.

name.displayName

String

N

J

J

J

Der Anzeigename der Person.

name.username

String

N

J

J

J

Der Nutzername der Person.

emails.type

String

J

N

N

N

Der Typ des E-Mail-Kontos, z. B. „Arbeit“, „Privat“, „Sonstiges“ oder „Benutzerdefiniert“.

emails.value

String

J

J

J

J

Die E‑Mail-Adresse der Person, z. B. „acruz@example.net“.

phoneNumbers.type

String

J

J

J

J

Der Typ der Telefonnummer, z. B. „Büro“, „Mobil“ oder „Sonstiges“.

phoneNumbers.value

String

J

J

J

J

Die Telefonnummer der Person, z. B. „+1 800-555-1212“.

suspended

boolean

N

N

N

N

Gibt an, ob die Person in der Organisation gesperrt ist.

employeeId

String

N

J

J

J

Die Personalnummer der Person.

employeeType

String

N

J

J

J

Der Mitarbeitertyp der Person, z. B. „FTE“ (Full-Time Employee, Vollzeitmitarbeiter), „Intern“ (Praktikant) oder „Temp“ (Zeitarbeiter).

employmentStatus

String

N

N

N

N

Der Beschäftigungsstatus der Person.

availabilityStatus

String

N

N

N

N

Der Verfügbarkeitsstatus der Person, z. B. „OOO“ (Abwesend), „WFH“ (Work From Home, Arbeitet von zu Hause aus) oder „In Meeting“ (In einer Besprechung).

creationDate

Datum/Uhrzeit

N

N

N

N

Das Erstellungsdatum der Person im Quellsystem.

modifiedDate

Datum/Uhrzeit

N

N

N

N

Das Datum der letzten Änderung der Person im Quellsystem.

deletionDate

Datum/Uhrzeit

N

N

N

N

Das Löschdatum der Person im Quellsystem.

hireDate

Datum/Uhrzeit

N

J

J

N

Das Datum, an dem die Person eingestellt wurde.

gender.addressMeAs

String

N

J

J

J

Das bevorzugte Pronomen der Person, z. B. „er/ihm“, „sie/ihr“ oder „sie/ihnen“.

gender.type

String

N

J

J

J

Das Geschlecht der Person, z. B. „männlich“, „weiblich“ oder „divers“.

displayPhoto.url

String

N

J

J

J

Die URL des Fotos.

displayPhoto.imageBinary

String

N

J

J

J

Der Base64-codierte String des Bildbinärs des Fotos.

displayPhoto.format

String

N

J

J

J

Das Format des Bildbinärs, z. B. „png“.

addresses.country

String

J

J

J

J

Das Land der zugehörigen Adresse, z. B. „USA“.

addresses.countryCode

String

J

N

N

N

Der Ländercode der zugehörigen Adresse, z. B. „US“.

addresses.locality

String

J

J

J

J

Der Ort der zugehörigen Adresse, z. B. „Mountain View“.

addresses.poBox

String

J

N

N

N

Das Postfach der zugehörigen Adresse, z. B. „Postfach 123“.

addresses.postalCode

String

J

N

N

N

Die Postleitzahl der zugehörigen Adresse, z. B. „94045“.

addresses.region

String

J

N

N

N

Die Region der zugehörigen Adresse, z. B. „CA“.

addresses.streetAddress

String

J

J

J

J

Die zugehörige Adresse, z. B. „1800 Amphibious Blvd.“

addresses.type

String

J

N

N

N

Der Typ der zugehörigen Adresse, z. B. „Privat“, „Arbeit“ oder „Andere“.

location.value

String

N

J

J

J

Der Standort des Arbeitsplatzes der Person, z. B. „London“.

location.buildingId

String

N

J

J

J

Die Gebäude-ID des Arbeitsplatzes der Person, z. B. „London“.

location.deskCode

String

N

J

J

J

Der Bürocode des Arbeitsplatzes der Person, z. B. „5C1C“.

location.floorName

String

N

J

J

J

Die Bezeichnung des Standorts des Arbeitsplatzes der Person, z. B. „5. Etage“.

location.floorSection

String

N

J

J

J

Der Etagenabschnitt des Standorts, z. B. „Abschnitt C“.

location.type

String

N

N

N

N

Der Typ des Standorts, z. B. „Schreibtisch“ oder „Gebäude“.

organizations.department

String

J

J

J

J

Die Abteilung der Organisation, z. B. „Engineering“.

organizations.description

String

J

N

N

N

Die Beschreibung der Organisation.

organizations.jobTitle

String

J

J

J

J

Die Berufsbezeichnung der Person, z. B. „Softwareentwickler“.

organizations.location

String

J

J

J

J

Der Standort der Organisation, z. B. „London“.

organizations.name

String

J

J

J

J

Der Name der Organisation

organizations.symbol

String

J

N

N

N

Das Tickersymbol der Organisation.

organizations.costCenter

String

J

J

J

J

Die Kostenstelle der Organisation, z. B. „75B“.

organizations.type

String

J

N

N

N

Der Typ der Organisation, z. B. „Arbeit“ oder „Sonstiges“.

organizations.projects.name

String

J

J

J

J

Der Name des der Person zugewiesenen Projekts, z. B. „ML Ops“.

organizations.projects.description

String

J

N

N

N

Die Beschreibung des der Person zugewiesenen Projekts, z. B. „Die weltweit beste ML-Infrastruktur entwickeln“.

organizations.projects.role

String

J

N

N

N

Die Rolle der Person im Projekt, z. B. „Leitung“.

managers.personId

String

J

J

J

J

Die Personen-ID der aktuellen Führungskräfte der Person, beginnend mit der direkt übergeordneten Person bis zur höchsten Führungskraft.

managers.email

String

J

J

J

J

Die E-Mail-Adresse aller Manager in der aktuellen Managementkette der Person, beginnend mit dem direkt übergeordneten Manager bis zum höchsten Manager.

dottedLineReports.personId

String

J

N

N

N

Die Dotted-Line-Berichte der Person (personId)

dottedLineReports.email

String

J

N

N

N

Die Dotted-Line-Berichte der Person (email)

topCoworkers.personId

String

J

N

N

N

Die Mitarbeiter der Person (personId).

topCoworkers.affinityScore

Zahl

J

N

N

N

Der Affinitätsfaktor der Person im Verhältnis zu Kollegen (wird für das Ranking verwendet).

admins.personId

String

J

N

N

N

Die zugewiesenen Administratoren der Person (personId)

admins.email

String

J

N

N

N

Die zugewiesenen Administratoren der Person (email)

websites.type

String

J

N

N

N

Der Website-Typ der Person, z. B. „Arbeit“, „Blog“ oder „Sonstiges“.

websites.value

String

J

N

N

N

Der Typ der Website, z. B. „https://example-pet-store.com“.

directManager.personId

String

N

J

J

J

Die Personen-ID der direkten Führungskraft der Person.

Beispiel-Payload für BigQuery

INSERT INTO `playground-koyel.ibank_ccai_uat.people_connector_3` (id, structData)
WITH records_to_insert AS (
  SELECT [
    -- Record 1: jdoe
    STRUCT('jdoe' as id, STRUCT(
        "jdoe" AS personId,
        STRUCT("Doe","Jane","Jane Doe","jdoe") AS name,
        [STRUCT("work","jdoe@example.net")] AS emails,
        [STRUCT("personal","9131568042")] AS phoneNumbers,
        false AS suspended,
        "13" AS employeeId,
        CAST(NULL AS STRING) as employeeType,
        CAST(NULL AS STRING) as employmentStatus,
        "focus" AS availabilityStatus,
        CAST(NULL AS DATETIME) AS creationDate,
        CAST(NULL AS DATETIME) AS modifiedDate,
        CAST(NULL AS DATETIME) AS deletionDate,
        CAST(NULL AS DATETIME) AS hireDate,
        STRUCT("Male","Male") AS gender,
        STRUCT(CAST(NULL AS STRING) AS url, CAST(NULL AS STRING) AS imageBinary, "png" as format) AS displayPhoto,
        [STRUCT("India","IN","Bangalore",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))] AS addresses,
        STRUCT("Bangalore","IN-LOCATION-01",CAST(NULL AS STRING),"7",CAST(NULL AS STRING),CAST(NULL AS STRING)) AS location,
        [STRUCT("Engineering","Our mission is to help organizations be more productive by making contextually relevant information and collaborators accessible at the right time","Software Engineer","Bangalore","Intranet search",CAST(NULL AS STRING),"80997GX000",CAST(NULL AS STRING),[STRUCT("People Search",CAST(NULL AS STRING),"Individual Contributor")])] AS organizations,
        [STRUCT("dwilson",CAST(NULL AS STRING)),STRUCT("smiller",CAST(NULL AS STRING)),STRUCT("jmartinez",CAST(NULL AS STRING))] AS managers,
        CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>) AS dottedLineReports,
        CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>) AS topCoworkers,
        CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>) AS admins,
        [STRUCT("personal","https://jdoe.myownpersonaldomain.com")] AS websites,
        STRUCT("dwilson") AS directManager
    ) AS structData),

    -- Record 2: psmith
    STRUCT('psmith' as id, STRUCT(
        "psmith",
        STRUCT("Smith","Peter","Peter Smith","psmith"),
        [STRUCT("work","psmith@example.net")],
        [STRUCT("personal","abc")],
        false, "1249989", CAST(NULL AS STRING), CAST(NULL AS STRING), "focus", CAST(NULL AS DATETIME), CAST(NULL AS DATETIME), CAST(NULL AS DATETIME), CAST(NULL AS DATETIME),
        STRUCT("Male","Male"),
        CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>),
        [STRUCT("India","IN","Bangalore",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))],
        STRUCT("Bangalore","IN-LOCATION-01",CAST(NULL AS STRING),"7",CAST(NULL AS STRING),CAST(NULL AS STRING)),
        [STRUCT("Engineering","Our mission is to help organizations be more productive by making contextually relevant information and collaborators accessible at the right time","Software Engineer","Bangalore","Intranet search",CAST(NULL AS STRING),"80997GX000",CAST(NULL AS STRING),[STRUCT("ACL",CAST(NULL AS STRING),"Individual Contributor")])],
        [STRUCT("dwilson",CAST(NULL AS STRING)),STRUCT("smiller",CAST(NULL AS STRING)),STRUCT("jmartinez",CAST(NULL AS STRING))],
        CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>), CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>), CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),
        CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),
        STRUCT("dwilson")
    ) AS structData),

    -- Record 3: mgarcia
    STRUCT('mgarcia' as id, STRUCT(
        "mgarcia",
        STRUCT("Garcia","Maria","Maria Garcia","mgarcia"),
        [STRUCT("work","mgarcia@example.net")],
        [STRUCT("personal","abc")],
        false, "1204052", CAST(NULL AS STRING), CAST(NULL AS STRING), "focus", CAST(NULL AS DATETIME), CAST(NULL AS DATETIME), CAST(NULL AS DATETIME), CAST(NULL AS DATETIME),
        STRUCT("Female","Female"),
        CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>),
        [STRUCT("India","IN","Bangalore",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))],
        STRUCT("Bangalore","IN-LOCATION-01",CAST(NULL AS STRING),"7",CAST(NULL AS STRING),CAST(NULL AS STRING)),
        [STRUCT("Engineering","Our mission is to help organizations be more productive by making contextually relevant information and collaborators accessible at the right time","Software Engineer","Bangalore","Intranet search",CAST(NULL AS STRING),"80997GX000",CAST(NULL AS STRING),[STRUCT("People Search",CAST(NULL AS STRING),"Individual Contributor")]), STRUCT("gBadminton","To organize our team's badminton community and make the sport accessible to all.","Organizer","Bangalore","OneBlr",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS ARRAY<STRUCT<name STRING, description STRING, role STRING>>))],
        [STRUCT("dwilson",CAST(NULL AS STRING)),STRUCT("smiller",CAST(NULL AS STRING)),STRUCT("jmartinez",CAST(NULL AS STRING))],
        CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>), CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>), CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),
        [STRUCT("personal","https://mgarcia.myownpersonaldomain.com")],
        STRUCT("dwilson")
    ) AS structData),

    -- Other records follow the same pattern...
    STRUCT('dwilson' as id, STRUCT("dwilson", STRUCT("Wilson","David","David Wilson","dwilson"),[STRUCT("work","dwilson@example.net")],[STRUCT("personal","abc")],false,"14",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Male","Male"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("India","IN","Bangalore",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Bangalore","IN-LOCATION-01",CAST(NULL AS STRING),"7",CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Engineering","Our mission is to help organizations be more productive by making contextually relevant information and collaborators accessible at the right time","Engineering Manager","Bangalore","Intranet search",CAST(NULL AS STRING),"80997GX000",CAST(NULL AS STRING),[STRUCT("Connectors",CAST(NULL AS STRING),"Engineering Manager")])],[STRUCT("smiller",CAST(NULL AS STRING)),STRUCT("jmartinez",CAST(NULL AS STRING))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),STRUCT("smiller")) AS structData),
    STRUCT('ejohnson' as id, STRUCT("ejohnson", STRUCT("Johnson","Emily","Emily Johnson","ejohnson"),[STRUCT("work","ejohnson@example.net")],[STRUCT("personal","abc")],false,"652365",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Male","Male"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("India","IN","Bangalore",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Bangalore","IN-LOCATION-01",CAST(NULL AS STRING),"7",CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Engineering","Our mission is to help organizations be more productive by making contextually relevant information and collaborators accessible at the right time","Senior Software Engineer","Bangalore","Intranet search",CAST(NULL AS STRING),"80997GX000",CAST(NULL AS STRING),[STRUCT("BAP Connector Integration",CAST(NULL AS STRING),"Team Lead")])],[STRUCT("smiller",CAST(NULL AS STRING)),STRUCT("jmartinez",CAST(NULL AS STRING))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),STRUCT("smiller")) AS structData),
    STRUCT('mbrown' as id, STRUCT("mbrown", STRUCT("Brown","Michael","Michael Brown","mbrown"),[STRUCT("work","mbrown@example.net")],[STRUCT("personal","abc")],false,"1007126",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Female","Female"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("India","IN","Bangalore",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Bangalore","IN-LOCATION-01",CAST(NULL AS STRING),"7",CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Engineering","Our mission is to help organizations be more productive by making contextually relevant information and collaborators accessible at the right time","Software Engineer","Bangalore","Intranet search",CAST(NULL AS STRING),"80997GX000",CAST(NULL AS STRING),[STRUCT("BAP Connector Integration",CAST(NULL AS STRING),"Individual Contributor")])],[STRUCT("smiller",CAST(NULL AS STRING)),STRUCT("jmartinez",CAST(NULL AS STRING))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),STRUCT("smiller")) AS structData),
    STRUCT('smiller' as id, STRUCT("smiller", STRUCT("Miller","Sarah","Sarah Miller","smiller"),[STRUCT("work","smiller@example.net")],[STRUCT("personal","abc")],false,"15",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Male","Male"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("India","IN","Bangalore",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Bangalore","IN-LOCATION-01",CAST(NULL AS STRING),"7",CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Engineering","Our mission is to help organizations be more productive by making contextually relevant information and collaborators accessible at the right time","Senior Engineering Manager","Bangalore","Intranet search",CAST(NULL AS STRING),"80997GX000",CAST(NULL AS STRING),[STRUCT("Intranet Search",CAST(NULL AS STRING),"Senior Engineering Manager")])],[STRUCT("jmartinez",CAST(NULL AS STRING))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),STRUCT("jmartinez")) AS structData),
    STRUCT('clee' as id, STRUCT("clee", STRUCT("Lee","Chris","Chris Lee","clee"),[STRUCT("work","clee@example.net")],[STRUCT("personal","abc")],false,"717389",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Female","Female"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("US","US","Kirkland",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Kirkland","US-KIR-6THC",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Engineering","Empower every GCP customer to transform themselves through intelligence from their data.","Software Engineer","Kirkland","Vertex AI Search",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS ARRAY<STRUCT<name STRING, description STRING, role STRING>>))],[STRUCT("jmartinez",CAST(NULL AS STRING))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),STRUCT("jmartinez")) AS structData),
    STRUCT('jmartinez' as id, STRUCT("jmartinez", STRUCT("Martinez","Jessica","Jessica Martinez","jmartinez"),[STRUCT("work","jmartinez@example.net")],[STRUCT("personal","abc")],false,"153035",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Male","Male"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("United States of America","US","Sunnyvale",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Sunnyvale","US-SVL-MP2",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Engineering","Empower every GCP customer to transform themselves through intelligence from their data.","Engineering Director","Sunnyvale","Vertex AI Search",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS ARRAY<STRUCT<name STRING, description STRING, role STRING>>))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),CAST(NULL AS STRUCT<personId STRING>)) AS structData),
    STRUCT('dtaylor' as id, STRUCT("dtaylor", STRUCT("Taylor","Daniel","Daniel Taylor","dtaylor"),[STRUCT("work","dtaylor@example.net")],[STRUCT("personal","abc")],false,"950380",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Female","Female"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("United States of America","US","Sunnyvale",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Sunnyvale","US-SVL-MP5",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Engineering","Empower every GCP customer to transform themselves through intelligence from their data.","Product Manager","Sunnyvale","Vertex AI Search",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS ARRAY<STRUCT<name STRING, description STRING, role STRING>>))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),CAST(NULL AS STRUCT<personId STRING>)) AS structData),
    STRUCT('oanderson' as id, STRUCT("oanderson", STRUCT("Anderson","Olivia","Olivia Anderson","oanderson"),[STRUCT("work","oanderson@example.net")],[STRUCT("personal","abc")],false,"103388",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Male","Male"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("United States of America","US","Remote",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Remote","US-REMOTE-MTV",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Engineering","Keep developers happy with their source code tools and services.","Git Maintainer",CAST(NULL AS STRING),"Developer Services",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS ARRAY<STRUCT<name STRING, description STRING, role STRING>>))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),CAST(NULL AS STRUCT<personId STRING>)) AS structData),
    STRUCT('mthomas' as id, STRUCT("mthomas", STRUCT("Thomas","Matthew","Matthew Thomas","mthomas"),[STRUCT("work","mthomas@example.net")],[STRUCT("personal","abc")],false,"363045",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Female","Female"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("United States of America","US","Mountain View",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Remote","US-MTV-40",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Finance","Getting more ambitious things done","CIO",CAST(NULL AS STRING),"Alphabet",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS ARRAY<STRUCT<name STRING, description STRING, role STRING>>))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),CAST(NULL AS STRUCT<personId STRING>)) AS structData),
    STRUCT('swhite' as id, STRUCT("swhite", STRUCT("White","Sophia","Sophia White","swhite"),[STRUCT("work","swhite@example.net")],[STRUCT("personal","abc")],false,"938578",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Male","Male"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("India","IN","Bangalore",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Bangalore","IN-LOCATION-01",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Customer","Successful Strategic Customer in the Cloud!","Strategic Cloud Engineer",CAST(NULL AS STRING),"Cloud Professional Services Organization (PSO)",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS ARRAY<STRUCT<name STRING, description STRING, role STRING>>))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),CAST(NULL AS STRUCT<personId STRING>)) AS structData),
    STRUCT('jharris' as id, STRUCT("jharris", STRUCT("Harris","James","James Harris","jharris"),[STRUCT("work","jharris@example.net")],[STRUCT("personal","abc")],false,"723457",CAST(NULL AS STRING),CAST(NULL AS STRING),"focus",CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),CAST(NULL AS DATETIME),STRUCT("Male","Male"),CAST(NULL AS STRUCT<url STRING, imageBinary STRING, format STRING>), [STRUCT("India","IN","Bangalore",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING))], STRUCT("Bangalore","IN-LOCATION-01",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING)),[STRUCT("Recruiting",CAST(NULL AS STRING),"Sr Recruiter",CAST(NULL AS STRING),"Hiring Committee",CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS STRING),CAST(NULL AS ARRAY<STRUCT<name STRING, description STRING, role STRING>>))],CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, affinityScore NUMERIC>>),CAST(NULL AS ARRAY<STRUCT<personId STRING, email STRING>>),CAST(NULL AS ARRAY<STRUCT<type STRING, value STRING>>),CAST(NULL AS STRUCT<personId STRING>)) AS structData)
  ] AS all_records
)
SELECT
  record.id,
  record.structData
FROM records_to_insert, UNNEST(all_records) as record;

Beispiel-Nutzlast für Cloud Storage

{"id":"person1","structData":{"working_from_home": "false", "personId":"person1","name":{"familyName":"Kumar","givenName":"person1","displayName":"person1 Kumar","username":"person1"},"emails":[{"type":"work","value":"person1@example.net"}],"phoneNumbers":[{"type":"personal","value":"1234"}],"suspended":false,"employeeId":"13","availabilityStatus":"focus","gender":{"addressMeAs":"Male","type":"Male"},"addresses":[{"country":"India","countryCode":"IN","locality":"Bangalore"}],"location":{"value":"Bangalore","buildingId":"IN-LOCATION-01","floorName":"7"},"organizations":[{"department":"Engineering","description":"Our mission is to help organizations be more productive by making contextually relevant information and collaborators accessible at the right time","jobTitle":"Software Engineer","location":"Bangalore","name":"Intranet search","projects":[{"name":"People Search","role":"Individual Contributor"}],"costCenter":"123"}],"directManager":{"personId":"manager1"},"managers":[{"personId":"manager1"},{"personId":"manager2"},{"personId":"manager3"}],"websites":[{"type":"personal","value":"https://person1.myownpersonaldomain.com"}],"displayPhoto":{"imageBinary":{"format":"image/png","data":"binary_content"}}}}