파티션을 나눈 테이블에 데이터 로드
이 문서에서는 파티션을 나눈 테이블에 데이터를 로드하는 방법을 설명합니다.
특정 파티션에 데이터 쓰기
파티션 데코레이터와 함께 bq load
명령어를 사용하여 특정 파티션에 데이터를 로드할 수 있습니다. 다음 예시에서는 테이블 파티션을 이미 날짜 기준으로 나누었다고 가정하고 데이터를 기존 테이블의 20160501
(2016년 5월 1일) 파티션에 추가합니다.
bq load --source_format=CSV 'my_dataset.my_table$20160501' data.csv
또한 쿼리 결과를 특정 파티션에 쓸 수도 있습니다.
bq query \ --use_legacy_sql=false \ --destination_table='my_table$20160501' \ --append_table=true \ 'SELECT * FROM my_dataset.another_table'
수집 시간으로 파티션 나누기를 사용하면 이 기법으로 데이터가 원래 생성된 시간에 해당하는 이전 데이터를 파티션에 로드할 수 있습니다.
이 기법을 사용하여 시간대를 조정할 수도 있습니다. 기본적으로 수집 시간 파티션은 UTC 시간을 따릅니다. 파티션 시간을 특정 시간대와 일치시키려면 파티션 데코레이터를 사용하여 UTC 수집 시간을 상쇄하면 됩니다. 예를 들어 태평양 표준시(PST)를 사용하는 경우에는 2016년 5월 1일 PST에 생성된 데이터를 해당 파티션 데코레이터 $20160501
을 사용하여 해당 날짜의 파티션에 로드할 수 있습니다.
시간 단위 열과 정수 범위로 파티션을 나눈 테이블의 경우 데코레이터에 지정된 파티션 ID가 작성 중인 데이터와 일치해야 합니다. 예를 들어 DATE
열에서 테이블 파티션을 나눈 경우 데코레이터가 해당 열의 값과 일치해야 합니다. 그렇지 않으면 오류가 발생합니다. 그러나 데이터가 단일 파티션에 있음을 미리 알고 있는 경우 파티션 데코레이터를 지정하면 쓰기 성능을 향상시킬 수 있습니다.
앞의 예시에서는 파티션에 데이터를 추가합니다. 대신 파티션의 데이터를 덮어쓰려면 각 명령어에 서로 다른 플래그, 즉 bq load --replace=true ...
와 bq query --append_table=false ...
를 포함해야 합니다.
이러한 명령어의 플래그에 대한 자세한 내용은 bq load
및 bq query
를 참조하세요.
데이터 로드에 대한 자세한 내용은 BigQuery에 데이터 로드 소개를 참조하세요.
파티션을 나눈 테이블로 데이터 스트리밍
BigQuery Storage Write API를 사용하여 파티션을 나눈 테이블로 데이터를 스트리밍하는 방법은 시간 단위 열 파티션 나누기를 참조하세요.
다음 단계
파티션을 나눈 테이블 작업에 대해 자세히 알아보세요.