Datastore I/O

Dataflow SDK는 Google Cloud Datastore 데이터베이스에서 데이터를 읽고 쓰기 위한 API를 제공합니다. Datastore I/O 읽기 및 쓰기 변환은 기존 데이터베이스 테이블에서의 행과 유사한 개념인 Datastore Entity 객체의 PCollection을 읽고 쓸 수 있게 해줍니다.

Datastore에서 읽기

Datastore에서 읽으려면 Datastore 읽기 변환을 적용하고 대상 Datastore 데이터세트와 읽을 때 사용할 쿼리를 제공해야 합니다. 필요한 경우, 쿼리할 네임스페이스를 제공할 수도 있습니다. 읽기는 키가 제공된 네임스페이스와 일치하는 Datastore 항목만 반환합니다.

  • 프로젝트 ID: Datastore 데이터베이스를 포함하는 Cloud Platform 프로젝트의 ID를 포함하는 String입니다.
  • 쿼리: 읽을 때 사용할 쿼리를 나타내는 데이터 저장소 Query 객체입니다.
  • 네임스페이스(선택사항): 쿼리할 네임스페이스를 포함하는 String입니다.

Datastore I/O를 사용하는 읽기 작업은 Datastore Entity 객체의 PCollection을 반환합니다. 항목은 Cloud Datastore에 있는 데이터 객체입니다.

다음 코드 예시는 DatastoreIO를 사용하는 간단한 읽기를 보여줍니다.

자바

PipelineOptions options = PipelineOptionsFactory.fromArgs(args).create();
Query query = ...;
String projectId = "...";

Pipeline p = Pipeline.create(options);
PCollection<Entity> entities = p.apply(
   DatastoreIO.v1().read()
       .withProjectId(projectId)
       .withQuery(query));

참고: DatastoreIO를 사용하는 읽기는 일반적으로 여러 작업자를 사용하여 동시에 읽습니다. 하지만 제한을 지정한 경우 또는 쿼리에 특정한 비균등 필터가 포함되어 있는 경우처럼 쿼리를 동시에 처리할 수 없는 경우도 있습니다. 이러한 쿼리의 경우 Dataflow 서비스는 단일 Dataflow 작업자를 사용하여 데이터 정확성을 보장합니다. 이 동작은 파이프라인의 처리량에 영향을 줄 수 있습니다.

Datastore에 쓰기

Datastore에 쓰려면 출력을 Datastore 항목 객체의 PCollection 형식으로 지정한 후에 Datastore 쓰기 변환을 적용해야 합니다. Datastore 데이터베이스를 포함하는 Cloud Platform 프로젝트 ID를 전달해야 합니다.

다음 코드 예시는 Datastore I/O를 사용하는 간단한 쓰기를 보여줍니다.

자바

PCollection<Entity> entities = ...;
entities.apply(DatastoreIO.v1().write().withProjectId(projectId));

Datastore에 쓰는 항목은 완전한 Keys를 가지고 있어야 합니다. 완전한 Key는 항목의 nameid를 모두 지정합니다. 특정 namespace에 항목을 쓰려면 항목의 key에 해당하는 속성에서 해당 namespace를 지정해야 합니다.

Dataflow를 사용하여 쓰는 항목은 Datastore에 upsert(update 또는 insert) 변형 작업으로 커밋됩니다. 즉, 이미 Datastore에 존재하는 항목은 덮어써지고, 그 외의 항목은 삽입됩니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

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

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