BigQuery에서 멀티모달 데이터 분석

이 문서에서는 멀티모달 데이터를 분석하는 데 사용할 수 있는 BigQuery 기능을 설명합니다. 일부 기능은Google Cloud 콘솔 및 bq 명령줄 도구에서 사용할 수 있고, 다른 기능은 Python에서 BigQuery DataFrames를 사용하여 사용할 수 있습니다. 이러한 여러 기능을 함께 사용하여 다중 모드 데이터에 대한 분석 및 변환 워크플로를 더 쉽게 지원할 수 있습니다.

BigQuery의 멀티모달 데이터 기능을 사용하면 다음 작업을 실행할 수 있습니다.

Google Cloud 콘솔을 사용하는 단계별 튜토리얼은 SQL로 다중 모드 데이터 분석을 참고하세요. Python에서 BigQuery DataFrames를 사용하는 단계별 튜토리얼은 BigQuery DataFrames로 Python에서 멀티모달 데이터 분석하기를 참고하세요.

이점

BigQuery의 멀티모달 데이터 기능은 다음과 같은 이점을 제공합니다.

  • 조합 가능성: ObjectRef 값을 사용하여 동일한 표준 테이블 행에 구조화된 데이터와 비구조화된 데이터를 저장하고 관리할 수 있습니다. 예를 들어 제품 이미지를 나머지 제품 정보와 동일한 행에 저장할 수 있습니다. 표준 SQL 함수를 사용하여 ObjectRef 값이 포함된 열을 만들고 업데이트할 수 있으며 객체에 대한 변환 작업의 출력으로 ObjectRef 값을 만들 수 있습니다.
  • 생성형 AI 프롬프트에서 객체 데이터 사용: ObjectRefRuntime 값을 생성형 AI 함수의 입력으로 사용합니다. 예를 들어 동일한 테이블의 이미지 데이터와 텍스트 데이터에 임베딩을 생성할 수 있습니다. 텍스트 및 스칼라 값 생성의 경우 모델에 전송하는 프롬프트 내에서 여러 객체를 참조할 수도 있습니다. 예를 들어 모델에 동물의 두 이미지를 비교하도록 요청하는 프롬프트를 만든 다음, 동일한 유형의 동물을 보여주는지 나타내는 텍스트를 반환할 수 있습니다.
  • 청크 순서 유지: 객체를 청크 처리한 후 순서를 유지하기 위해 청크를 표준 테이블 열에 ObjectRef 값의 배열로 저장할 수 있습니다. 예를 들어 동영상에서 이미지를 파싱한 다음 이러한 이미지를 ObjectRef 값 배열로 저장하여 이미지가 원본 동영상에 표시된 순서와 동일하게 유지되도록 할 수 있습니다.

ObjectRef

ObjectRef 값은 ObjectRef 형식을 사용하는 STRUCT 값입니다. 이 형식을 사용하는 STRUCT 또는 ARRAY<STRUCT> 열을 만들어 Cloud Storage 객체 메타데이터와 연결된 승인자를 BigQuery 표준 테이블에 저장할 수 있습니다. 승인자 값은 BigQuery가 Cloud Storage 객체에 액세스하는 데 사용하는 Cloud 리소스 연결을 식별합니다.

비정형 데이터를 표준 테이블에 통합해야 하는 경우 ObjectRef 값을 사용합니다. 예를 들어 제품 테이블에서 ObjectRef 값이 포함된 열을 추가하여 제품 이미지를 나머지 제품 정보와 동일한 행에 저장할 수 있습니다.

다음 GoogleSQL 함수를 사용하여 ObjectRef 값을 만들고 업데이트합니다.

  • OBJ.MAKE_REF: Cloud Storage 객체의 메타데이터가 포함된 ObjectRef 값을 만듭니다.
  • OBJ.FETCH_METADATA: uriauthorizer 값으로 부분적으로 채워진 ObjectRef 값의 Cloud Storage 메타데이터를 가져옵니다.

자세한 내용은 테이블 스키마에서 ObjectRef 열 지정을 참고하세요.

ObjectRefRuntime

ObjectRefRuntime 값은 ObjectRefRuntime 스키마를 사용하는 JSON 값입니다. ObjectRefRuntime 값에는 객체를 만드는 데 사용된 ObjectRef 값의 Cloud Storage 객체 메타데이터, 연결된 승인자, 액세스 URL이 포함됩니다. 액세스 URL을 사용하여 Cloud Storage에서 객체를 읽거나 수정할 수 있습니다.

ObjectRefRuntime 값을 사용하여 분석 및 변환 워크플로에서 객체 데이터를 처리합니다. ObjectRefRuntime 값의 액세스 URL은 최대 6시간 후에 만료되지만 더 짧은 만료 시간을 구성할 수도 있습니다. 워크플로의 일부로 어디서나 ObjectRefRuntime 값을 유지하는 경우 이 데이터를 정기적으로 새로고침해야 합니다. 객체 메타데이터를 유지하려면 대신 ObjectRef 값을 저장한 다음 필요할 때 이를 사용하여 ObjectRefRuntime 값을 생성합니다. Cloud Storage의 기본 객체가 수정되지 않는 한 ObjectRef 값을 새로고침할 필요가 없습니다.

OBJ.GET_ACCESS_URL 함수를 사용하여 ObjectRefRuntime 값을 만듭니다.

생성형 AI 함수

Gemini 모델과 함께 다음 생성형 AI 함수를 사용하여 ObjectRefRuntime 입력을 기반으로 텍스트, 임베딩, 스칼라 값을 생성합니다.

ML.GENERATE_EMBEDDING를 제외한 모든 함수의 경우 ObjectRefRuntime 값을 단일 값으로 제공하거나 배열로 제공할 수 있습니다. ML.GENERATE_EMBEDDING는 단일 값만 허용합니다.

Python에서 멀티모달 데이터 작업

BigQuery DataFrames 클래스와 메서드를 사용하여 Python에서 멀티모달 데이터를 분석할 수 있습니다.

멀티모달 DataFrame

다음 Session 메서드를 사용하여 정형 데이터와 비정형 데이터를 통합하는 멀티모달 DataFrame을 만듭니다.

객체 변환 메서드

다음 Series.BlobAccessor 메서드를 사용하여 객체 데이터를 변환합니다.

생성형 AI 방법

다음 메서드를 사용하여 멀티모달 데이터에서 생성형 AI 태스크를 실행합니다.

객체 테이블

멀티모달 데이터 미리보기 허용 목록에 있는 경우 새로 만드는 모든 객체 테이블에는 지정된 객체의 ObjectRef 값이 포함된 ref 열이 있습니다. 객체 테이블을 만드는 데 사용되는 연결은 ref 열에 authorizer 값을 채우는 데 사용됩니다. ref 열을 사용하여 표준 테이블에서 ObjectRef 값을 채우고 새로고침할 수 있습니다.

제한사항

BigQuery 멀티모달 데이터 지형지물에는 다음과 같은 제한사항이 적용됩니다.

  • ObjectRef 값을 참조하는 쿼리는 ObjectRef 값이 포함된 테이블과 동일한 프로젝트에서 실행해야 합니다.
  • ObjectRef 또는 ObjectRefRuntime 값을 참조하는 쿼리를 실행하는 프로젝트 및 리전에는 연결이 20개를 초과할 수 없습니다. 예를 들어 myprojectasia-east1에서 쿼리를 실행하는 경우 myprojectasia-east1에 20개를 초과하는 연결을 보유할 수 없습니다.

비용

멀티모달 데이터를 사용할 때는 다음과 같은 비용이 적용됩니다.

  • 표준 테이블에 객체 메타데이터를 ObjectRef 값으로 저장하면 테이블의 BigQuery 스토리지 비용이 증가합니다.
  • ObjectRef 값에서 실행되는 쿼리에는 BigQuery 컴퓨팅 비용이 발생합니다.
  • 객체 변환으로 만드는 새 객체에는 Cloud Storage 비용이 발생합니다.
  • BigQuery에서 생성하고 유지하는 새 데이터에는 BigQuery 스토리지 비용이 발생합니다.
  • 생성형 AI 함수를 사용하면 Vertex AI 비용이 발생합니다.
  • BigQuery Python UDF, BigQuery DataFrames의 다중 모드 DataFrame 및 객체 변환 메서드를 사용하면 Python UDF 비용이 발생합니다.

자세한 내용은 다음 가격 책정 페이지를 참고하세요.

다음 단계