BigQuery DataFrames 2.0으로 이전
2025년 4월 16일에 BigQuery DataFrames팀은 BigQuery DataFrames 버전 2.0을 출시할 계획입니다. 이 버전에서는 BigQuery DataFrames API의 보안 및 성능을 개선하고 새로운 기능을 추가합니다. 이 문서에서는 변경사항을 설명하고 이전 안내를 제공합니다. BigQuery DataFrames의 최신 버전 1.x를 사용하거나 2.0 패키지의 출시 전 버전을 설치하여 출시 전에 이러한 권장사항을 적용할 수 있습니다.
BigQuery DataFrames 버전 2.0 설치
중단을 방지하려면 requirements.txt
파일 (예: bigframes==1.38.0
) 또는 pyproject.toml
파일 (예: dependencies = ["bigframes = 1.38.0"]
)에서 특정 버전의 BigQuery DataFrames를 고정합니다. 최신 버전을 사용해 볼 준비가 되면 pip install --upgrade bigframes
를 실행하여 최신 버전의 BigQuery DataFrames를 설치할 수 있습니다.
allow_large_results
옵션 사용
BigQuery에는 쿼리 작업에 대한 최대 응답 크기 한도가 있습니다. BigQuery DataFrames 버전 2.0부터 BigQuery DataFrames는 peek()
, to_pandas()
, to_pandas_batches()
와 같이 클라이언트에 결과를 반환하는 메서드에서 기본적으로 이 제한을 적용합니다. 작업이 큰 결과를 반환하는 경우 BigQueryOptions
객체에서 allow_large_results
를 True
로 설정하여 중단 변경사항을 방지할 수 있습니다. 이 옵션은 BigQuery DataFrames 버전 2.0에서 기본적으로 False
로 설정됩니다.
import bigframes.pandas as bpd
bpd.options.bigquery.allow_large_results = True
to_pandas()
및 기타 메서드에서 allow_large_results
매개변수를 사용하여 allow_large_results
옵션을 재정의할 수 있습니다. 예를 들면 다음과 같습니다.
bf_df = bpd.read_gbq(query)
# ... other operations on bf_df ...
pandas_df = bf_df.to_pandas(allow_large_results=True)
@remote_function
데코레이터 사용
BigQuery DataFrames 버전 2.0에서는 @remote_function
데코레이터의 기본 동작을 일부 변경합니다.
서비스 계정 설정
버전 2.0부터 BigQuery DataFrames는 더 이상 배포하는 Cloud Run 함수에 기본적으로 Compute Engine 서비스 계정을 사용하지 않습니다. 배포하는 함수의 권한을 제한하려면 다음 단계를 따르세요.
- 최소 권한으로 서비스 계정을 만듭니다.
- 그런 다음
@remote_function
데코레이터의cloud_function_service_account
매개변수에 서비스 계정 이메일을 제공합니다.
예를 들면 다음과 같습니다.
@remote_function(
cloud_function_service_account="my-service-account@my-project.iam.gserviceaccount.com",
...
)
def my_remote_function(parameter: int) -> str:
return str(parameter)
Compute Engine 서비스 계정을 사용하려면 @remote_function
데코레이터의 cloud_function_service_account
매개변수를 "default"
로 설정하면 됩니다. 예를 들면 다음과 같습니다.
# This usage is discouraged. Use only if you have a specific reason to use the
# default Compute Engine service account.
@remote_function(cloud_function_service_account="default", ...)
def my_remote_function(parameter: int) -> str:
return str(parameter)
인그레스 설정
버전 2.0부터 BigQuery DataFrames는 배포하는 Cloud Run 함수의 인그레스 설정을 "internal-only"
에 설정합니다. 이전에는 인그레스 설정이 기본적으로 "all"
로 설정되었습니다. @remote_function
데코레이터의 cloud_function_ingress_settings
매개변수를 설정하여 인그레스 설정을 변경할 수 있습니다. 예를 들면 다음과 같습니다.
@remote_function(cloud_function_ingress_settings="internal-and-gclb", ...)
def my_remote_function(parameter: int) -> str:
return str(parameter)
맞춤 엔드포인트 사용
이전에는 지역에서 지역 서비스 엔드포인트 및 bigframes.pandas.options.bigquery.use_regional_endpoints = True
를 지원하지 않는 경우 BigQuery DataFrames가 위치 엔드포인트로 대체되었습니다. BigQuery DataFrames 버전 2.0에서는 이 대체 동작이 삭제됩니다. 버전 2.0에서 위치 엔드포인트에 연결하려면 bigframes.pandas.options.bigquery.client_endpoints_override
옵션을 설정합니다. 예를 들면 다음과 같습니다.
import bigframes.pandas as bpd
bpd.options.bigquery.client_endpoints_override = {
"bqclient": "https://LOCATION-bigquery.googleapis.com",
"bqconnectionclient": "LOCATION-bigqueryconnection.googleapis.com",
"bqstoragereadclient": "LOCATION-bigquerystorage.googleapis.com",
}
LOCATION
을 연결하려는 BigQuery 위치의 이름으로 바꿉니다.
부분 순서 지정 모드 사용
BigQuery DataFrames 버전 2.0에서는 부분 순서 지정 모드가 정식 버전으로 제공되지만 기본적으로 사용 설정되어 있지는 않습니다.
부분 순서 지정을 사용하려면 다음 코드 샘플과 같이 BigQuery DataFrames로 다른 작업을 수행하기 전에 ordering_mode
를 partial
로 설정하세요.
이 모드는 대부분의 경우 더 효율적인 쿼리를 생성하고 groupby()
함수를 사용하는 쿼리와 같이 동일한 쿼리를 생성합니다.
.iloc[row_index]
와 같이 순서 지정이 필요한 일부 pandas 호환 함수는 부분 순서 지정 모드에서 지원되지 않습니다. 자세한 내용은 부분 순서 지정 모드를 참고하세요.