Analisar dados multimodais no BigQuery
Neste documento, descrevemos 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, e outros estão disponíveis usando DataFrames do BigQuery em Python. Você pode usar muitos desses recursos juntos para facilitar os fluxos de trabalho de análise e transformação de dados multimodais.
Com os recursos de dados multimodais do BigQuery, é possível realizar as seguintes tarefas:
- Integre dados não estruturados a tabelas padrão usando valores de
ObjectRef. - Trabalhe com dados não estruturados em fluxos de trabalho de análise e transformação usando valores
ObjectRefRuntime. - Gere texto, embeddings e valores escalares de dados multimodais usando as funções de IA generativa do BigQuery ML com modelos do Gemini.
- Crie DataFrames multimodais nos DataFrames do BigQuery.
- Transforme imagens e divida arquivos PDF usando métodos
Series.BlobAccessordo BigQuery DataFrames. - Gere texto e embeddings de dados multimodais usando os métodos de IA generativa do BigQuery DataFrames.
Para um tutorial detalhado que usa o console Google Cloud , consulte Analisar dados multimodais com SQL. Para conferir um tutorial detalhado 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:
- 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 valoresObjectRef, além de criar valoresObjectRefcomo resultado de uma ação de transformação em um objeto. - Usar dados de objetos em comandos de IA generativa: use valores
ObjectRefRuntimecomo entrada para funções de IA generativa. Por exemplo, é possível gerar embeddings em dados de imagem e texto da mesma tabela. Para 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 comparar duas imagens de animais e retornar um texto indicando se elas mostram o mesmo tipo de animal. - Persistência da ordenação de partes: é possível dividir objetos em partes e armazená-las
como uma matriz de valores
ObjectRefem uma coluna de tabela padrão para manter a ordem. Por exemplo, você pode analisar imagens de um vídeo e armazená-las como uma matriz de valoresObjectRefpara que elas 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 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 valorObjectRefque contenha metadados para um objeto do Cloud Storage.OBJ.FETCH_METADATA: busca metadados do Cloud Storage para um valorObjectRefque é parcialmente preenchido com valoresurieauthorizer.
Para mais informações, consulte
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 ObjectRefRuntime expiram em até 6 horas, mas é possível 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 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 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 ObjectRefRuntime usando as seguintes funções de IA generativa com modelos do Gemini:
ML.GENERATE_TEXTAI.GENERATE_TABLEAI.GENERATEAI.GENERATE_BOOLAI.GENERATE_DOUBLEAI.GENERATE_INTML.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: cria um DataFrame multimodal com base em um bucket do Cloud Storage. - Método
read_gbq_object_table: cria um DataFrame multimodal de uma tabela de objetos.
Métodos de transformação de objetos
Transforme os 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 multimodal:
Métodos de IA generativa
Use os métodos a seguir para realizar tarefas de IA generativa em dados multimodais:
- O método
predictda classeGeminiTextGenerator: gera texto com base em dados multimodais. - O método
predictda classeMultimodalEmbeddingGenerator: gera embeddings com base em dados multimodais.
Tabelas de objetos
Se você estiver na lista de permissão da prévia 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 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.
Limitações
As seguintes limitações se aplicam aos recursos de dados multimodais do BigQuery:
- Execute qualquer consulta que faça referência a valores
ObjectRefno mesmo projeto da tabela que contém esses valores.ObjectRef - Não é possível ter mais de 20 conexões no projeto e na região em que você está executando consultas que referenciam valores de
ObjectRefouObjectRefRuntime. Por exemplo, se você estiver executando as consultas emasia-east1emmyproject, não poderá ter mais de 20 conexões emasia-east1emmyproject.
Custos
Os seguintes custos se aplicam 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. - Os novos objetos criados com transformações geram custos do Cloud Storage.
- Os novos dados que você cria e mantém no BigQuery geram custos de armazenamento do BigQuery.
- O uso de funções de IA generativa gera custos da Vertex AI.
- O uso de UDFs do Python do BigQuery e de DataFrames multimodais e métodos de transformação de objetos nos DataFrames do BigQuery gera custos de UDFs do Python.
Para mais informações, consulte as seguintes páginas de preços:
- Preços do BigQuery
- Preços das UDFs do Python no BigQuery
- Preços da Vertex AI
- Preços do Cloud Storage
A seguir
- Especificar colunas
ObjectRefem 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 o BigQuery DataFrames.