제 쿼리가 수백만 행을 반환하는 경우 JdbcIO가 병렬로 쿼리를 실행하는 방법을 알고 싶습니다. https://issues.apache.org/jira/browse/BEAM-2803과 관련된 풀 요청을 언급했습니다. 나는 그것을 완전히 이해할 수 없었다.Apache Beam을 사용하여 데이터베이스에서 대량 데이터 읽기
ReadAll
expand
메서드는 ParDo
을 사용합니다. 따라서 병렬로 데이터를 읽으려면 데이터베이스에 대한 다중 연결을 생성합니까? 데이터 소스에서 DB에 연결할 수있는 연결 수를 제한하면 연결 제한에 충실합니까?
아무도 나를 JdbcIO
에서 어떻게 처리 할 수 있는지 이해할 수 있도록 도와 주시겠습니까? 나는 2.2.0
업데이트를 사용하고 있습니다 :
.apply(
ParDo.of(
new ReadFn<>(
getDataSourceConfiguration(),
getQuery(),
getParameterSetter(),
getRowMapper())))
위의 코드는 ReadFn는 파르 적용되는 것을 보여줍니다. 필자는 ReadFn이 병렬로 실행될 것이라고 생각합니다. 내 가정이 맞는다면, 한 번에 제한된 수의 연결 만 설정할 수있는 DB에서 읽으려면 어떻게 readAll()
메서드를 사용합니까? Balu
라라, 댓글 주셔서 감사합니다. 하지만, 내 질문은 단일 쿼리가 DB에서 수백만 행을로드하는 경우에만 해당됩니다. 나는 그러한 데이터를 병렬로 읽는 구현을 보지 못했다. 여기서 우리는 어떻게 병렬 처리를 할 수 있습니까? – Balu