【发布时间】:2018-01-05 17:39:35
【问题描述】:
我有一个扩展 AbstractCloudBigtableTableDoFn<> 的 DoFn,以便向 Bigtable 发送频繁的缓冲突变请求。
当我在云端运行作业时,我在 Dataflow 管道的这一步看到重复的日志条目,如下所示:
Opening connection for projectId XXX, instanceId XXX, on data host batch-bigtable.googleapis.com, table admin host bigtableadmin.googleapis.com...
和
Bigtable options: BigtableOptions{XXXXX (lots of option entries here}
DoFn 中的代码如下所示:
@ProcessElement
public void processElement(ProcessContext c)
{
try
{
BufferedMutator mPutUnit = getConnection().getBufferedMutator(TableName.valueOf(TABLE_NAME));
for (CONDITION)
{
// create lots of different rowsIDs
Put p = new Put(newRowID).addColumn(COL_FAMILY, COL_NAME, COL_VALUE);
mPutUnit.mutate(p);
}
mPutUnit.close();
} catch (IOException e){e.printStackTrace();}
c.output(0);
}
这个DoFn 经常被调用。
我是否应该担心 Dataflow 在每次调用此 DoFn 时都会尝试重新建立与 Bigtable 的连接?我的印象是从这个类继承应该确保在所有调用中都应该重复使用到 Bigtable 的单个连接?
【问题讨论】:
标签: google-cloud-dataflow google-cloud-bigtable