Personenbezogene Daten aus einer benutzerdefinierten Quelle importieren

Sie können personenbezogene Daten nicht nur aus Google Workspace synchronisieren, sondern auch aus Cloud Storage oder BigQuery importieren. Auf dieser Seite wird beschrieben, wie Sie einen Connector für die Suche personenbezogener Daten erstellen und benutzerdefinierte Personendaten aus einem Cloud Storage-Bucket oder einer BigQuery-Tabelle importieren.

Vorbereitung

Personenbezogene Daten aus einer benutzerdefinierten Quelle aufnehmen

So nehmen Sie personenbezogene Daten über die Google Cloud Console auf:

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.

    Button zum Erstellen eines Datenspeichers
    Neuen Datenspeicher erstellen.

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

    Datenquelle auswählen
    Datenquelle auswählen.

  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 werden aus einer BigQuery-Tabelle hochgeladen.

    • Cloud Storage: Daten werden aus einer Cloud Storage-Tabelle hochgeladen.

    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. Sie können den Status Ihrer Datenerfassung überprüfen. Rufen Sie dazu die Seite Datenspeicher auf und klicken Sie auf den Namen des Datenspeichers. Dadurch werden die Details auf der Seite Daten angezeigt. Wenn sich die Statusspalte auf dem Tab Aktivität von In Bearbeitung zu Import abgeschlossen ändert, ist die Aufnahme abgeschlossen.

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

Suchergebnisse anpassen

So schließen Sie personenbezogene Daten in die Suchergebnisse ein oder davon 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, suchbar und indexierbar sein sollen. Damit ein Attribut suchbar ist, muss es als Abrufbar, Indexierbar und Suchbar gekennzeichnet sein.

  5. Klicken Sie auf Speichern.

Vorschau der Ergebnisse der Personensuche

  1. Wenn Sie den Datenspeicher bereits mit einer Anwendung erbunden haben, klicken Sie auf Anwendungen und dann auf den Namen Ihrer Anwendung.

  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-Webanwendung in einem Browser finden Sie unter Webbasierte Suchanwendung aufrufen.

    Suchergebnisse in der Vorschau ansehen.
    Suchergebnisse in der Vorschau ansehen
    :

    Wenn Sie benutzerdefinierte Attribute als suchbar markiert haben, können Sie die Attribute bei der Suche verwenden. Die Attribute selbst werden aber nicht in Profilen zurückgegeben. Beispiel: team-position ist ein benutzerdefiniertes Attribut und im Schema als abrufbar, indexierbar und suchbar markiert. Dann 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-Webanwendung auf:

  1. Klicken Sie im Navigationsmenü auf Integration.

  2. Die Option Webanwendung 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 reduzierte 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 der 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

Die Art des Telefonanschlusses, 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

Boolesch

N

N

N

N

Gibt an, ob die Person in der Organisation suspendiert 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“ (Homeoffice), oder „In Meeting“ (In 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 der Bilddatei des Fotos.

displayPhoto.format

String

N

J

J

J

Das Format der Bilddatei, 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 Büroetage am Arbeitsplatz der Person, z. B. „5. Etage“.

location.floorSection

String

N

J

J

J

Der Bereich der Etage des Arbeitsplatzes, z. B. „Bereich C“.

location.type

String

N

N

N

N

Die Art des Standorts, z. B. „Arbeitsplatz“ 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 Börsenkürzel der Organisation.

organizations.costCenter

String

J

J

J

J

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

organizations.type

String

J

N

N

N

Die Art 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. „Entwicklung der weltweit besten ML-Infrastruktur“.

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 Managementkette der Person, beginnend mit dem direkt übergeordneten Manager bis zum höchsten Manager.

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 sekundären Berichtsbeziehungen der Person (personId)

dottedLineReports.email

String

J

N

N

N

Die sekundären Berichtsbeziehungen der Person (email)

topCoworkers.personId

String

J

N

N

N

Die Kollegen der Person (personId).

topCoworkers.affinityScore

Nummer

J

N

N

N

Der Affinitätswert der Person im Verhältnis zu ihren Kollegen (wird für die Rangliste verwendet).

admins.personId

String

J

N

N

N

Die der Person zugewiesenen Administratoren (personId)

admins.email

String

J

N

N

N

Die der Person zugewiesenen Administratoren (email)

websites.type

String

J

N

N

N

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

websites.value

String

J

N

N

N

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

directManager.personId

String

N

J

J

J

Die Personen-ID des direkten Managers der Person.

Beispiel-Nutzlast 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"}}}}