관리형 I/O는 BigQuery에 다음 기능을 지원합니다.
- 동적 테이블 생성
- 동적 대상
- 읽기의 경우 커넥터는 BigQuery Storage Read API를 사용합니다.
- 쓰기의 경우 커넥터는 다음 BigQuery 메서드를 사용합니다. - 소스가 무한이고 Dataflow가 스트리밍 정확히 한 번 처리를 사용하는 경우, 커넥터는 정확히 한 번 전달 보장이 적용된 BigQuery Storage Write API를 사용하여 BigQuery에 데이터를 씁니다.
- 소스가 무한이고 Dataflow가 스트리밍 최소 한 번 처리를 사용하는 경우, 커넥터는 최소 한 번 전달 보장이 적용된 BigQuery Storage Write API를 사용하여 BigQuery에 데이터를 씁니다.
- 소스가 유한한 경우, 커넥터는 BigQuery 파일 로드 방식을 사용합니다.
 
요구사항
다음 SDK는 BigQuery용 관리형 I/O를 지원합니다.
- Java용 Apache Beam SDK 버전 2.61.0 이상
- Python용 Apache Beam SDK 버전 2.61.0 이상
구성
BigQuery용 관리형 I/O는 다음 구성 파라미터를 지원합니다.
BIGQUERY 읽기
| 구성 | 유형 | 설명 | 
|---|---|---|
| kms_key | str | 이 Cloud KMS 키를 사용하여 데이터를 암호화합니다. | 
| query | str | BigQuery 테이블에서 읽기 위해 실행할 SQL 쿼리입니다. | 
| row_restriction | str | 이 필터와 일치하는 읽기 전용 행. Google 표준 SQL과 호환되어야 합니다. 쿼리를 통해 읽는 경우에는 지원되지 않습니다. | 
| fields | list[str] | BigQuery 테이블에서 지정된 필드(열)만 읽습니다. 필드가 지정된 순서대로 반환되지 않을 수 있습니다. 값을 지정하지 않으면 모든 필드가 반환됩니다. 예시: "col1, col2, col3" | 
| 표 | str | 읽어올 BigQuery 테이블의 정규화된 이름입니다. 형식: [${PROJECT}:]${DATASET}.${TABLE} | 
BIGQUERY 쓰기
| 구성 | 유형 | 설명 | 
|---|---|---|
| 표 | str | 쓸 BigQuery 테이블입니다. 형식: [${PROJECT}:]${DATASET}.${TABLE} | 
| drop | list[str] | 쓰기 전에 입력 레코드에서 삭제할 필드 이름 목록입니다. 'keep' 및 'only'와 상호 배타적입니다. | 
| Keep | list[str] | 입력 레코드에 유지할 필드 이름 목록입니다. 다른 모든 필드는 쓰기 전에 삭제됩니다. 'drop' 및 'only'와 상호 배타적입니다. | 
| kms_key | str | 이 Cloud KMS 키를 사용하여 데이터를 암호화합니다. | 
| only | str | 작성해야 하는 단일 레코드 필드의 이름입니다. 'keep' 및 'drop'과 상호 배타적입니다. | 
| triggering_frequency_seconds | int64 | BigQuery에 진행 상황을 '커밋'하는 빈도를 결정합니다. 기본값은 5초마다입니다. | 
다음 단계
자세한 내용과 코드 예시는 다음 주제를 참고하세요.