我正在用 python 设计一个 BigQuery 作业,它更新并插入到多个表中。我想到了两种方法来实现这一目标:
执行查询作业并将结果保存到带有更新/插入指示器的临时表中,然后处理它们。但是不清楚如何使用 python 库进行更新。
将整个数据加载到新的分区表中并跳过更新/插入。它需要比我想要的更多空间,但无论如何分区都会在几天内过期。
我错过了什么吗?还有其他方法可以实现这一目标吗?
我正在尝试使用Kubernetes来明确定义配置和部署,我也喜欢Kubernetes的pod调度机制.(现在)只有2个应用程序在3个节点上的2个副本上运行.但是,谷歌的Kubernetes引擎的负载均衡是像在同一时间我们(至少暂时)一个小的应用程序,我不愿意改变托管容器上的解决方案或部署在码头工人的应用蜂拥而上等单个实例极其昂贵.
使用节点的IP似乎是一个黑客,我认为它可能会暴露集群内部的一些安全问题.因此,我配置了一个Træfik进入和入口控制器,以克服谷歌昂贵的负载平衡率,但结果是一个外向的入口旋转了一个标准负载平衡器,或者我遗漏了一些东西.
我希望我错过了一些东西,因为这个价格(每月16美元)我无法从启动时使用kubernetes合理化这个应用程序.
有没有办法在不使用Google的负载均衡器的情况下使用GKE?
我刚刚注册尝试使用Google Cloud存储库,但正在尝试入门列表,但在
git remote add google https://source.developers.google.com/p/*name-xxxxxx*/r/default
git push google master
fatal: remote error: Forbidden
Run Code Online (Sandbox Code Playgroud)
我无法判断他们是否认为我没有许可,我是组织项目的所有者
我在Source Tools Console中创建了一个存储库
然后,我尝试按照他们的指示创建本地存储库,但失败了:
gcloud source repos clone source --project=project-xxxxxx
Cloning into 'xxx\\source'...
ERROR: (gcloud.auth.git-helper) Invalid input line format: [path=].
fatal: remote error:
Invalid authentication credentials.
Please generate a new identifier:
https://source.developers.google.com/auth/start?scopes=https://www.googleapis.com/auth/cloud-platform
ERROR: (gcloud.source.repos.clone) Command '['git', 'clone', 'https://source.developers.google.com/p/project-xxxxxx/r/source', 'xxx\\source', '--config', 'credential.helper=!gcloud.cmd auth git-helper --account=aaa@bbb.com --ignore-unknown $@']' returned non-zero exit status 128
Run Code Online (Sandbox Code Playgroud) 我正在运行 Apache Beam 管道,从 Google Cloud Storage 读取文本文件,对这些文件执行一些解析并将解析后的数据写入 Bigquery。
为了保持简短,这里忽略解析和 google_cloud_options,我的代码如下:(apache-beam 2.5.0 with GCP add-ons and Dataflow as runner)
p = Pipeline(options=options)
lines = p | 'read from file' >>
beam.io.ReadFromText('some_gcs_bucket_path*') | \
'parse xml to dict' >> beam.ParDo(
beam.io.WriteToBigQuery(
'my_table',
write_disposition=beam.io.BigQueryDisposition.WRITE_APPEND,
create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED)
p.run()
Run Code Online (Sandbox Code Playgroud)
这运行良好并成功地将相关数据附加到我的 Bigquery 表中以获取少量输入文件。但是,当我将输入文件的数量增加到 +- 800k 时,出现错误:
“BoundedSource.split() 操作返回的 BoundedSource 对象的总大小大于允许的限制。”
我发现故障排除 apache 光束管道导入错误 [BoundedSource 对象大于允许的限制]建议使用 ReadAllFromText 而不是 ReadFromText。
但是,当我换出时,出现以下错误:
p = Pipeline(options=options)
lines = p | 'read from file' >>
beam.io.ReadFromText('some_gcs_bucket_path*') | \
'parse …Run Code Online (Sandbox Code Playgroud)