데이터베이스용 Dataflow 관리형 I/O

Dataflow는 Java Database Connectivity (JDBC)를 사용하여 데이터베이스에서 읽고 데이터베이스에 쓰는 작업을 지원합니다. Dataflow는 Apache Beam JdbcIO 커넥터를 사용하여 JDBC 데이터 소스 및 싱크에 연결합니다. 데이터베이스용 관리 I/O는 PostgreSQL, MySQL, Microsoft SQL Server를 비롯한 다양한 데이터베이스의 표준 JDBC 드라이버를 지원합니다.

요구사항

다음 SDK는 데이터베이스용 관리형 I/O를 지원합니다.

  • Java용 Apache Beam SDK 버전 2.69.0 이상
  • Python용 Apache Beam SDK 버전 2.69.0 이상

구성

데이터베이스용 관리형 I/O는 다음 구성 파라미터를 지원합니다.

POSTGRES 읽기

구성 유형 설명
jdbc_url str JDBC 소스의 연결 URL입니다.
connection_properties str 이미 독립형 매개변수로 정의되지 않은 JDBC 드라이버에 전달되는 연결 속성을 설정하는 데 사용됩니다 (예: 위의 매개변수를 사용하여 사용자 이름과 비밀번호를 설정할 수 있음). 문자열 형식은 'key1=value1;key2=value2;'여야 합니다.
fetch_size int32 이 메서드는 데이터베이스 호출마다 가져와 메모리에 로드할 데이터의 크기를 재정의하는 데 사용됩니다. 기본값이 메모리 오류를 발생시키는 경우에만 사용해야 합니다.
위치 str 읽을 테이블의 이름입니다.
num_partitions int32 파티션 수
output_parallelization boolean 결과가 모든 작업자에게 분산되도록 결과 PCollection을 재셔플할지 여부입니다.
partition_column str 파티셔닝에 사용될 숫자 유형 열의 이름입니다.
비밀번호 str JDBC 소스의 비밀번호입니다.
read_query str JDBC 소스를 쿼리하는 데 사용되는 SQL 쿼리입니다.
사용자 이름 str JDBC 소스의 사용자 이름입니다.

POSTGRES 쓰기

구성 유형 설명
jdbc_url str JDBC 싱크의 연결 URL입니다.
자동 샤딩 boolean 참인 경우 동적으로 결정된 샤드 수를 쓰기에 사용하도록 설정합니다.
batch_size int64 해당 사항 없음
connection_properties str 이미 독립형 매개변수로 정의되지 않은 JDBC 드라이버에 전달되는 연결 속성을 설정하는 데 사용됩니다 (예: 위의 매개변수를 사용하여 사용자 이름과 비밀번호를 설정할 수 있음). 문자열 형식은 'key1=value1;key2=value2;'여야 합니다.
위치 str 쓰기 대상 테이블의 이름입니다.
비밀번호 str JDBC 소스의 비밀번호입니다.
사용자 이름 str JDBC 소스의 사용자 이름입니다.
write_statement str JDBC 싱크에 레코드를 삽입하는 데 사용되는 SQL 쿼리입니다.

MYSQL 읽기

구성 유형 설명
jdbc_url str JDBC 소스의 연결 URL입니다.
connection_init_sql list[str] 드라이버에서 사용하는 연결 초기화 SQL 문을 설정합니다. MySQL 및 MariaDB만 이를 지원합니다.
connection_properties str 이미 독립형 매개변수로 정의되지 않은 JDBC 드라이버에 전달되는 연결 속성을 설정하는 데 사용됩니다 (예: 위의 매개변수를 사용하여 사용자 이름과 비밀번호를 설정할 수 있음). 문자열 형식은 'key1=value1;key2=value2;'여야 합니다.
disable_auto_commit boolean 읽기 시 자동 커밋을 사용 중지할지 여부입니다. 제공되지 않으면 기본값은 true입니다. 이 구성의 필요성은 데이터베이스 플랫폼에 따라 다릅니다. Informix는 false로 설정해야 하고 Postgres는 true로 설정해야 합니다.
fetch_size int32 이 메서드는 데이터베이스 호출마다 가져와 메모리에 로드할 데이터의 크기를 재정의하는 데 사용됩니다. 기본값이 메모리 오류를 발생시키는 경우에만 사용해야 합니다.
위치 str 읽을 테이블의 이름입니다.
num_partitions int32 파티션 수
output_parallelization boolean 결과가 모든 작업자에게 분산되도록 결과 PCollection을 재셔플할지 여부입니다.
partition_column str 파티셔닝에 사용될 숫자 유형 열의 이름입니다.
비밀번호 str JDBC 소스의 비밀번호입니다.
read_query str JDBC 소스를 쿼리하는 데 사용되는 SQL 쿼리입니다.
사용자 이름 str JDBC 소스의 사용자 이름입니다.

MYSQL 쓰기

구성 유형 설명
jdbc_url str JDBC 싱크의 연결 URL입니다.
자동 샤딩 boolean 참인 경우 동적으로 결정된 샤드 수를 쓰기에 사용하도록 설정합니다.
batch_size int64 해당 사항 없음
connection_init_sql list[str] 드라이버에서 사용하는 연결 초기화 SQL 문을 설정합니다. MySQL 및 MariaDB만 이를 지원합니다.
connection_properties str 이미 독립형 매개변수로 정의되지 않은 JDBC 드라이버에 전달되는 연결 속성을 설정하는 데 사용됩니다 (예: 위의 매개변수를 사용하여 사용자 이름과 비밀번호를 설정할 수 있음). 문자열 형식은 'key1=value1;key2=value2;'여야 합니다.
위치 str 쓰기 대상 테이블의 이름입니다.
비밀번호 str JDBC 소스의 비밀번호입니다.
사용자 이름 str JDBC 소스의 사용자 이름입니다.
write_statement str JDBC 싱크에 레코드를 삽입하는 데 사용되는 SQL 쿼리입니다.

SQLSERVER 읽기

구성 유형 설명
jdbc_url str JDBC 소스의 연결 URL입니다.
connection_properties str 이미 독립형 매개변수로 정의되지 않은 JDBC 드라이버에 전달되는 연결 속성을 설정하는 데 사용됩니다 (예: 위의 매개변수를 사용하여 사용자 이름과 비밀번호를 설정할 수 있음). 문자열 형식은 'key1=value1;key2=value2;'여야 합니다.
disable_auto_commit boolean 읽기 시 자동 커밋을 사용 중지할지 여부입니다. 제공되지 않으면 기본값은 true입니다. 이 구성의 필요성은 데이터베이스 플랫폼에 따라 다릅니다. Informix는 false로 설정해야 하고 Postgres는 true로 설정해야 합니다.
fetch_size int32 이 메서드는 데이터베이스 호출마다 가져와 메모리에 로드할 데이터의 크기를 재정의하는 데 사용됩니다. 기본값이 메모리 오류를 발생시키는 경우에만 사용해야 합니다.
위치 str 읽을 테이블의 이름입니다.
num_partitions int32 파티션 수
output_parallelization boolean 결과가 모든 작업자에게 분산되도록 결과 PCollection을 재셔플할지 여부입니다.
partition_column str 파티셔닝에 사용될 숫자 유형 열의 이름입니다.
비밀번호 str JDBC 소스의 비밀번호입니다.
read_query str JDBC 소스를 쿼리하는 데 사용되는 SQL 쿼리입니다.
사용자 이름 str JDBC 소스의 사용자 이름입니다.

SQLSERVER 쓰기

구성 유형 설명
jdbc_url str JDBC 싱크의 연결 URL입니다.
자동 샤딩 boolean 참인 경우 동적으로 결정된 샤드 수를 쓰기에 사용하도록 설정합니다.
batch_size int64 해당 사항 없음
connection_properties str 이미 독립형 매개변수로 정의되지 않은 JDBC 드라이버에 전달되는 연결 속성을 설정하는 데 사용됩니다 (예: 위의 매개변수를 사용하여 사용자 이름과 비밀번호를 설정할 수 있음). 문자열 형식은 'key1=value1;key2=value2;'여야 합니다.
위치 str 쓰기 대상 테이블의 이름입니다.
비밀번호 str JDBC 소스의 비밀번호입니다.
사용자 이름 str JDBC 소스의 사용자 이름입니다.
write_statement str JDBC 싱크에 레코드를 삽입하는 데 사용되는 SQL 쿼리입니다.

다음 단계

자세한 내용과 코드 예시는 다음 문서를 참고하세요.