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
- Ihre Personendaten müssen in einer BigQuery-Tabelle oder einem Cloud Storage-Bucket gespeichert sein.
- Ihre Daten müssen einem von Google angegebenen Schema entsprechen. Weitere Informationen zum Schema finden Sie unter Von Google angegebenes Schema für personenbezogene Daten.
Personenbezogene Daten aus einer benutzerdefinierten Quelle aufnehmen
So nehmen Sie personenbezogene Daten über die Google Cloud Console auf:
Console
Rufen Sie in der Google Cloud Console die Seite Gemini Enterprise auf.
Rufen Sie die Seite Datenspeicher auf.
Klicken Sie auf Datenspeicher erstellen.
Neuen Datenspeicher erstellen. Wählen Sie auf der Seite Datenquelle auswählen im Abschnitt Cloud-Quellen die Option Personen über benutzerdefinierten Connector aus.
Datenquelle auswählen. 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.
Personendaten importieren Klicken Sie auf Weiter.
Wählen Sie eine Region für Ihren Datenspeicher aus.
Geben Sie einen Namen für den Datenspeicher ein.
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.
Klicken Sie auf Erstellen.
Daten-Connector konfigurieren 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:
Klicken Sie in Ihrem Datenspeicher auf den Tab Entität und dann auf Nutzer.
Klicken Sie auf der Seite Nutzer auf den Tab Schema.
Klicken Sie auf Bearbeiten.
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.
Klicken Sie auf Speichern.
Vorschau der Ergebnisse der Personensuche
Wenn Sie den Datenspeicher bereits mit einer Anwendung erbunden haben, klicken Sie auf Anwendungen und dann auf den Namen Ihrer Anwendung.
Klicken Sie auf Vorschau.
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 :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-positionist 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:
Klicken Sie im Navigationsmenü auf Integration.
Die Option Webanwendung aktivieren muss aktiviert sein.
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 |
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 ( |
dottedLineReports.email |
String |
J |
N |
N |
N |
Die sekundären Berichtsbeziehungen der Person ( |
topCoworkers.personId |
String |
J |
N |
N |
N |
Die Kollegen der Person ( |
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 ( |
admins.email |
String |
J |
N |
N |
N |
Die der Person zugewiesenen Administratoren ( |
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"}}}}