Analisar dados multimodais no BigQuery
Este documento descreve os recursos do BigQuery que podem ser usados para criar e analisar dados multimodais. Esses recursos podem ser usados no BigQuery com o GoogleSQL e com o Python usando o BigQuery DataFrames.
Os recursos de dados multimodais do BigQuery permitem realizar as seguintes tarefas:
- Integrar dados não estruturados armazenados no Cloud Storage como outra coluna
ao lado de dados estruturados em tabelas padrão do BigQuery, representando dados não estruturados como
ObjectRefvalores. - Gerar anotações, embeddings e valores escalares de dados multimodais usando funções de IA generativa do BigQuery ML com modelos do Gemini.
- Gerar anotações, embeddings e valores escalares de dados multimodais por criar DataFrames multimodais em BigQuery DataFrames e usando bibliotecas Python.
Para conferir um tutorial detalhado que usa o Google Cloud console, consulte Analisar dados multimodais com SQL e Python.
Benefícios
Os recursos de dados multimodais do BigQuery oferecem os seguintes benefícios:
- Composabilidade: é 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 do produto. É possível usar funções SQL padrão para criar e atualizar colunas que contêm valoresObjectRef, e criar valoresObjectRefcomo a saída de uma ação de transformação em um objeto. - Adicionar várias partes de dados não estruturados em comandos de IA generativa:
adicione vários
ObjectRefvalores como entrada para funções de IA generativa. Por exemplo, é possível gerar embeddings de dados de imagem e texto da mesma tabela. Para a geração de texto e valores escalares, também é possível 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 do produto com base em imagens e atributos do produto. - Persistir a ordem de blocos: é possível dividir objetos em blocos e armazenar os blocos
como uma matriz de valores
ObjectRefem 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 valoresObjectRef, para que as imagens permaneçam na mesma ordem em que aparecem no vídeo original.
Valores ObjectRef
Um valor ObjectRef é um valor STRUCT que usa o
ObjectRef esquema.
É 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 usa 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 usará suas credenciais de 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 de produtos na mesma linha que 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: cria um valorObjectRefque contém metadados para um objeto do Cloud Storage.OBJ.FETCH_METADATA: busca metadados do Cloud Storage para um valorObjectRefparcialmente preenchido com valoresurieauthorizer.
Para mais informações, consulte Trabalhar com valores ObjectRef.
Valores ObjectRefRuntime
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 em valores ObjectRefRuntime expiram após no máximo 6 horas, embora seja possível configurar um tempo de expiração mais curto. Se você persistir valores ObjectRefRuntime em qualquer lugar como parte do fluxo de trabalho, atualize esses dados regularmente. Para persistir metadados de objetos, armazene
ObjectRef valores e use-os para gerar ObjectRefRuntime
valores quando necessário. Os valores ObjectRef não precisam ser atualizados, a menos que os objetos subjacentes no Cloud Storage sejam modificados.
Crie ObjectRefRuntime valores usando a
OBJ.GET_ACCESS_URL função.
Funções da IA generativa
Gere texto, embeddings e valores escalares com base na entrada ObjectRef ou
ObjectRefRuntime usando as seguintes funções de IA generativa com
modelos do Gemini:
AI.GENERATEAI.GENERATE_TEXTAI.GENERATE_TABLEAI.GENERATE_BOOLAI.GENERATE_DOUBLEAI.GENERATE_INTAI.GENERATE_EMBEDDINGAI.EMBEDAI.SIMILARITYAI.CLASSIFYAI.IFAI.SCORE
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
read_gbq método:
crie um DataFrame multimodal de uma tabela de objetos.
Para testar, consulte o tutorial DataFrames multimodais no GitHub.
Métodos de IA generativa
Use os seguintes métodos para realizar tarefas de IA generativa em dados multimodais:
predictmétodo daGeminiTextGeneratorclasse: gera texto com base em dados multimodais.predictmétodo daMultimodalEmbeddingGeneratorclasse: gera embeddings com base em dados multimodais.
Tabelas de objetos
Todas as novas
tabelas de objetos criadas têm uma coluna ref que contém um valor ObjectRef para o
objeto especificado. A conexão usada para criar a tabela de objetos é usada para preencher os valores authorizer na coluna ref. É possível usar a coluna ref para preencher e atualizar valores 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 os dados do Cloud Storage. A coluna
ref contém ObjectRef valores que podem ser usados para
analisar dados e metadados de objetos.
Limitações
As seguintes limitações 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
authorizerde um valorObjectRef, 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 valorObjectRefé executada. - Não é possível ter mais de 20 conexões de recursos do Google Cloud no projeto e na região em que a consulta acessa dados de objetos como valores
ObjectRef. - É possível fazer referência a valores
ObjectRefde no máximo cinco projetos além do projeto em que você executa a consulta.
Custos
Os seguintes custos são aplicáveis ao usar dados multimodais:
- O armazenamento de metadados de objetos como valores
ObjectRefem tabelas padrão contribui para o custo de armazenamento do BigQuery da tabela. - As consultas executadas em valores
ObjectRefgeram custos de computação do BigQuery. - Novos objetos criados a partir de transformações de objetos geram custos do Cloud Storage.
- Novos dados criados e persistidos no BigQuery geram custos de armazenamento do BigQuery.
- O uso de funções de IA generativa gera custos da Gemini Enterprise Agent Platform.
- O uso de UDFs do Python do BigQuery e de DataFrames multimodais e métodos de transformação de objetos no BigQuery DataFrames gera custos de UDFs do Python.
Para mais informações, consulte as seguintes páginas de preços:
- Preços do BigQuery
- Preços de UDFs do Python do BigQuery
- Preços da Agent Platform
- Preços do Cloud Storage
A seguir
- Especificar colunas
ObjectRefem esquemas de tabelas. - Analisar dados multimodais com SQL.
- Saiba mais sobre a IA generativa no BigQuery ML.
- Saiba mais sobre BigQuery DataFrames.