Analisar dados multimodais no BigQuery
Este documento descreve os recursos do BigQuery que podem ser usados para analisar dados multimodais. Alguns recursos estão disponíveis no consoleGoogle Cloud e na ferramenta de linha de comando bq. Outros estão disponíveis usando DataFrames do BigQuery no Python. Você pode usar muitos desses recursos juntos para facilitar os fluxos de trabalho de análise e transformação de dados multimodais.
Os recursos de dados multimodais do BigQuery permitem realizar as seguintes tarefas:
- Integre dados não estruturados a tabelas padrão usando valores
ObjectRef
. - Use valores
ObjectRefRuntime
para trabalhar com dados não estruturados em fluxos de trabalho de análise e transformação. - Gerar texto, embeddings e valores escalares a partir de dados multimodais usando as funções de IA generativa do BigQuery ML com modelos do Gemini.
- Crie DataFrames multimodais no BigQuery DataFrames.
- Transforme imagens e divida arquivos PDF usando
os métodos
Series.BlobAccessor
do BigQuery DataFrames. - Gere texto e embeddings de dados multimodais usando os métodos de IA generativa da API DataFrames do BigQuery.
Para conferir um tutorial detalhado que usa o console do Google Cloud , consulte Analisar dados multimodais com SQL. Para conferir um tutorial passo a passo que usa o BigQuery DataFrames em Python, consulte Analisar dados multimodais em Python com o BigQuery DataFrames.
Vantagens
Os recursos de dados multimodais do BigQuery oferecem os seguintes benefícios:
- Combinabilidade: é 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 valoresObjectRef
como a saída de uma ação de transformação em um objeto. - Usar dados de objetos em comandos de IA generativa: use valores
ObjectRefRuntime
como entrada para funções de IA generativa. Por exemplo, é possível gerar embeddings em dados de imagem e texto da mesma tabela. Para a geração de valores de texto e escalar, 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 comparar duas imagens de animais e, em seguida, retornar um texto indicando se elas mostram o mesmo tipo de animal. - Persistência da ordem de blocos: é possível dividir objetos e armazená-los
como uma matriz de valores
ObjectRef
em uma coluna de tabela padrão para permitir a persistência da ordem. Por exemplo, você pode analisar imagens de um vídeo e armazená-las como uma matriz de valoresObjectRef
para que as imagens fiquem na mesma ordem em que aparecem no vídeo original.
ObjectRef
valores
Um valor ObjectRef
é um valor STRUCT
que usa o
formato 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 de recurso do Cloud que o BigQuery usa para acessar o objeto do Cloud Storage.
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 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 valorObjectRef
que contenha metadados para um objeto do Cloud Storage.OBJ.FETCH_METADATA
: busca metadados do Cloud Storage para um valorObjectRef
que está parcialmente preenchido com valoresuri
eauthorizer
.
Saiba mais em Especificar colunas ObjectRef
em esquemas de tabelas.
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 de ObjectRefRuntime
expiram
após no máximo seis horas, mas você pode configurar um tempo de expiração 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
os valores ObjectRef
e use-os para gerar valores ObjectRefRuntime
quando necessário. Os valores de ObjectRef
não precisam ser atualizados, a menos que
os objetos 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 ObjectRefRuntime
usando as seguintes funções de IA generativa com modelos do Gemini:
ML.GENERATE_TEXT
AI.GENERATE_TABLE
AI.GENERATE
AI.GENERATE_BOOL
AI.GENERATE_DOUBLE
AI.GENERATE_INT
ML.GENERATE_EMBEDDING
Para todas as funções, exceto ML.GENERATE_EMBEDDING
, é possível
fornecer valores ObjectRefRuntime
como valores únicos ou em matrizes.
ML.GENERATE_EMBEDDING
aceita apenas valores únicos.
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 os seguintes métodos
Session
:
- Método
from_glob_path
: crie um DataFrame multimodal em um bucket do Cloud Storage. - Método
read_gbq_object_table
: crie um DataFrame multimodal a partir de uma tabela de objetos.
Métodos de transformação de objetos
Transforme dados de objetos usando os seguintes
métodos
Series.BlobAccessor
:
- Método
pdf_chunk
: divide objetos PDF de um DataFrame multimodal. Os seguintes métodos para transformar objetos de imagem de um DataFrame multimodais:
Métodos de IA generativa
Use os seguintes métodos para realizar tarefas de IA generativa em dados multimodais:
- Método
predict
da classeGeminiTextGenerator
: gera texto com base em dados multimodais. - Método
predict
da classeMultimodalEmbeddingGenerator
: gera embeddings com base em dados multimodais.
Tabelas de objetos
Se você estiver na lista de permissões para a visualização de dados multimodais, todas as novas
tabelas de objetos que você
criar terão uma coluna ref
que contém um valor ObjectRef
para o
objeto. A conexão usada para criar a tabela de objetos é usada
para preencher os valores de authorizer
na coluna ref
. Use a coluna ref
para preencher e atualizar os valores de ObjectRef
em tabelas padrão.
Limitações
As limitações a seguir se aplicam aos recursos de dados multimodais do BigQuery:
- É necessário executar qualquer consulta que faça referência a valores de
ObjectRef
no mesmo projeto que a tabela que contém os valores deObjectRef
. - Não é possível ter mais de 20 conexões no projeto e na região em que você está executando consultas que fazem referência a valores
ObjectRef
ouObjectRefRuntime
. Por exemplo, se você estiver executando as consultas emasia-east1
emmyproject
, não poderá ter mais de 20 conexões emasia-east1
emmyproject
.
Custos
Os custos a seguir são aplicáveis ao usar 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 base em transformações de objetos incorrem em custos do Cloud Storage.
- Os novos dados criados e mantidos no BigQuery geram custos de armazenamento.
- O uso de funções de IA generativa gera custos da Vertex AI.
- O uso de UDFs do BigQuery Python e de DataFrames multimodais e métodos de transformação de objetos no BigQuery DataFrames gera custos de UDF do Python.
Para mais informações, consulte as seguintes páginas de preços:
- Preços do BigQuery
- Preços das UDFs do BigQuery em Python
- Preços da Vertex AI
- Preços do Cloud Storage
A seguir
- Especificar colunas
ObjectRef
em esquemas de tabelas. - Analise dados multimodais com SQL.
- Analise dados multimodais em Python com o BigQuery DataFrames.
- Saiba mais sobre a IA generativa no BigQuery ML.
- Saiba mais sobre os DataFrames do BigQuery.