Bigtable I/O

Dataflow SDK는 Google Cloud Bigtable에서 데이터를 읽고 쓰기 위한 API를 제공합니다. BigtableIO 소스와 싱크를 사용하면 지정된 Bigtable에서 Bigtable Row 객체의 PCollection을 읽거나 쓸 수 있습니다.

Bigtable 옵션 설정

Bigtable에서 읽거나 쓰는 경우, 테이블 ID와 Bigtable 옵션 집합을 제공해야 합니다. 이러한 옵션에는 다음을 포함하여 대상 Bigtable 클러스터를 식별하는 데 필요한 정보가 포함됩니다.

  • 프로젝트 ID
  • 클러스터 ID
  • 영역 ID

이러한 옵션을 제공하는 가장 쉬운 방법은 BigtableOptions.Buildercom.google.cloud.bigtable.config.BigtableOptions 패키지에서 사용하여 옵션을 구성하는 것입니다.

  BigtableOptions.Builder optionsBuilder =
     new BigtableOptions.Builder()
         .setProjectId("project")
         .setClusterId("cluster")
         .setZoneId("zone");

Bigtable에서 읽기

Bigtable에서 읽으려면 BigtableIO.read() 변환을 Pipeline 객체에 적용합니다. .withTableId.withBigtableOptions를 각각 사용하여 테이블 ID와 BigtableOptions를 지정해야 합니다. 기본적으로 BigtableIO.read()는 지정된 전체 Bigtable을 검색한 후 Bigtable Row 객체의 PCollection을 확인합니다.

  // Scan the entire table.
  PCollection <Row> btRows = p.apply("read",
      BigtableIO.read()
          .withBigtableOptions(optionsBuilder)
          .withTableId("table"));

지정된 Bigtable에서 행의 하위 집합을 검색하려는 경우, Bigtable RowFilter 객체를 제공할 수 있습니다. RowFilter를 제공하면 BigtableIO.read()는 필터와 일치하는 Row만 확인합니다.

  // Read only rows that match the specified filter.

  RowFilter filter = ...;

  PCollection <Row> filteredBtRows = p.apply("filtered read",
      BigtableIO.read()
          .withBigtableOptions(optionsBuilder)
          .withTableId("table")
          .withRowFilter(filter));

Bigtable에 쓰기

Bigtable에 쓰려면 BigtableIO.write() 변환을 출력 데이터가 포함된 PCollection에 적용합니다. BigtableOptions.withTableId를 각각 사용하여 테이블 ID와 .withBigtableOptions를 지정해야 합니다.

Bigtable 출력 데이터 형식 지정

BigtableIO 데이터 싱크는 각 쓰기 작업을 대상 Bigtable에 대한 일련의 행 변형으로 수행합니다. 따라서 출력 데이터 형식을 PCollection<KV<ByteString, Iterable<Mutation>>>으로 지정해야 합니다. PCollection의 각 요소는 다음을 포함해야 합니다.

  • ByteString으로 쓸 행의
  • 일련의 멱등 행 변형 작업을 나타내는 Mutation 객체의 Iterable
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.