Analisar dados multimodais no BigQuery

Neste documento, descrevemos os recursos do BigQuery que podem ser usados para criar e analisar dados multimodais. Esses recursos podem ser usados no BigQuery com GoogleSQL e Python usando o BigQuery DataFrames.

Com os recursos de dados multimodais do BigQuery, é possível realizar as seguintes tarefas:

  • Integre dados não estruturados armazenados no Cloud Storage como outra coluna junto com dados estruturados em tabelas padrão do BigQuery representando dados não estruturados como valores ObjectRef.
  • Gere anotações, incorporações e valores escalares de dados multimodais usando as funções de IA generativa do BigQuery ML com modelos do Gemini.
  • Gere anotações, embeddings e valores escalares de dados multimodais criando DataFrames multimodais no BigQuery DataFrames e usando bibliotecas Python.

Para um tutorial detalhado que usa o console Cloud de Confiance , consulte Analisar dados multimodais com SQL e Python.

Vantagens

Os recursos de dados multimodais do BigQuery oferecem os seguintes benefícios:

  • Capacidade de composição: é possível armazenar e gerenciar dados estruturados e não estruturados na mesma linha de tabela padrão usando valores ObjectRef. Por exemplo, você pode armazenar imagens de um produto na mesma linha que o restante das informações dele. É possível usar funções SQL padrão para criar e atualizar colunas que contêm valores ObjectRef, além de criar valores ObjectRef como resultado de uma ação de transformação em um objeto.
  • Adicionar vários dados não estruturados em comandos da IA generativa: adicione vários valores ObjectRef como entrada para funções de IA generativa. Por exemplo, é possível gerar incorporações de dados de imagem e texto da mesma tabela. Para geração de texto e valores escalares, você também pode se referir a vários objetos no comando enviado a um modelo. Por exemplo, você pode criar um comando que peça ao modelo para gerar uma descrição de produto com base em imagens e atributos do produto.
  • Persistência da ordenação de partes: é possível dividir objetos em partes e armazená-las como uma matriz de valores ObjectRef em uma coluna de tabela padrão para manter a ordem. Por exemplo, é possível analisar imagens de um vídeo e armazená-las como uma matriz de valores ObjectRef para que elas permaneçam na mesma ordem em que aparecem no vídeo original.

ObjectRef valores

Um valor ObjectRef é um valor STRUCT que usa o esquema ObjectRef. É possível armazenar metadados de objetos do Cloud Storage e um autorizador associado em uma tabela padrão do BigQuery criando uma coluna STRUCT ou ARRAY<STRUCT> que use esse formato. O valor do autorizador identifica a conexão a recursos do Cloud que o BigQuery usa para acessar o objeto do Cloud Storage. Se você definir o autorizador como NULL, o BigQuery vai usar as credenciais do usuário final.

Use valores ObjectRef quando precisar integrar dados não estruturados a uma tabela padrão. Por exemplo, em uma tabela de produtos, é possível armazenar imagens na mesma linha com o restante das informações do produto adicionando uma coluna que contenha um valor ObjectRef.

Crie e atualize valores ObjectRef usando as seguintes funções do GoogleSQL:

  • OBJ.MAKE_REF: crie um valor ObjectRef que contenha metadados para um objeto do Cloud Storage.
  • OBJ.FETCH_METADATA: busca metadados do Cloud Storage para um valor ObjectRef que está parcialmente preenchido com valores uri e authorizer.
  • OBJ.LIST: retorna uma tabela de metadados e valores ObjectRef para arquivos armazenados no Cloud Storage.

Para mais informações, consulte Trabalhar com valores ObjectRef.

ObjectRefRuntime valores

Um valor ObjectRefRuntime é um valor JSON que usa o esquema ObjectRefRuntime. Um valor ObjectRefRuntime contém os metadados do objeto do Cloud Storage do valor ObjectRef usado para criá-lo, um autorizador associado e URLs de acesso. É possível usar os URLs de acesso para ler ou modificar o objeto no Cloud Storage.

Use valores ObjectRefRuntime para trabalhar com dados de objetos em fluxos de trabalho de análise e transformação. Os URLs de acesso nos valores ObjectRefRuntime expiram em até 6 horas, mas você pode configurar um prazo de validade menor. Se você persistir valores ObjectRefRuntime em qualquer lugar como parte do seu fluxo de trabalho, atualize esses dados regularmente. Para manter os metadados do objeto, armazene valores ObjectRef e use-os para gerar valores ObjectRefRuntime quando necessário. Os valores ObjectRef não precisam ser atualizados, a menos que os objetos subjacentes no Cloud Storage sejam modificados.

Crie valores ObjectRefRuntime usando a função OBJ.GET_ACCESS_URL.

Funções da IA generativa

Gere texto, embeddings e valores escalares com base na entrada ObjectRef usando as seguintes funções de IA generativa com modelos do Gemini:

Trabalhar com dados multimodais em Python

É possível analisar dados multimodais em Python usando classes e métodos do BigQuery DataFrames.

DataFrames multimodais

Crie um DataFrame multimodal que integre dados estruturados e não estruturados usando o método read_gbq: crie um DataFrame multimodal de uma tabela de objetos.

Para testar, consulte o tutorial sobre DataFrames multimodais no GitHub.

Métodos de IA generativa

Use os métodos a seguir para realizar tarefas de IA generativa em dados multimodais:

Tabelas de objetos

Todas as novas tabelas de objetos que você criar terão uma coluna ref que contém um valor ObjectRef para o objeto em questão. A conexão usada para criar a tabela de objetos é usada para preencher os valores authorizer na coluna ref. Use a coluna ref para preencher e atualizar os valores de ObjectRef em tabelas padrão.

Conjuntos de dados do Storage Insights

Um conjunto de dados do Storage Insights é um conjunto de dados vinculado do BigQuery que pode ser consultado para analisar e visualizar seus dados do Cloud Storage. A coluna ref contém valores ObjectRef que podem ser usados para analisar dados e metadados de objetos.

Limitações

As limitações a seguir se aplicam aos recursos de dados multimodais do BigQuery:

  • Se você não especificar explicitamente o nome do projeto que contém a conexão no campo authorizer de um valor ObjectRef, a conexão precisará existir no projeto que contém a tabela de objetos que a armazena ou no projeto em que a consulta que faz referência ao valor ObjectRef é executada.
  • Não é possível ter mais de 20 conexões de recursos do Cloud no projeto e na região em que a consulta acessa dados de objetos como valores ObjectRef.
  • É possível referenciar valores ObjectRef de no máximo cinco projetos além daquele em que você executa a consulta.

Preços

Os seguintes custos são incorridos quando você usa dados multimodais:

  • O armazenamento de metadados de objetos como valores ObjectRef em tabelas padrão contribui para o custo de armazenamento do BigQuery para a tabela.
  • As consultas executadas em valores ObjectRef geram custos de computação do BigQuery.
  • Os novos objetos criados com transformações de objetos geram custos do Cloud Storage.
  • Os novos dados que você cria e mantém no BigQuery geram custos de armazenamento do BigQuery.
  • Ao usar funções de IA generativa, você incorre em custos da Gemini Enterprise Agent Platform.
  • Ao usar UDFs em Python do BigQuery e DataFrames multimodais e métodos de transformação de objetos nos BigQuery DataFrames, você incorre em custos de UDFs em Python.
  • As funções OBJ, como OBJ.LIST e OBJ.GET_READ_URL, processam apenas metadados, não os bytes do arquivo. Você incorre em custos quando transmite a referência do objeto retornado para uma função de IA downstream que lê o conteúdo do arquivo, por exemplo, AI.GENERATE ou AI.IF.

Para mais informações, consulte as seguintes páginas de preços:

A seguir