我只是从数据流/apachebeam开始。 我用Python编写了一个数据流管道,将一个大的产品目录(存储在JSON文件中的50K个产品)导入数据存储。 管道在本地计算机(DirectRunner)上运行良好,但在DataflowRunner上失败,并显示以下错误消息:
RPCError: datastore call commit [while running 'write to datastore/Write Mutation to Datastore'] failed: Error code: INVALID_ARGUMENT. Message: datastore transaction or write too big.
我的猜测是数据存储无法处理管道的写入速率,但我不确定如何才能抑制数据流管道中的写入。在
我正在使用WriteToDatastore转换来写入数据存储:
^{pr2}$我的管道是这样的:
with beam.Pipeline(options=pipeline_options) as p:
(p # pylint: disable=expression-not-assigned
| 'read from json' >> ReadFromText(known_args.input, coder=JsonCoder())
| 'create entity' >> beam.Map(
EntityWrapper(known_args.namespace, known_args.kind,
known_args.ancestor).make_entity)
| 'write to datastore' >> WriteToDatastore(known_args.dataset))
提前谢谢你的帮助。在
看起来不像是写速率问题。这个错误信息意味着突变超出了系统的限制。原因可能包括:
您可以在我们的Limits documentation中阅读有关云数据存储系统限制的更多信息。在
相关问题 更多 >
编程相关推荐