この記事はDataflow SDK 1.x for Javaを対象にしています。
現在β版であるDataflow SDK 2.x for JavaはApache Beamをベースにしており、幾つかのBreaking Changesが含まれることに注意してください。

image-dataflow480320

前回の「Dataflowで実行パラメータを指定する」に引き続き、Dataflowを取り上げていきます。今回は、DataflowでDatastoreをRead/Write/Deleteする操作についてご紹介。

注意点として、Datastoreを対象にするIOが下記の2つがありますが、前者はDeprecatedのため、後者を利用してください。

  1. com.google.cloud.dataflow.sdk.io.DatastoreIO
  2. com.google.cloud.dataflow.sdk.io.datastore.DatastoreIO

Read

DatastoreIO.v1().read().withProjectId(PROJECT_ID).withQuery(query).withNamespace(NAMESPACE)

withNamespace() はデフォルトのネームスペースを利用する場合は不要)

Queryのサンプル: 特定のkindのEntity全て取得

Query.Builder qb = Query.newBuilder();
qb.addKindBuilder().setName(KIND);
Query query = qb.build();

Write

DatastoreIO.v1().write().withProjectId(PROJECT_ID)

Delete

DatastoreIO.v1().deleteEntity().withProjectId(PROJECT_ID)