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
- Ihre Personendaten müssen in einer BigQuery-Tabelle oder einem Cloud Storage-Bucket gespeichert sein.
- Ihre Daten müssen einem von Google vorgegebenen 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 verwenden Sie die Google Cloud Konsole zum Erfassen von personenbezogenen Daten:
Console
Rufen Sie in der Google Cloud Console die Seite Gemini Enterprise auf.
Rufen Sie die Seite Datenspeicher auf.
Klicken Sie auf
Datenspeicher erstellen.Erstellen Sie einen neuen Datenspeicher. 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. 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.
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 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:
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, durchsuchbar und indexierbar sind. Damit ein Attribut suchbar ist, muss es als Abrufbar, Indexierbar und Suchbar gekennzeichnet sein.
Klicken Sie auf Speichern.
Vorschau der Personensuchergebnisse ansehen
Wenn Sie den Datenspeicher bereits mit einer App verbunden haben, klicken Sie auf Apps und dann auf den Namen Ihrer App.
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-Web-App in einem Browser finden Sie unter Such-Web-App aufrufen.
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:
Klicken Sie im Navigationsmenü auf Integration.
Die Option Web-App 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 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 |
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 ( |
dottedLineReports.email |
String |
J |
N |
N |
N |
Die Dotted-Line-Berichte der Person ( |
topCoworkers.personId |
String |
J |
N |
N |
N |
Die Mitarbeiter der Person ( |
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 ( |
admins.email |
String |
J |
N |
N |
N |
Die zugewiesenen Administratoren der Person ( |
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"}}}}