gpt4 book ai didi

python - Google DataFlow 无法在不同位置读写(Python SDK v0.5.5)

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:28 25 4
gpt4 key购买 nike

我正在使用 Python SDK v0.5.5 编写一个非常基本的 DataFlow 管道。该管道使用带有传入查询的 BigQuerySource,该查询从驻留在欧盟的数据集中查询 BigQuery 表。

执行管道时出现以下错误(项目名称已匿名):

HttpError: HttpError accessing <https://www.googleapis.com/bigquery/v2/projects/XXXXX/queries/93bbbecbc470470cb1bbb9c22bd83e9d?alt=json&maxResults=10000>: response: <{'status': '400', 'content-length': '292', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'transfer-encoding': 'chunked', 'expires': 'Thu, 09 Feb 2017 10:28:04 GMT', 'vary': 'Origin, X-Origin', 'server': 'GSE', '-content-encoding': 'gzip', 'cache-control': 'private, max-age=0', 'date': 'Thu, 09 Feb 2017 10:28:04 GMT', 'x-frame-options': 'SAMEORIGIN', 'alt-svc': 'quic=":443"; ma=2592000; v="35,34"', 'content-type': 'application/json; charset=UTF-8'}>, content <{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Cannot read and write in different locations: source: EU, destination: US"
}
],
"code": 400,
"message": "Cannot read and write in different locations: source: EU, destination: US"
}
}

指定项目、数据集和表名时也会出现该错误。然而,从可用的公共(public)数据集中选择数据时没有错误(驻留在美国 - 如莎士比亚)。我也有运行 SDK v0.4.4 的作业,但没有出现此错误。

这些版本之间的区别在于临时数据集的创建,如管道启动时的警告所示:

WARNING:root:Dataset does not exist so we will create it

我简要地查看了不同版本的 SDK,差异似乎与这个临时数据集有关。看起来当前版本默认创建一个位于美国的临时数据集(取自 master):

我还没有找到禁用这些临时数据集创建的方法。从欧盟数据集中选择数据时,我是不是忽略了什么,或者这确实不再起作用了?

最佳答案

感谢您报告此问题。我假设您正在使用 DirectRunner。我们更改了 DirectRunner 的 BigQuery 读取转换的实现,以创建临时数据集(适用于 SDK 版本 0.5.1 及更高版本)以支持大型数据集。好像我们没有在这里正确设置区域。我们会考虑解决这个问题。

如果您使用在正确区域创建临时数据集的 DataflowRunner,则不应发生此问题。

关于python - Google DataFlow 无法在不同位置读写(Python SDK v0.5.5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42135002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com