Importar dados de pessoas de uma fonte personalizada

Em vez de sincronizar dados de pessoas do Google Workspace, você pode importar dados de pessoas do Cloud Storage ou do BigQuery. Nesta página, descrevemos como criar um conector de pesquisa de pessoas e importar dados personalizados sobre pessoas de um bucket do Cloud Storage ou uma tabela do BigQuery.

Antes de começar

Ingerir dados de pessoas retirados de uma fonte personalizada

Para usar o Google Cloud console e ingerir dados de pessoas, siga estas etapas:

Console

  1. No console Google Cloud , acesse a página Gemini Enterprise.

    Gemini Enterprise

  2. Acesse a página Repositório de dados.

  3. Clique em Criar repositório de dados.

    Mostra o botão "Criar repositório de dados".
    Crie um repositório de dados.

  4. Na página Selecionar uma fonte de dados, na seção Fontes do Cloud, selecione Pessoas via conector personalizado.

    Selecione uma fonte de dados.
    Selecione uma fonte de dados.

  5. Importe os dados de pessoas:

    • Importar depois: se você ainda não importou os dados de pessoas para o Cloud SQL ou o BigQuery, selecione Importar depois.

    • BigQuery: importe dados de uma tabela do BigQuery.

    • Cloud Storage: importe dados de uma tabela do Cloud Storage.

    Opções para importar dados de pessoas, incluindo importar depois, do BigQuery ou do Cloud Storage.
    Importar dados de pessoas.

  6. Clique em Continuar.

  7. Escolha uma região para o repositório de dados.

  8. Insira um nome para o repositório de dados.

  9. Opcional: se os dados precisarem de controle de acesso, selecione Este repositório de dados contém informações de controle de acesso. Para mais informações, consulte Controle de acesso à fonte de dados.

  10. Clique em Criar.

    Configure e crie o conector de dados.
    Configure o conector de dados.

  11. Para verificar o status da ingestão, acesse a página Repositórios de dados e clique no nome do repositório de dados para conferir os detalhes na página Dados. Quando a coluna de status na guia Atividade mudar de Em andamento para Importação concluída, a ingestão será concluída.

    Dependendo do tamanho dos dados, a ingestão pode levar de vários minutos a várias horas.

Personalizar resultados da pesquisa

Para incluir ou excluir informações pessoais dos resultados da pesquisa, siga estas etapas:

  1. No repositório de dados, clique na guia Entidade e em Usuários.

  2. Na página Usuários, clique na guia Esquema.

  3. Clique em Editar.

  4. Marque ou desmarque os atributos, como país, para especificar se eles são recuperáveis, pesquisáveis e indexáveis. Para ser pesquisável, o atributo precisa ser marcado como Recuperável, Indexável e Pesquisável.

  5. Clique em Salvar.

Visualizar os resultados da pesquisa de pessoas

  1. Se você já tiver conectado o repositório de dados a um app, clique em Apps e no nome do app.

  2. Clique em Visualizar.

  3. Pesquise pessoas na sua organização usando a barra de pesquisa. Os resultados da pesquisa mostram detalhes como nome, cargo, e-mail e foto do perfil.

    Para abrir o app da Web do Gemini Enterprise em um navegador, consulte Acessar o app da Web de pesquisa.

    Visualize os resultados da pesquisa.
    Visualize os resultados da pesquisa.

    Se você tiver tornado os atributos personalizados pesquisáveis, poderá usá-los em pesquisas, mas eles não serão retornados em perfis. Por exemplo, se team-position for um atributo personalizado e estiver marcado como recuperável, indexável e pesquisável no esquema, será possível pesquisar pessoas com uma posição específica na equipe, como "líder técnico". Você vai receber uma lista de pessoas que têm essa posição, mas a saída não vai incluir as palavras "líder técnico".

Visualizar o app da Web de pesquisa

Para acessar o app da Web do Gemini Enterprise:

  1. No menu de navegação, clique em Integração.

  2. Verifique se a opção Ativar o app da Web está ativada.

  3. Na seção O link para o app da Web, clique em Copiar e abra o link no navegador.

Exemplo de campos de esquema definidos pela organização para dados de pessoas

O conjunto de dados de cada pessoa precisa ser formatado de acordo com o seguinte esquema. No exemplo de um arquivo importado do Cloud Storage, cada linha do arquivo JSONL representa uma pessoa. Um arquivo válido, mas mínimo, pode ter esta aparência:

{"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"}}}

Nome do campo

Tipo

Reproduzível

Indexável

Recuperável

Pesquisável

Descrição

personId

string

N

S

Y

S

O ID exclusivo da pessoa. Campo obrigatório. O valor do campo personId precisa ser igual ao id do documento.

name.familyName

string

N

S

Y

S

O sobrenome da pessoa.

name.givenName

string

N

S

Y

S

O nome da pessoa.

name.displayName

string

N

S

Y

S

O nome de exibição da pessoa.

name.username

string

N

S

Y

S

O nome de usuário da pessoa.

emails.type

string

S

N

N

N

O tipo da conta de e-mail, como "trabalho", "casa", "outro" ou "personalizado".

emails.value

string

S

Y

Y

S

O endereço de e-mail da pessoa, como "acruz@exemplo.net".

phoneNumbers.type

string

S

Y

Y

S

O tipo de número de telefone, como "escritório", "celular" ou "outro".

phoneNumbers.value

string

S

Y

Y

S

O número de telefone da pessoa, como "+1 800-555-1212".

suspended

booleano

N

N

N

N

Se a pessoa está suspensa na organização.

employeeId

string

N

S

Y

S

O ID do funcionário da pessoa.

employeeType

string

N

S

Y

S

O tipo de funcionário da pessoa, como "FTE", "Intern" ou "Temp".

employmentStatus

string

N

N

N

N

A situação de emprego da pessoa.

availabilityStatus

string

N

N

N

N

O status de disponibilidade da pessoa, como "Fora do escritório", "Trabalhando em casa" ou "Em reunião".

creationDate

datetime

N

N

N

N

A data de criação da pessoa no sistema de origem.

modifiedDate

datetime

N

N

N

N

A data da última modificação da pessoa no sistema de origem.

deletionDate

datetime

N

N

N

N

A data de exclusão da pessoa no sistema de origem.

hireDate

datetime

N

S

S

N

A data em que a pessoa foi contratada.

gender.addressMeAs

string

N

S

Y

S

O pronome preferido da pessoa, como "ele/dele", "ela/dela" ou "elu/delu".

gender.type

string

N

S

Y

S

O gênero da pessoa, como "masculino", "feminino" ou "outro".

displayPhoto.url

string

N

S

Y

S

O URL da foto.

displayPhoto.imageBinary

string

N

S

Y

S

A string codificada em Base64 do binário da imagem da foto.

displayPhoto.format

string

N

S

Y

S

O formato do binário da imagem, como "png".

addresses.country

string

S

Y

Y

S

O país do endereço associado, como "Estados Unidos".

addresses.countryCode

string

S

N

N

N

O código do país do endereço associado, como "US".

addresses.locality

string

S

Y

Y

S

A localidade do endereço associado, como "Mountain View".

addresses.poBox

string

S

N

N

N

A caixa postal do endereço associado, como "PO Box 123".

addresses.postalCode

string

S

N

N

N

O código postal do endereço associado, como "94045".

addresses.region

string

S

N

N

N

A região do endereço associado, como "CA".

addresses.streetAddress

string

S

Y

Y

S

O endereço associado, como "1800 Amphibious Blvd.".

addresses.type

string

S

N

N

N

O tipo de endereço associado, como "casa", "trabalho" ou "outro".

location.value

string

N

S

Y

S

O local do escritório da pessoa, como "Londres".

location.buildingId

string

N

S

Y

S

O ID do prédio do local de trabalho da pessoa, como "Londres".

location.deskCode

string

N

S

Y

S

O código da mesa do local de trabalho da pessoa, como "5C1C".

location.floorName

string

N

S

Y

S

O nome do andar do escritório da pessoa, como "5º andar".

location.floorSection

string

N

S

Y

S

A seção do local, como "Seção C".

location.type

string

N

N

N

N

O tipo de local, como "mesa" ou "edifício".

organizations.department

string

S

Y

Y

S

O departamento da organização, como "Engenharia".

organizations.description

string

S

N

N

N

A descrição da organização.

organizations.jobTitle

string

S

Y

Y

S

O cargo da pessoa, por exemplo, "Engenheiro de software".

organizations.location

string

S

Y

Y

S

O local da organização, como "Londres".

organizations.name

string

S

Y

Y

S

É o nome da organização.

organizations.symbol

string

S

N

N

N

O ticker da organização.

organizations.costCenter

string

S

Y

Y

S

O centro de custo da organização, como "75B".

organizations.type

string

S

N

N

N

O tipo de organização, como "trabalho" ou "outro".

organizations.projects.name

string

S

Y

Y

S

O nome do projeto atribuído à pessoa, como "ML Ops".

organizations.projects.description

string

S

N

N

N

A descrição do projeto atribuído à pessoa, como: "Criar a melhor infraestrutura de ML do mundo".

organizations.projects.role

string

S

N

N

N

A função da pessoa no projeto, como "Líder".

managers.personId

string

S

Y

Y

S

O personId da cadeia de gestão atual da pessoa, começando pelo gerente imediato até o gerente de nível mais alto.

managers.email

string

S

Y

Y

S

O endereço de e-mail de cada gerente na cadeia de gestão atual da pessoa, começando pelo gerente imediato até o gerente de nível mais alto.

dottedLineReports.personId

string

S

N

N

N

Os relatórios de linha pontilhada da pessoa (personId).

dottedLineReports.email

string

S

N

N

N

Os relatórios de linha pontilhada da pessoa (email).

topCoworkers.personId

string

S

N

N

N

Os colegas de trabalho da pessoa (personId)

topCoworkers.affinityScore

número

S

N

N

N

A pontuação de afinidade da pessoa em relação aos colegas de trabalho (usada no ranking).

admins.personId

string

S

N

N

N

Administradores atribuídos à pessoa (personId).

admins.email

string

S

N

N

N

Administradores atribuídos à pessoa (email).

websites.type

string

S

N

N

N

Tipo de site da pessoa, como "trabalho", "blog" ou "outro".

websites.value

string

S

N

N

N

O tipo do site, como "https://example-pet-store.com".

directManager.personId

string

N

S

Y

S

O personId do gerente direto/imediato da pessoa.

Exemplo de payload para o 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;

Exemplo de payload para o 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"}}}}