멀티 모달 데이터 분석에 대한 실용 가이드
스폰서 콘텐츠

구글 클라우드
소개
기업은 조직화 된 테이블에서 구조화 된 데이터의 혼합과 이미지, 오디오 및 문서와 같은 구조화되지 않은 데이터의 양을 관리합니다. 이러한 다양한 데이터 유형을 함께 분석하는 것은 종종 별도의 도구가 필요하기 때문에 전통적으로 복잡합니다. 구조화되지 않은 미디어는 일반적으로 처리를위한 전문 서비스 (예 : 이미지 분석을위한 컴퓨터 비전 서비스 또는 오디오를위한 음성 텍스트 엔진)로의 수출이 필요하며, 이는 데이터 사일로를 생성하고 전체적인 분석적보기를 방해합니다.
가상의 전자 상거래 지원 시스템을 고려하십시오. 구조화 된 티켓 세부 정보는 큰 퀴리 테이블에 라이브이며 해당 지원 통화 녹음 또는 손상된 제품의 사진은 클라우드 객체 저장소에 있습니다. 직접 링크가 없으면 “Call Audio가 높은 고객 좌절을 나타내고 사진이 깨진 화면을 보여주는 특정 랩톱 모델에 대한 모든 지원 티켓을 식별하는 컨텍스트가 풍부한 질문에 답하십시오.
이 기사는이 분석을 통합하도록 설계된 BigQuery의 ObjectRef에 대한 실용적이고 기술 안내서입니다. 우리는 다중 모드 데이터 세트를 빌드, 쿼리 및 관리하는 방법을 살펴보고 친숙한 SQL 및 Python 인터페이스를 사용하여 포괄적 인 통찰력을 가능하게합니다.
1 부 : objectref- 다중 모드 데이터를 통합하는 키
objectref 구조 및 기능
SILED 데이터의 문제를 해결하기 위해 BigQuery는 특수 구조물 데이터 유형 인 OBJECTREF를 소개합니다. objectref는 GCS (Google Cloud Storage)에 저장된 구조화되지 않은 데이터 객체에 대한 직접적인 참조 역할을합니다. 구조화되지 않은 데이터 자체가 포함되어 있지 않습니다 (예 : 데이터베이스의 Base64 인코딩 된 이미지 또는 전사 된 오디오). 대신, 해당 데이터의 위치를 가리켜 BigQuery가 액세스하고 분석을 위해 쿼리에 통합 할 수 있습니다.
objectref struct는 여러 주요 필드로 구성됩니다.
- 우리 (문자열) : 객체로의 GCS 경로
- 권한있는 (String) : BigQuery가 GCS 객체에 안전하게 액세스 할 수 있도록합니다
- 버전 (String) : GCS 객체의 특정 생성 ID를 저장하여 재현 가능한 분석을 위해 정확한 버전에 대한 참조를 잠그고
- 세부 (JSON) : 종종 GCS 메타 데이터와 같은 JSON 요소
contentType
또는size
다음은 objectref 값의 JSON 표현입니다.
JSON
{
"uri": "gs://cymbal-support/calls/ticket-83729.mp3",
"version": 1742790939895861,
"authorizer": "my-project.us-central1.conn",
"details": {
"gcs_metadata": {
"content_type": "audio/mp3",
"md5_hash": "a1b2c3d5g5f67890a1b2c3d4e5e47890",
"size": 5120000,
"updated": 1742790939903000
}
}
}
이 정보를 캡슐화함으로써 ObjectRef는 BigQuery에 GCS에서 구조화되지 않은 파일의 기본 속성을 찾아서 안전하게 액세스하고 이해하는 데 필요한 모든 세부 사항을 제공합니다. 이는 멀티 모달 테이블 및 데이터 프레임을 구축하기위한 토대를 형성하여 구조화 된 데이터가 구조화되지 않은 컨텐츠에 대한 참조로 나란히 실시 할 수 있도록합니다.
멀티 모달 테이블을 만듭니다
에이 멀티 모달 테이블 하나 이상의 objectref 열을 포함하는 표준 BigQuery 테이블입니다. 이 섹션에서는이 테이블을 생성하고 SQL로 채우는 방법을 다룹니다.
새 테이블을 만들 때 OBJEctREF 열을 정의하거나 기존 테이블에 추가 할 수 있습니다. 이러한 유연성을 통해 현재 데이터 모델을 조정하여 멀티 모달 기능을 활용할 수 있습니다.
객체 테이블로 objectref 열을 만듭니다
GCS 버킷에 저장된 파일이 많은 경우 객체 테이블은 objectrefs를 생성하는 효율적인 방법입니다. 객체 테이블은 GCS 디렉토리의 내용을 표시하고 이름이 지정된 열을 자동으로 포함하는 읽기 전용 테이블입니다. ref
유형의 objectref.
SQL
CREATE EXTERNAL TABLE `project_id.dataset_id.my_table`
WITH CONNECTION `project_id.region.connection_id`
OPTIONS(
object_metadata="SIMPLE",
uris = ['gs://bucket-name/path/*.jpg']
);
출력은 a를 포함하는 새로운 테이블입니다 ref
열. 당신은 사용할 수 있습니다 ref
기능이있는 열 AI.GENERATE
또는 다른 테이블에 가입하십시오.
프로그래밍 방식으로 objectrefs를 구성합니다
보다 역동적 인 워크 플로를 위해서는 프로그래밍 방식으로 OBJ.MAKE_REF()
기능. 이 기능을 래핑하는 것이 일반적입니다 OBJ.FETCH_METADATA()
채우기 위해 details
GCS 메타 데이터가있는 요소. 다음 코드도 교체하면 작동합니다 gs://
기존 테이블에 URI 필드가있는 경로.
SQL
SELECT
OBJ.FETCH_METADATA(OBJ.MAKE_REF('gs://my-bucket/path/image.jpg', 'us-central1.conn')) AS customer_image_ref,
OBJ.FETCH_METADATA(OBJ.MAKE_REF('gs://my-bucket/path/call.mp3', 'us-central1.conn')) AS support_call_ref
객체 테이블 또는 OBJ.MAKE_REF
멀티 모달 테이블을 구축하고 유지 관리하여 통합 분석의 단계를 설정할 수 있습니다.
2 부 : SQL이있는 멀티 모달 테이블
안전하고 통제 된 접근
OBJEctREF는 BigQuery의 기본 보안 기능과 통합되어 다중 모드 데이터에 대한 거버넌스가 가능합니다. 기본 GCS 객체에 대한 액세스는 최종 사용자에게 직접 부여되지 않습니다. 대신, OBJEctREF의 권한있는 필드에 지정된 BigQuery 연결 리소스를 통해 위임됩니다. 이 모델은 여러 계층의 보안을 허용합니다.
전자 상거래 상점의 제품 이미지에 대한 정보를 저장하는 다음 멀티 모달 테이블을 고려하십시오. 테이블에는 이름이 지정된 objectref 열이 포함되어 있습니다 image
.
열 수준 보안: 전체 열에 대한 액세스를 제한합니다. 제품 이름과 등급 만 분석 해야하는 사용자 세트의 경우 관리자는 열 수준 보안을 image
열. 이로 인해 분석가가 선택을 선택하지 못하게됩니다 image
여전히 다른 구조화 된 필드의 분석을 허용하면서.
줄 수준 보안: BigQuery를 사용하면 사용자가 정의 된 규칙에 따라 볼 수있는 줄을 필터링 할 수 있습니다. 행 수준 정책은 사용자의 역할에 따라 액세스를 제한 할 수 있습니다. 예를 들어, 정책은 “사용자가 개와 관련된 제품을 쿼리 할 수 없도록 할 수 없다”고 말할 수 있으며,이 행은 쿼리 결과에서 존재하지 않는 것처럼 이러한 행을 걸러냅니다.
다수의 승인자:이 테이블은 두 가지 다른 연결을 사용합니다 image.authorizer
요소 (conn1
그리고 conn2
).
이를 통해 관리자는 연결을 통해 GCS 권한을 중앙에서 관리 할 수 있습니다. 예를 들어, conn1
공개 이미지 버킷에 액세스 할 수 있습니다 conn2
새로운 제품 설계로 제한된 버킷에 액세스합니다. 사용자가 모든 행을 볼 수 있더라도 “Bird Seed”제품의 기본 파일을 쿼리하는 능력은 전적으로 더 많은 권한을 사용할 수있는 권한이 있는지 여부에 달려 있습니다. conn2
연결.
SQL과의 AI 중심 추론
그만큼 AI.GENERATE_TABLE
기능은 복합 데이터에 생성 AI 모델을 적용하여 새로 구조화 된 테이블을 만듭니다. 이는 규모의 데이터 강화 작업에 이상적입니다. 전자 상거래 예제를 사용하여 이름과 이미지를 소스 자료로 사용하여 각 제품에 대한 SEO 키워드와 짧은 마케팅 설명을 작성하겠습니다.
다음 쿼리가 처리됩니다 products
테이블, product_name
그리고 image
입력으로 ovjectref. 원본이 포함 된 새 테이블을 생성합니다 product_id
SEO 키워드 목록 및 제품 설명.
SQL
SELECT
product_id,
seo_keywords,
product_description
FROM AI.GENERATE_TABLE(
MODEL `dataset_id.gemini`, (
SELECT (
'For the image of a pet product, generate:'
'1) 5 SEO search keywords and'
'2) A one sentence product description',
product_name, image_ref) AS prompt,
product_id
FROM `dataset_id.products_multimodal_table`
),
STRUCT(
"seo_keywords ARRAY, product_description STRING" AS output_schema
)
);
결과는 열이있는 새 구조 테이블입니다. product_id
,,, seo_keywords
그리고 product_description
. 이는 시간이 많이 걸리는 마케팅 작업을 자동화하고 컨텐츠 관리 시스템에 직접로드하거나 추가 분석에 사용할 수있는 즉시 사용 가능한 데이터를 생성합니다.
파트 3 : 파이썬이있는 멀티 모달 데이터 프레임
멀티 모달 추론을위한 파이썬과 빅 슈리 브리징
Python은 많은 데이터 과학자 및 데이터 분석가에게 선택된 언어입니다. 그러나 실무자들은 일반적으로 데이터가 너무 커질 때 로컬 기계의 메모리에 맞지 않을 때 문제가 발생합니다.
BigQuery DataFrames는 솔루션을 제공합니다. BigQuery에 저장된 데이터와 상호 작용할 수있는 판다와 같은 API를 제공합니다. 없이도 로컬 메모리로 끌어 당깁니다. 이 라이브러리는 파이썬 코드를 SQL로 변환하여 BigQuery의 고도로 확장 가능한 엔진에서 푸시 및 실행됩니다. 이것은 BigQuery의 힘과 결합 된 인기있는 Python 라이브러리의 친숙한 구문을 제공합니다.
이것은 자연스럽게 멀티 모달 분석으로 확장됩니다. BigQuery Dataframe은 구조화 된 데이터와 구조화되지 않은 파일에 대한 참조를 모두 단일로 표시 할 수 있습니다. 멀티 모달 데이터 프레임. 이를 통해 단일 파이썬 환경 내에서 구조화 된 메타 데이터와 포인터를 포함하는 데이터 프레임을로드, 변환 및 분석 할 수 있습니다.
멀티 모달 데이터 프레임을 만듭니다
BigFrames 라이브러리가 설치되면 멀티 모달 데이터로 작업을 시작할 수 있습니다. 핵심 개념은 블로브 열: GCS에서 구조화되지 않은 파일에 대한 참조를 보유하는 특수 열. Blob 열을 ObjectRef의 파이썬 표현으로 생각하십시오. 파일 자체를 보유하지는 않지만이를 가리키고 상호 작용하는 방법을 제공합니다.
Blob 열을 만들거나 지정하는 세 가지 일반적인 방법이 있습니다.
PYTHON
import bigframes
import bigframes.pandas as bpd
# 1. Create blob columns from a GCS location
df = bpd.from_glob_path( "gs://cloud-samples-data/bigquery/tutorials/cymbal-pets/images/*", name="image")
# 2. From an existing object table
df = bpd.read_gbq_object_table("", name="blob_col")
# 3. From a dataframe with a URI field
df["blob_col"] = df["uri"].str.to_blob()
위의 접근법을 설명하기 위해 :
- GCS 위치: 사용
from_glob_path
GCS 버킷을 스캔합니다. 무대 뒤에서이 작업은 임시 BigQuery Object 테이블을 생성하고 즉시 사용 가능한 블로브 열이있는 데이터 프레임으로 표시됩니다. - 기존 객체 테이블: 이미 BigQuery 객체 테이블이있는 경우 사용하십시오.
read_gbq_object_table
그것을로드하는 기능. 이것은 GC를 다시 스캔 할 필요없이 기존 테이블을 읽습니다. - 기존 데이터 프레임: String gcs uris 열이 포함 된 BigQuery Dataframe이있는 경우, 간단히 사용하십시오.
.str.to_blob()
해당 열에서 블로브 열로 “업그레이드”하는 메소드.
파이썬에 대한 AI 중심의 추론
멀티 모달 데이터 프레임을 만드는 주요 이점은 구조화되지 않은 데이터에 대한 AI 구동 분석을 규모로 직접 수행하는 것입니다. BigQuery DataFrames를 사용하면 Blob 열을 포함하여 LLM (Large Language Model) (LLM)을 데이터에 적용 할 수 있습니다.
일반 워크 플로에는 세 가지 단계가 포함됩니다.
- 구조화되지 않은 파일을 가리키는 Blob 열로 멀티 모달 데이터 프레임 생성
- 기존 BigQuery ML 모델을 BigFrames Model 객체에로드하십시오.
- 모델 객체에서 .predict () 메소드를 호출하여 멀티 모달 데이터 프레임을 입력으로 전달하십시오.
전자 상거래 예제를 계속합시다. 우리는 사용할 것입니다 gemini-2.5-flash
각 애완 동물 제품 이미지에 대한 간단한 설명을 생성하는 모델.
PYTHON
import bigframes.pandas as bpd
# 1. Create the multimodal dataframe from a GCS location
df = bpd.from_glob_path(
"gs://cloud-samples-data/bigquery/tutorials/cymbal-pets/images/*", name="image_blob")
# Limit to 2 images for simplicity
df = df.head(2)
# 2. Specify a large language model
from bigframes.ml import llm
model = llm.GeminiTextGenerator(model_name="gemini-2.5-flash-preview-05-20")
# 3. Ask the LLM to describe what's in the picture
answer = model.predict(df_image, prompt=["Write a 1 sentence product description for the image.", df_image["image"]])
answer[["ml_generate_text_llm_result", "image"]]
전화 할 때 model.predict(df_image)
BigQuery Dataframes는 ML.GENERATE_TEXT
함수, 파일 참조를 자동으로 전달합니다 blob
열과 텍스트 prompt
입력으로. BigQuery Engine 은이 요청을 처리하고 데이터를 Gemini 모델로 보내고 생성 된 텍스트 설명을 결과 데이터 프레임의 새 열로 반환합니다.
이 강력한 통합을 사용하면 몇 줄의 파이썬 코드를 사용하여 수천 또는 수백만 파일에 걸쳐 멀티 모달 분석을 수행 할 수 있습니다.
멀티 모달 데이터 프레임으로 더 깊이 들어갑니다
세대에 LLM을 사용하는 것 외에도 bigframes
도서관은 구조화되지 않은 데이터를 처리하고 분석하도록 설계된 점점 더 많은 도구를 제공합니다. Blob 열에서 사용할 수있는 주요 기능 및 관련 방법은 다음과 같습니다.
- 내장 변환: 규모로 흐리게, 정규화 및 크기를 조정하는 것과 같은 일반적인 작업을위한 기본 변환으로 모델링을위한 이미지를 준비하십시오.
- 삽입 생성: vertex AI 호스팅 모델을 사용하여 단일 함수 호출에서 데이터를 임베딩으로 변환하여 멀티 모달 데이터에서 내장을 생성하여 의미 검색을 활성화합니다.
- PDF 청크: 문서 컨텐츠를 더 작고 의미있는 세그먼트로 분할하여 일반적인 사전 프로세싱 단계 인 Rag Workflows를 간소화합니다.
이러한 기능은 BigQuery Dataframes가 멀티 모달 분석 및 Python을 사용한 AI의 엔드 투 엔드 도구로 구축되고 있음을 나타냅니다. 개발이 계속됨에 따라 직접 통합 된 별도의 전문 라이브러리에서 전통적으로 발견되는 더 많은 도구를 볼 수 있습니다. bigframes
.
결론:
멀티 모달 테이블 및 데이터 프레임은 조직이 데이터 분석에 접근 할 수있는 방법의 변화를 나타냅니다. BigQuery는 GCS에서 표로 데이터와 구조화되지 않은 파일 사이의 직접적이고 안전한 링크를 만들어 오랫동안 복잡한 다중 모드 분석을 갖는 데이터 사일로를 해체합니다.
이 안내서는 SQL을 작성하는 데이터 분석가이든 Python을 사용하는 데이터 과학자이든 관계없이 관계형 데이터와 함께 임의의 멀티 모달 파일을 쉽게 분석 할 수 있음을 보여줍니다.
자신의 멀티 모달 분석 솔루션 구축을 시작하려면 다음 리소스를 탐색하십시오.
- 공식 문서: BigQuery에서 멀티 모달 데이터를 분석하는 방법에 대한 개요를 읽으십시오.
- 파이썬 노트: BigQuery Dataframes 예제 노트북으로 실습하십시오
- 단계별 자습서:
저자 : Jeff Nelson, Google Cloud- 개발자 관계 엔지니어
Post Comment